我需要生成随机定位的500个数字,250 1和250 0。下面是我现在要做的。但是,当输出正确时,感觉并不正确。

trialNo=500

RandomSample@Flatten[Table[#, {trialNo/2}] & /@ {0, 1}]

最佳答案

我实际上会做些不同的事情。由于您正在寻找Flatten[{ConstantArray[0,250], ConstantArray[1,250]}]的随机排列,因此我将生成该排列并使用Part来获取您要查找的列表。如下,

perm = RandomSample[Range[trialNo]];
Flatten[{ConstantArray[0, trialNo/2], ConstantArray[1, trialNo/2]}][[ perm ]]

这在操作上与您所做的没有什么不同,但是我认为它可以从数学上捕获您为实现更好的目标而做的事情。

关于random - 约束随机数生成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7742358/

10-11 06:37