當前位置:首頁 » 編程語言 » c語言怎麼讓隨機數不一樣
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎麼讓隨機數不一樣

發布時間: 2022-08-19 10:19:54

c語言結構編程中怎樣能產生不重復的隨機數

//讓數不重復,而且每個數都有不好弄,但是如果是生成選手比賽順序,我這種做法就可以了。你把選手的編號放在一個數組裡面,然後從數組的第一個開始,把生成的隨即數當成要交換的下標,隨即交換後就打亂順序了。
雖然產生的隨機數可能一樣,但是這樣打亂順序並不會把選手編號改變了。
例如,
int
tmp,num;
a[10]={1,2,3,4,5,6,7,8,9,10};
srand(time(NULL));
for(int
i=0;i<10;i++)
{
num=rand()%10;
tmp=a[i];
a[i]=a[num];
a[num]=tmp;
}

Ⅱ c語言怎麼讓每次運行使用的隨機數種子都不一樣

指定seed為當前系統流逝了的時間(單位為秒):time_t time(0):
#include <ctime>
//…
srand((unsigned)time(0));
for(int i=0;i<10;i++){
ran_num=rand() % 6;
cout<<ran_num<<" ";
}
第一次運行時輸出:0 1 5 4 5 0 2 3 4 2
第二次:3 2 3 0 3 5 5 2 2 3
總之,每次運行結果將不一樣,因為每次啟動程序的時刻都不同

Ⅲ C語言:產生數個不同的隨機數

一樓的感覺第二個數的產生過於麻煩
二樓的不能用int型,因為樓主的要求是1000000內,可能就是999999,int不夠用
#include
#include
#include
#define
rand_max
1000000
void
main()
{
long
num1,num2;
time_t
t;
srand((unsigned)
time(&t));/*用時間初始化隨機函數*/
int
t;
scanf("%d",&t);
for(int
i=0;i<2*t;i++)
{
num1=rand()%1000000;//產生1000000內的第一個隨機數
num2=rand()%num1;//產生num1內的第二個隨機數
printf("%ld\t%ld\n",num1,num2);
}
getchar();
getchar();
}

Ⅳ c語言 如何產生特殊的隨機數(在0到10中產生四個互不相同的隨機數)

最簡單的rand()%10隨機產生一個10以內的數
再用一個輔助數組,用來檢測產生的數字是否和以前的一樣,如果一樣舍棄重新生成;

Ⅳ 用c語言編寫程序,產生幾個隨機數,想讓這幾個數互不相等,怎麼能做到

思路大概就是每產生一個隨機數後與a[10]中的元素進行判斷

如果在a[10]中沒有出現重復的數字就繼續產生下一個隨機數

否則就重復產生知道沒有重復在進行下一次生成


只是作為參考的代碼

可以滿足要求

intfind(int*a,intsize,intnum)
{
for(inti=0;i<size;i++)
{
if(a[i]==num)
{
return0;
}
}

return1;
}

intmain()
{

inta[10];
intnum=0;
srand(time(NULL));
boolexit=false;
while(!exit)
{
intx=rand()%20;
boolnext=false;

while(!find(a,num+1,x))
{
x=rand()%20;
}
a[num]=x;
++num;
if(10<=num)
{
exit=true;
}
}

for(inti=0;i<10;i++)
{
cout<<a[i]<<endl;
}

getchar();

return1;
}

Ⅵ c語言 產生一個隨機數,如何讓它每一次運行出現不同的隨機數結果

#include"stdio.h"
#include"stdlib.h"
#include"time.h"
intmain(void)
{
srand((unsigned)time(NULL));
inta;
a=rand()%10;
printf("%d ",a);
}

加一句srand((unsigned)time(NULL)); 打開隨機觸發器 與時鍾頻率同步

這樣每次隨機的數就不同 不過需要包含頭文件#include "time.h"

Ⅶ C語言如何產生不重復的隨機數

用一個數組裝隨機數,一個數組表示已經記錄過的隨機數;

比如說隨機0-8,生成一個隨機8位數組且數組內各項不重復;

例:

intarray[8];

intarrayIndex[8]={0,0,0,0,0,0,0,0};

intk=0;

srand(100);

while(k<8){

intq=rand()%8+1;

if(arrayIndex[q-1]==1){

continue;

}

array[k]=q;

arrayIndex[q-1]=1;

k++;

}

(7)c語言怎麼讓隨機數不一樣擴展閱讀

C語言隨機輸出1~20不重復的隨機數

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

voidmain()

{

inta[20];

inti,j;

srand((int)time(0));

a[0]=rand()%20+1;

for(i=1;i<20;i++)

{

a[i]=rand()%20+1;

for(j=0;j<i;j++)

{

if(a[i]==a[j])

{

i--;

}

}

}

for(i=0;i<20;i++)

{

printf("%3dn",a[i]);

}

}

Ⅷ C語言如何產生一定范圍內一定數量的不同隨機數

源代碼如下:

#include <stdio.h>

#include <stdlib.h>

#include <stdbool.h>

#include <unistd.h>

#define a 16807//or 48271

#define m 2147483647

#define q (m/a)

#define r (m%a)

static long int seed = 1;

//return rand long in [1,m]

long int pm_rand(void)

{

long hi = seed / q;

long lo = seed % q;

long tmp = a * lo - r * hi;

if(tmp > 0)

seed = tmp;

else

seed = tmp + m;

return seed;

}

int main(void)

{

for(int i = 0;i < 100;++i)

printf("%ld ",pm_rand());

puts("");

return 0;

}

(8)c語言怎麼讓隨機數不一樣擴展閱讀

不指定范圍產生隨機數的源代碼

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
for(i=0; i<10; i++) //隨機產生10個數。
{
printf("%d ", rand());
}
return 0;
}

Ⅸ 怎樣用c語言產生不同的隨機數

先設置種子數srand((unsigned
int)time(0)).然後用rand()%100就可以產生0-100的不同隨機數了,當然要包括頭文件stdlib.h和time.h.