如何生成一個包含一組連續數字但具有隨機順序的數組?例如,連續的數字是從8到100(不重複),我想要的是一個包含所有這些數字的數組,但序列是隨機的。以隨機順序連續編號
回答
我想8和100都包含在範圍內。
#include <algorithm>
#include <numeric>
#include <iterator>
int main()
{
const size_t N = 93;
int a[N];
std::iota(std::begin(a), std::end(a), 8);
std::random_shuffle(std::begin(a), std::end(a));
}
如果8是在您的文章錯字和你的意思是0,則該代碼將如下
const size_t N = 101;
int a[N];
std::iota(std::begin(a), std::end(a), 0);
thx! 8不是拼寫錯誤〜 –
什麼是'std :: itoa'?我無法在我的標準副本中找到它(並且通過它的參數看起來不像舊版Unices中這個名稱的功能)。 –
@JamesKanze:http://www.cplusplus.com/reference/numeric/iota/ – lisyarus
我假設你是學生,新的節目,因此一些基本知識應該被告知。
rand()生成隨機數。
如果你想讓號碼在一個特定的範圍內,然後把它的mod例如
rand()%93; // generate random numbers from 0-92
同樣, (RAND()%93)8 //將生成8-100
之間數此外,用於檢查重複您可以與那些已存儲在數組中比較數。
與已經生成的數字相比可能非常慢,而且時間成本高度依賴於使用的僞隨機數生成算法。生成一個序列,然後洗牌是一個更好的主意,因爲它的時間成本是線性的。 – lisyarus
如果一個數字(比如說0)在無限的時間之後產生了什麼? –
- 1. 隨機數genarator其從小順序的編號,以大
- 2. 以排序順序生成隨機數
- 3. 半隨機順序
- 4. 連續的隨機問題?
- 5. 以Fortran連續順序重塑dask.array
- 6. Python。以隨機順序顯示項目
- 7. 以隨機順序比較字符串
- 8. 以隨機順序顯示<iframe>
- 9. 以隨機順序顯示屏幕對
- 10. iTextSharp以隨機順序排列的Acofields
- 11. 以隨機順序調用方法(C#)
- 12. 圖像以隨機順序加載?
- 13. PG gem以隨機順序返回列
- 14. 以隨機順序的多維數組
- 15. 以隨機順序顯示記錄
- 16. 如何以隨機順序和隨機時間複製文件?
- 17. 按隨機順序按組順序
- 18. for循環可以隨機編號嗎?
- 19. cf9 orm entityload隨機順序
- 20. 數字是隨機順序
- 21. 行的隨機順序Matlab
- 22. 獲取隨機順序Laravel
- 23. Python的隨機順序OrderedDict
- 24. Laravel:獲取隨機順序
- 25. 按鈕的隨機順序
- 26. 隨機化行的順序
- 27. IEnumerator的隨機化順序
- 28. URL的連續編號
- 29. 連續自動編號
- 30. 怎麼算連續編號
聽起來就像洗牌一樣。 – jrok
使用'std :: random_shuffle',看看這篇文章: http://stackoverflow.com/questions/21948091/how-to-generate-an-array-of-256-distinct-numbers/21948500# 21948500 – asamarin
爲什麼你們不把你的評論發佈爲答案,而不是評論? – m01