我有这个:
for(int i=1; i<=6; i++)
cout<<rand()%48+1<<" ";
如何修改此脚本,以便无法获得超过2次的数字? (所有数字不得重复)
答案 0 :(得分:0)
没有预定义的方法。如果您希望仅在较小的值范围内使用随机数,则可以在数组中保护每个数字的两个副本,然后从数组中获取随机数:
伪代码:
AvailableNumbers = array(1, 1, 2, 2, ... 48, 48)
// Shuffle the array:
For i = 1 : 48 {
swap(AvailableNumbers[i], AvailableNumbers[rand(0, len(AvailableNumbers) - 1])
}
// Take 6 elements:
for i = 1 : 6 {
print pop(AvailableNumbers[i])
}
pop是一个堆栈弹出窗口,它返回数组的第一个元素并将其删除。