验证不等式!
在沙盒中至少保留3天。我要验证是否存在此不相等正确:for\$n\geq4\$,如果\$a\\u 1、a\\u 2、a\\u 3、\dots、a\\n\in R\\u+\cup\{0\}和\$\sum\{i=1}^na\\u i=1\
解答动态
APL(Dyalog Unicode),21字节SBCS (+/?×1°?)?←(?÷+/)???0 在高尔夫球场上试一试!
A tradfn submission打印列表并返回总和。
??0?创建输入多个0的向量??对于每个0,得到一个介于0和1之间的随机数?÷?将每个数除以所有数之和?←?打印结果向量?×?将向量元素按1°??乘以向左旋转的向量1+/?取所有产品的总和1如果将总和添加到列表可以作为输出,这可能是20个字节:x,+/x×1?x←(?÷+/)???0
R,49 45 bytes a=rexp(scan());a=a/sum(a);a;a%*%c(a[-1],a[1]) 在线试用!
-4 bytes by Robin Ryder
JavaScript(ES6),89 88 bytes 返回[array,sum]。
f=(n,a=[],t=s=0)=gt;(s+=v/t*(v=k),v/t)),s/t] 在线试用!
Commented f=(//f是一个递归函数,取:n,//n=input a=[],//a[]=array t=//t=non-normalized value之和s=0//s=a[i]*a[(i+1)mod n]/t)=gt;//s+=//添加到s:v/t//上一个规范化值v/t,*(v=k),//乘以k(并将v更新为k)v/t//生成规范化值)//),//map()s/t的结尾//还返回规范化的和]//答案数组的结尾Julia,46 bytes n-gt;a[2:end]'*a[1:end-1]在线试用!
返回数组=>;sum
Wolfram Language(Mathematica),42字节 {###2,#}&;@@#。#
#amp;@真实[1,#]]& 在线试用!
木炭,25 bytes fn?ν?φ≥/∑ννν?ν∑eν×ι§ν⊕κi?ν 在线试用!像05AB1E答案一样,我生成n个介于0和999之间的随机数,然后缩放它们,使它们的和为1。以一到两个字节为代价可以获得更大的范围。另外,还不清楚是否必须先求和;最后打印将节省两个字节。前任夷平面:
FN 重复n次…
?ν?φ 。。。将一个随机整数推到预定义的空列表中。
≥∕ν∑ν 将该列表除以其和。
?ν∑eν×ι§ν⊕κ 将每个元素与其相邻元素相乘,然后将和推到该列表中。
i?ν 以相反的顺序打印列表,使和位于第一位。
MathGolf,11 bytes ??λ]∑/??m*∑ 输出数组并将和和连接到一个数组中另一个.
在线试用.
Ex夷平面:
?#循环(隐式)输入次数,#使用单个字符作为内部代码块:?#推送范围[0,1]]内的随机浮点值#将堆栈上的所有值包装到一个列表#复制此列表∑取其和/#将列表中的所有值除以此和#(因此我们现在有一个随机值列表,求和为1)?#将此列表复制三次╫#将顶部副本向左旋转一次m*#将顶部两个列表按位置相乘∑#取该列表的和#(之后连接在一起的整个堆栈隐式输出)Python 3+numpy,75 bytes 来自numpy import*def(n):x=随机.rand(n) ;x/=总和(x);返回x、 x@滚动(x,1)在线试试!
J,30 27 25 bytes -2由于ovs的rotate idea
[:(;1#.]*1.])@(+/)?@$0重复0quot;次。?@每个(?)?0生成一个介于0和1之间的随机数)。[:…(%+/)将每个值除以所有值的和。(;1#.]*1
.])添加到该装箱列表;1#的和。列表]次*列表向左旋转一次1
.]。
Python 3,124 121 bytes 保存了一个字节多亏了Kevin Cruijssen!!!多亏了丹尼斯,节省了3个字节!!!
def f(n):l=[random()表示[0]*n]中的i;l=[e/sum(l)表示l中的e];从随机导入返回l,sum(a*b表示a,b表示zip(l,l[1:]+l))* 联机试用!
05AB1E,17 15 14 17 bytes ?Y.rI£DO/Dà*O“ 成对输出[数组,求和]。
-2字节归功于@Neil。-1字节通过使用内建的封闭/重叠更改两个显式打印=?ü*O,类似于我的MathGolf答案,使用pair和隐式printDà*O+2字节,这样就可以复制项目,+1字节可以最大化浮动量2 在线测试(但使用[01000]而不是[09876543210]来加快速度)。
Ex夷平面:
?mY#在[09876543210]范围内推送列表I#重复输入次数#(这样我们就有可能得到重复项)。r#随机洗牌这个列表I#只留下第一个输入值D#复制这个列表O#将它们相加/#将所有值除以这个求和#(因此我们现在有一个随机值的列表求和为1)D#将此列表复制三次à#将顶部副本向左旋转一次#将顶部两个列表按位置相乘#将此列表求和#将列表与此和配对#(之后这一对作为结果隐式输出)Jelly,18 bytes 没有内置的随机浮点,所以一半的代码是这样的!
2??XHC?)÷S$?1??, 一个接受整数n的一元链接,它生成一个包含非负浮点(乘积之和)的列表和生成的长度为n的非负浮点列表,其总和为1。
请在线尝试!(请注意,\$256\$)已被9(\$9\$)替换,以提高速度-生成所有\$2^{256}\$位列表需要一段时间。使用256美元这样大的数字是没有必要的,只是简单明了而已? (上面修复的错误,稍后将更新此部分。)
注意:使用256个随机位生成\$[0,1]\$.
2??XHC?)μ÷S?1??,-Link:n)-用于每个:2-2?-256?-(256)笛卡尔积(2隐式->;[1,2] )X-随机选取一个,例如[1,2,2,1。。。,1,2]H-减半[0.5,1,1,0.5。。。,0.5,1]C-补码[0.5,0,0,0.5。。。,0.5,0] . -半个0.5?-从基(0.5)转换(列表)一个[0,1]μ中的浮点-开始一个新的一元链(称为x)S-和和(x)÷-除归一化(x)?-最后三个链接作为monad:(称为Y=[y1,y2,…,yn])-一个1?-左旋转(1)[y2,…,yn,y1]?-点积(与Y)y1.y2+y2.y3+…+yn.y1,-对[y1.y2+y2.y3+…+yn.y1,Y]MATL,13 bytes lamp;r%创建一个N x 1的随机浮点数组st%复制此数组twices%对此数组的元素求和/%并用此sumtt%对原始数组按元素进行除%Duplicate规范化数组(两次)lYS%将数组循环移位1个元素*%perform按元素与非移位数组相乘%计算和%隐式显示规范化随机数组和和
- End
免责声明:
本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。