1樓:匿名使用者
按照題目理解為隨機整數,實際上就是0~9按照隨機位置排列到陣列中。
#include
#include
#include
using namespace std;
#define n 10
void main()
{ int a[n],i,j,b;
srand((unsigned int)time(null));
for ( i=0;i{ while ( 1 ){ a[i]=rand()%10;
for ( j=0,b=1;jif ( b ) break;
2樓:匿名使用者
每產生一個隨機數,就和原本生成的隨機數進行比較. 如果不相同,就保留. 否則重新生成.大概寫了個, 你參考下#include< iostream >
#include< ctime >
using namespace std;int main()if( j < i )
a[ i ] = t;
} for( i = 0; i < 5; ++i )return 0;}
如何用c++生成10個不重複的隨機數
3樓:金色潛鳥
#include
#include
#include
using namespace std;
int main()
}for(i=0;i return 0;} c++如何產生10個不同的隨機數並輸出到一維陣列中去? 4樓:匿名使用者 #include #include #include using namespace std; int main(void) return 0; }以上**產生10個不同的1-50之間的隨機數。時間不夠,只能寫這個簡單的,實際上還可以封裝成隨機函式,如果隨機數範圍更大,需要自己寫類似rand()的 注:rand()返回0至rand_max之間的隨機數值,rand_max定義在stdlib.h,其值為2147483647,一般情況下足夠了。 如果滿意,歡迎採納,謝謝 如有疑問,歡迎追問 5樓:匿名使用者 題目的關鍵是完全不同的隨機數 樓上的芝麻忽略了這一點 其中,judge是遞迴函式,作用是判斷是否有相同的數字。1是沒有,0是有! 引數含義:a:陣列首地址,len陣列長度:x需要判重的數字#include #include #include using namespace std; int judge(int *a,int len,int x)int main(void) for(i=0;i<10;i++) printf("%d ",a[i]); return 0;} 6樓:野文菜 用個rand函式就可以了 #include #include using namespace std; int main() c++生成隨機數,要求在1-10之間,並且每次生成的值都不一樣,該如何解決,請詳細! 7樓:匿名使用者 樓上中間部分改一下應該就ok了 比較懶,直接借用樓上的了,別介意哈(純手打,寫錯了自行調整一下int j; // 用來檢查重複 static int a[0]=; cout<<"這是一個隨機生成10個數字的程式,生成的數在1到10之間...."< for(i = 0; i < 10; ) // 下標遞增放後面處理++i; // 準備下一個數下標} 8樓:檀衛傑 程式如下,望採納! #include # include "stdlib.h" # include"time.h" using namespace std; int main() cout< cout<<"輸出產生的20個數字"< int j=0; for(;j<20;j++) cout<
return 0;} 9樓:匿名使用者 生成時比較下,重複的刪掉就好了唄。 c++程式設計題目產生10個不同隨機數。 10樓:匿名使用者 每產生一個隨機數,就和原本生成的隨機數進行比較. 如果不相同,就保留. 否則重新生成.大概寫了個, 你參考下#include< iostream > #include< ctime > using namespace std;int main()if( j < i ) a[ i ] = t; } for( i = 0; i < 5; ++i )return 0;} c++ 產生一組互不相同的隨機數問題 11樓:小狗鄙視貓 是的 產生了55個。while()迴圈中雖然只產生54個下標從1..54 但是你 之前已經賦值了a[0]=rand()%54; 所以 總共產生了 55個 ,while結束不了 12樓:小奧黑莓派 樓主 我不會告訴你 你產生了55個數,導致你的迴圈邏輯出現錯誤。 好吧 我說清楚一點,就是你產生是55個數,產生的方法是rand()%54,那麼,你的第55個數,就必然和前面的一個相同,於是,死迴圈了 13樓:匿名使用者 while(i<55)這個條件錯了, 應該是while(i<54) 具體原因是rand()%54的結果肯定在0-53之間,共54個,一旦陣列a中儲存了54個元素後,後續所有的rand()%54都必定與a中的某個元素相同,所以flag就不是0了,i++也就不會再執行, i也就一直是54一直滿足while條件,一直死迴圈了。 更直接的說,i實際就是目前有效的隨機數個數,所以一旦達到54就應該退出迴圈,所以應該是i<54 14樓:來阿里飛 模54只能產生54個不同的隨機數 而while迴圈的判定條件是:i<55 要求55個不同的隨機數,這是不可能的,所以程式一直停留在這個迴圈中,沒有輸出結果 把判定條件改成 i<54 就行了 另外main函式的返回值應該是 int 型別吧 c++中產生不重複的隨機數 15樓:匿名使用者 【解題思路】 這個題目要解決兩個問題:一是產生隨機數;二是不能重複。 ●第一個問題:產生隨機數。在c++中要產生隨機數必須用到兩個函式: srand()和rand()函式,使用這兩個函式必須包含標頭檔案 。其中rand()是產生一個偽隨機數,比如:int a=rand();函式返回值的取值範圍是int型別的取值範圍,如果要取得某個範圍的隨機數,可以通過取餘來實現,比如需要小於100的隨機數可以這麼寫: int a=rand()%100;需要100-199之間的隨機數可以這麼寫:int a=100+rand()%100。但在使用這個函式之前,還必須通過srand()函式來指定一個隨機種子,如果沒有指定隨機種子,程式每次執行產生的隨機數系列和順序是相同的。 而且srand()指定了隨機種子之後,可以多次使用rand()函式來產生隨機數,而不必每次使用rand()都指定種子。為了確保程式每次執行時的隨機種子都不一樣,最好的辦法是使用系統時間作為隨機種子,比如:srand((int)time(null)); ●第二個問題:不重複。這個問題系統沒有提供現成的函式,只能由程式設計者使用程式來實現。 實現的方法就是把每一個得到的隨機數儲存起來,然後當有新的隨機數產生的時候一個個比較,如果出現重複就重新產生隨機數。 像本題要求隨機輸出1-10十個不同的隨機數,就是既要限定範圍,又要不能重複,程式段如下: 【程式**】 #include //控制檯操作標頭檔案 #include //隨機函式標頭檔案 int main() //主函式 //顯示隨機數 printf("\n\n"); //換行 /*上面**第一次產生10個隨機數,因為沒有設定隨機種子,所以程式每次執行得到的數值都相同*/ srand((int)time(null)); //設定系統時間為隨機種子 printf("第二批十個隨機數(每次執行數值都不同):\n"); for(i=0;i<10;i++) //產生並顯示10個隨機數 //顯示隨機數 printf("\n\n"); //換行 /*上面**第二次產生10個隨機數,因為設定系統時間為隨機種子,所以程式每次執行得到的數值都會不同,隨機種子只需設定一次,下面都不需要再設定*/ printf("第三批十個隨機數(10-29,可能重複):\n"); for(i=0;i<10;i++) //產生並顯示10個隨機數 //顯示隨機數 printf("\n\n"); //換行 /*上面**第三次產生10個隨機數,因為設定了初始值並使用了取餘運算子,可以保證產生的隨機數在指定範圍內,因為沒有是否重複的判斷,多執行幾次,會發現這10個隨機數是可能重複的*/ for(i=0;i<10;i++) //產生並顯示10個隨機數 {d[i]=10+rand()%20; //得到隨機數 for(j=0;j 16樓:匿名使用者 #include #include #include #include using namespace std; int main() ;random_shuffle(nums.begin(),nums.end()); copy(nums.begin(),nums.end(),ostream_iterator(cout," ")); cout< 為1/n的概率 17樓:韻城之都的管家 因為windows下rand函式取值只有32767個,你可以試試rand()*rand(),這樣可以生成32767*32767範圍的數! 18樓:匿名使用者 演算法就是,每生成一個數就與原來生成的數比較,如果有相等的就就重新生成一個數,這樣就能保證10個數都不相等了。下面這個程式生成數的範圍是0到100: #include #include #include #define max 100 using namespace std; int main() }if(!ret) if(i==10) }while(--i)} 19樓:匿名使用者 rand_max是32767, 於是rand()/rand_max得到是1/32767~32767/32767, 乘上n依然只有32767個數 可以通過(rand() << 16) | rand(), 即高16位和低16位分別產生隨機數的方法得到更大的隨機數 另外先儲存再取是個空間時間都特低效的辦法, 更好的演算法可以自己搜一下"c++產生不重複隨機數" 是你元器件做的時候中心偏離了 你試著把幾個器件圈一起再挪動就不會有這個問題 實質性的辦法就是 製作器件的時候把器件放到中心 3 ok 違反規則了,一般都是距離靠得太近了,你檢查下是不是它和其它元件重合呢,拖動下就直到消失,看看是不是有其它元件 我也遇到了類似的 在dxp中有個pcb aditor中有... 每年中考成績公佈後都是幾家歡喜幾家愁,成績不好的初中生可以選擇什麼學校呢 可以學習什麼專業技能呢?跟小編一起看一下吧。1成績不好初中生的出路 中考成績差的孩子可以上技工學校,技工院校重視勞動技能的培訓,畢業後一般都已經掌握了相應的勞動技能,步入社會可以勝任某種勞動崗位。中考成績不好的孩子可以上 五年... 現在高中畢業學一門技術確實很不錯的,我覺得吧,現在高中生學一門西點技術或許就很好的,現在西點師愈來愈受歡迎,這一塊的發展前景還是很不錯的,而且在呼市新東方學出來還有中專學歷,出來找工作還是很好找的,你覺得呢?可以考慮去學廚師,現在川菜很熱門,廚師是高新熱門職業,非常好就業。當廚師好處很多,基本不愁就...altium designer中,生成pcb後,選中元件拖動的時候,就看不見元件了,怎麼設定過來?求高人指點
初中生成績不好可以考什麼學校,我是初中生,成績不好,不知道畢業之後上什麼學校?
高中生成績不好不想讀大學了,學什麼技術對以後找工作有幫助喃