我需要一個二維數組里一定數量的隨機數,但是好難啊。。。。。。不要重復的
2 回答

傻圓傻圓
TA貢獻14條經驗 獲得超23個贊
歸根結底就是如何產生隨機數且隨機數不重復,產生隨機數的話,只需要先通過srand()設定隨機數種子,然后通過調用rand()產生隨機數。
srand(time(NULL)); rand();
對于如何使其生成的數字不重復,我暫時能想到以下幾種方案:
每次新生成一個數字,都對整個二維數組進行遍歷,如果新生成的數字以及存在,則重新生成一個數字。
將生成的數字保存起來,如果新生成的數字已經被保存過,則重新生成一個數字。
手動設定或隨機生成一個隨機數的列表,每次隨機從中選取一個,隨后從列表中將其刪除。
對于以上三種方案:
對于1號方案,是最容易實現的,但是如果數組空間較大,是一個速度很慢,編寫簡單的方案。
對于2號方案,將數字保存起來,又需要能夠快速的判斷一個新的數字是否已經存在于其中,需要使用二叉樹來進行存儲,實現起來較為復雜,但是優點是速度快,編寫復制的方案。
對于3號方案,通過手動輸入或者通過1號方案較慢的生成列表,有了列表之后,進行之后的操作應該是這3個方塊最快的,但是缺點也顯而易見,改動數據范圍,整個列表都需要重新生成。
- 2 回答
- 0 關注
- 3482 瀏覽
添加回答
舉報
0/150
提交
取消