我需要生成500个数字,其中包含250个1和250个0,并且这些数字是随机分布的。以下是我现在所做的。虽然输出结果是正确的,但是感觉并不对。
trialNo=500
RandomSample@Flatten[Table[#, {trialNo/2}] & /@ {0, 1}]
我需要生成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 ]]
这与您正在做的操作在操作上并没有区别,但我认为它从数学上更好地表达了您想要实现的目标。
<{~.~}>
。必须开始执行“撤销点赞”操作。 - user616736这是另一种做法。
Round[Ordering[1~RandomReal~#] / N@#]& @ 500
现在为聊天室里的人们提供更多魔法。
Mod[RandomSample@Range@#, 2] & @ 500