自己腦洞的隨機數生成演算法,且稱之為蘇氏演算法(su's algorithm)吧。o(*≧▽≦)ツ
給定乙個隨機數生成範圍,在o(n^2logn)的時間複雜度中輸出n個互不相同的隨機數並按照公升(降)序排列。
下方**的作用是:輸入隨機數生成範圍begin~end,輸出100個互異的隨機數。
比方說輸入1和100,那麼輸出的就是1一直到100的每個數。
#include#include#includeusing namespace std;
#define maxsize 100
int main()
;//initialize the array
cout << "input begin & end:(end-begin>=99)" << endl << ">>:";
cin >> begin >> end;
for (i = 0; i != maxsize; i++)
temp[i] = rand() % (end - begin + 1) + begin;
/*label:
sort(temp, temp + maxsize);
for(i = 1; i != maxsize; i++)
}//these can be used to alter the following for(…) instructions*/
for (i = 1; i != maxsize; i++)
} for (i = 0; i != maxsize; i++)
cout << temp[i] << endl;
return 0;
}
PHP生成N個不重複的隨機數
原理就是將陣列順序隨即打亂 然取該陣列中的某一段 方法1 range 是將1到100 列成乙個陣列 numbers range 1,100 shuffle 將陣列順序隨即打亂 shuffle numbers array slice 取該陣列中的某一段 result array slice numbe...
PHP 生成N個不重複的隨機數
起因 有25幅作品拿去投票,一次投票需要選16幅,單個作品一次投票只能選擇一次。前面有個程式設計師捅了漏子,忘了把投票入庫,有200個使用者產生的投票序列為空。那麼你會如何填補這個漏子?當然向上級反映情況。但是我們這裡討論的是技術,就是需要生成1 25之間的16個不重複的隨機數,去填補。具體怎麼設計...
隨機數生成演算法
看到一些介紹隨機數生成演算法的文章,收集下來,有空深入了解下。c語言中偽隨機數生成演算法實際上是採用了 線性同餘法 具體的計算如下 xi xi 1 a c mod m 其中a,c,m都是常數 一般會取質數 當c 0時,叫做乘同餘法。srand 函式置的seed實際上會作為x0被代入上式中,然後每次呼...