このCコードを書きましたが、ループすると乱数が返されます。 myrand()が実行された場合、どのように5つの異なる乱数値を得ることができますか?関数のループで乱数が返されない場合は、
#include <stdio.h>
#include <stdlib.h>
int myrand() {
int ue_imsi;
int seed = time(NULL);
srand(seed);
ue_imsi = rand();
return ue_imsi;
}
int main()
{
int value = 0;
int i=0;
for (i=0; i< 5; i++)
{
value =myrand();
printf("value is %d\n", value);
}
}
シード**一度**あなたの人生ではなく、すべての時間。 –
乱数ジェネレータを同じ番号で何度も何度も初期化しています( 'time(NULL)'が同じ値を返す限り)。数字をランダムに見せたいと思っているなら、それをしないでください。また、 'time()'プロトタイプのために '#include'を覚えておいてください。 –
pmg
[常にrand()によって与えられた繰り返し数]の複製が可能です(http://stackoverflow.com/questions/4859089/always-repeated-numbers-given-by-rand)。ご質問の前に、SOの検索施設をご利用ください。 –