我想制作一个长度为16个元素的数字0,1,2列表,其中每个数字出现的次数相等(加或减1)
所以结果如下所示:0, 1, 0, 2, 1, 2, 1, 0, 2, 2, 1, 1, 0, 0, 2, 0
每个数字出现的次数
0 : 6
1 : 5
2 : 5
这是我的代码,是否有任何想法可以均匀地制作?
srand(time(NULL));
for(int j = 0; j < 16; j++)
{
int num = rand() % 3;
if(j == 15)
cout << num;
else
cout << num << ",";
}
答案 0 :(得分:7)
您可以创建一个包含相同数量的值的列表,然后随机随机播放它们。
这样的事情:
0 2 0 1 0 1 0 1 2 2 0 1 1 2 2 0
<强>输出:强>
UPDATE srs1.courseedition
SET ta_id = (SELECT ta.ta_id
FROM srs1.teacherassistant ta
ORDER BY RANDOM()
LIMIT 1
);