生成用C不同的號碼所以基本上我在用C寫這個函數從1到50產生5個隨機數字:使用隨機
#include <stdio.h>
#include <stdlib.h>
int main() {
int c, n;
printf("Five random numbers from 1 to 50 \n");
for (c = 1; c <= 5; c++) {
n = rand()%50 + 1;
printf("%d\n", n);
}
return 0;
}
,我想知道我可以肯定的是,數字由此代碼生成的所有內容都不相同。
任何幫助?
你不能說是隨機的性質,如果您存儲以前你可以比較的;否則,您不能。事實上,只有16位非常差的僞隨機性的「rand」幾乎是一種保證。這種特殊的設置也不會產生均勻分佈。如果你想使用更好的隨機,我會建議['random_r'](http://man7.org/linux/man-pages/man3/srandom_r.3.html) – Mgetz
如果你想從50你可以對1..50的序列進行混洗(使用rand()和一個像樣的shuffle算法,例如七次交換),然後從序列中取前五個數字。還有其他的方法,但這很像從你的描述中洗牌一副牌。 – WhozCraig
你能舉一個例子@Mgetz嗎? – DiogoCarou