求乙個特定區域內產生隨機數不重複的演算法。

2024-12-22 05:45:18 字數 2745 閱讀 9767

1樓:jimmy_掌心化雪

解答如下:像這種題目就是求全排列的型別。

現在你題目中有y個數字,第一次抽取時,共有y個數字可供選擇,因此有y種可能性。

第二次抽取時,因不能重複,所以共有y-1個數字可供選擇,因此有y-1種可能性。

第三次抽取時,也因不能重複,所以只有y-2個數字可供選擇,因此有y-2種可能性。

根據上面可以類推出第四次,第五次……第y次。

因此具體的答案就為:y*(y-1)*(y-2)*(y-3)……y!

2樓:網友

我寫過的,不過先問一下你是要思路還是要演算法,要演算法就說一下用什麼語言。

我先說一下思路,先做乙個數列,或者說array,數列中有你所說的比如m個數,然後根據random函式產生乙個m以內的隨機數n

然後輸出array中的第n個數。

從array中刪除第n個數,然後根據random函式產生乙個m-1以內的隨機數n

然後輸出array中的第n個數。

從array中刪除第n個數,然後根據random函式產生乙個m-2以內的隨機數n

然後輸出array中的第n個數。

從array中刪除第n個數,..

3樓:侯宇詩

就是相當於n個數全排列。

n個數每一種排列都對應產生一種數的出現的方法。

答案n!

4樓:網友

1。做乙個陣列,先按順序將這個數列方入陣列裡。

2。隨機抽取陣列中的2個數字對換位子。

不停的重複次(n越大越好)

3。再按順序從陣列裡把每乙個元素輸出出來就可以了。

5樓:冬雲貫頂

如果說是後產生的隨機數若和前面產生的數相同則不顯示,如何?

「不重複的隨機數」是否是真正的隨機數?為什麼?如果不是,又有什麼價值?最好的生成演算法是?

6樓:網友

不重複的是真正的隨機數?這個問題的答案我覺得應該看具體你的需求是什麼來決定。

生成不重複的隨機數的方法的話,以下c++**是我目前所想的算是比較簡便的。

隨機生成不重複的0-100之間的數。生成個數和生成範圍可自行調節。

以乙個bitset來標記生成的隨機數是否已經存在,存在就設為1,否則設為0。這樣的話每次比較只用執行一次。

#include

#include

#include

using namespace std;

#define max 101

int main(void)

else i--;

printf("");

return 0;}

如何高效產生m個n範圍內的不重複隨機數(m<=n)

7樓:雲喜九愛

如何產生不重複的隨機數?最容易想到的方法,是逐個產生這些隨機數,每產生乙個,都跟前面的隨機數比較,如果重複,就重新運慎產生。這是個很笨的方法,且比較次數呈線性增長,越往後次數越多。

其實這些比較是多餘的,完全可以不進行比較,只要反過來,按順序產生這些數,但隨孝悄敬機產生它們的位置。例如下面產生100個100以內不重複隨機數的**:int a[100];

for(i=99; i>=1; -i) swap(a[i], a[rand()%i]);上面這段**只需要遍歷一次就可以產生這100個不重複的隨機數,它是如何做到的呢?首先第二行按順序用0到99填滿整個陣列;第三行,是隨機產生從0到m-2個陣列下標,把這個下標的元素值跟m-1下標的元素值交換,一直進行到下標為1的元素。因此它只需要遍歷一次就能產生全部的隨機數。

網上看到上述的方法:從生成隨機數的角度出發這個方法確實很好,很快,但是仔細琢磨一番就知道:應該改為a[rand()%i+1)],因為每乙個數字i都有巧慎出現在i位置上的概率,要是總是將其交換出去,就會改變每個數字在每個位置上出現的概率。

第二,這個題目給出的是m個n以內的不重複的隨機數,但是程式給出的是n個n以內的不重複的隨機數,所以只需要輸出a[n]的前m項,當m

在乙個指定的範圍內產生幾個隨機數,且幾個隨機數的平均值為指定值,怎麼打這個函式公式

8樓:網友

<>比如平均成績為75,要求生成60-100的6個隨機數,隨機數的平均值為75:

第一行不要填寫任何數字。

a2=randbetween(max(60,450-sum(a1:a$1)-100*(6-row(a1)))min(100,450-sum(a1:a$1)-60*(6-row(a1)))

下拉至a7

用電腦產生1200個隨機數,各個隨機數互相獨立,都服從[0,1]的均勻分佈,求這1200個隨機數的和小於575概率

9樓:匿名使用者

設這些隨機數為x_1到x_n,n=1200,那麼e(x_i)=1/2, e(x_i^2)=1/3x=x_1+..x_n滿足。

e(x)=n e(x_i)=n/2

x^2=\sum_i x_i^2+2 \sum_ x_i x_je(x^2)=n e(x_i^2)+2*n*(n-1)/2 *e(x_i)*e(x_j)

n/3+n(n-1)/4

sigma(x)^2=e(x^2)-(ex)^2=n/12=100標準差 sigma=10,期望值 ex=600根據中心極限定理,x分佈接近於期望值為600,標準差為10的正態分佈,因此p(x<575)約為 phi((575-600)/10)=phi(

cad中如何選擇某一區域內的圖形

如bai果你是在布局裡面作圖,那du就好辦,隱藏圖層的問題zhi而已。如果想dao 要的是如何專在那層不需要噴淋頭的平面屬裡面,刪除100多個噴淋頭,你把噴淋頭得圖層單獨出來不就可以,其他所有圖層隱藏也可以快速選擇刪除。cad中如何選來擇某一區域內源的圖形三種常用選擇方式 bai 1 矩形框選du ...

再同一建築物或同一區域內,用隔板或隔牆,將禁忌物料分開的儲存叫什麼

在同一建築物或同一區域內,用隔板或牆,將禁忌物料分開的儲存方式叫隔開貯存。根據 常用化學危險品貯存通則 危險化學品的儲存方式有三種 1 隔離貯存 在同一房間或同一區域內,不同的物料之間分開一定的距離,非禁忌物料間用通道保持空間。2 隔開貯存。3 分離貯存 在不同的建築物或遠離所有建築的外部區域內。擴...

日下面內什麼字,日下面乙個內什麼字

沒有這樣的字,形近字有 昺讀音 b ng 部首 日 五筆 jgmw 釋義 古同 炳 明亮的,光明的。多用於人名。咼讀音 w i h w w gu gu 部首 口 五筆 kmwu 釋義 w i 歪斜 斜。h 古同 禾 w 1.墮 斜垂,如 髻 古代婦女一種斜垂的髮式 2.咼 w 古國名。gu 古同 剮...