2013-03-23 59 views
2

如果使用兩個隨機數的隨機數,如何可以確保第一生成這些數的總是比以便呈現一個減法或除法測驗給用戶的第二較大?控制在C#

+7

會不會很隨意,是嗎? – Oded 2013-03-23 16:58:52

回答

1
var max = 1000; 
var rnd = new Random(); 
int a, b; 
do 
{ 
    a = rnd.Next(max); 
    b = rnd.Next(max); 
} while (a <= b); 

您可以使用類似的方法進行更復雜的條件太(例如,如果你的任務是產生2號,在和給100多名,等等)。

你必須使你的代碼更聰明,如果你滿足條件的隨機數的概率是如此之小,一代花費太多時間,但對於這個特殊的任務這種做法是不夠好。

+1

謝謝你,一個很好的回答,並工作過一種享受 – Rifki 2013-03-23 18:38:58

9

你不知道。

只是檢查哪一個是較大的和相應地存在。

+0

+1,不能想象這個而來的問題.. – 2013-03-23 17:48:20

+0

+1離我太 - 漂亮的是增加一個隨機數到第一個和調用結果的第二個數字真好 – duDE 2013-03-23 18:53:49

2

您生成第二個隨機數並將其添加到第一個隨機數。

+1

? – 2013-03-23 17:00:47

+0

你的意思是,nSec + = nFisrt? – duDE 2013-03-23 17:01:28

+0

沿着這些線的東西。不說你最初的答案是不正確的,但這可能是一個可行的替代:) – 2013-03-23 17:02:00

0

可以產生這樣的(僞)編號:(int)(a*rand()+b)其中A和B控制你的隨機數的範圍和出發點。

如果a1=10, b1=1比如你獲得一定範圍內的1-10。與a2=10b2=11你得到的數字在範圍11-20,這可能是很好的簡單減法問題。