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

c語言取隨機數不重復

發布時間: 2023-03-12 12:58:54

1. c語言如何產生隨機不重復的數,我不重復不知道怎麼寫。怎樣不重復

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{inta[10],i,j,k;
srand(time(NULL));
for(i=0;i<10;i++){//採集10個隨機數
a[i]=rand()%90+10;//隨機數賦值
k=0;//重復個數清零
for(j=0;j<i;j++)//計算重復的個數
if(a[i]==a[j])k++;
if(k!=0)i--;//重復個數不為0,就是有重復的
}//重新產生這個隨機數
for(i=0;i<10;i++)
printf("%4d",a[i]);
}

如圖所示,rand產生不了不重復的隨機數,所以方法就是把產生的重復的去掉。我這里舉個例子,按照這個思路,插入到你的程序里就行了。

望採納。。。。。。

2. c語言生成1 - 100的不重復隨機數

c語言生成1 - 100的不重復隨機數?根據你的要求我已經將代碼實現如下
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(){
int a[10];
srand((unsigned)time(NULL));
for(int i=0;i<10;i++){
A: a[i]=rand()%99+1;
for(int j=0;j<i;j++){
a[i]=rand()%99+1;
if(a[i]==a[j])goto A;
else break;
}
}
for(int i=0;i<10;i++)
printf("%d ",a[i]);
}

3. 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++;

}

(3)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]);

}

}

4. C語言如何用rand函數產生4個不重復的隨機數啊

可以將生成的隨機數放入數組中,每次遍歷數組,有相同的重新生成隨機數。知道生成4個即退出循環。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intmain()
{
intnum[4],cnt=0,n;
srand(clock());//設置隨機數種子
while(cnt<4)
{
n=rand()%4;//生成4以內隨機數,這樣更利於測試
for(inti=0;i<cnt;i++)
if(num[i]==n)//遍歷數組,有相同的重新生成隨機數
continue;
num[cnt++]=n;
}
for(inti=0;i<cnt;i++)//列印隨機數數組
printf("%d",num[i]);
return0;
}

5. 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;
}