2014-09-21 90 views
-1

因此,對於我的程序中的一個選項,我試圖創建一個僞隨機數發生器。當用戶輸入相同的種子時,我無法弄清楚如何讓我的代碼產生相同的隨機數。我知道我需要讓用戶輸入種子,但我不確定什麼是合適的代碼。如何讓我的代碼產生僞隨機整數

else if (choice == 2){ 

    input.nextInt(); 
    System.out.println("RANDOM NUMBER GENERATOR\nTo generate a random number, I need to create a random number generator.\nTo create a random number generator that can be predicted (graded).\nI need to get the seed of the generator.\nPlease enter an integer value in Java's int range to be used as my seed.\nJava's int range is -2,147,483,648 to 2,147,483,647, inclusive:"); 


    Random rng = new Random(); 
    input.nextLine(); 

    int incl = input.nextInt(); 

    System.out.println("Enter min value:"); 

    input.nextLine(); 
    int min = input.nextInt(); 
    System.out.println("Enter max value:"); 

    input.nextLine(); 
    int max = input.nextInt(); 

    int randNum = rng.nextInt((max - min) + 1) + min; 
    System.out.println("Random value is:" + randNum); 
} 
+2

下一次,嘗試檢查[Javadoc中](http://docs.oracle.com/javase/8/ docs/api/java/util/Random.html)在提問之前使用的類。只要在隨機文檔中搜索「種子」,就會發現採用初始種子的Random構造函數和'setSeed'方法。 – 2014-09-21 23:42:36

回答

0

如果你想設置一個隨機數發生器的種子,

我會建議你使用此功能:

cin >> Value; 

srand(Value); 

一定要包括apropriate頭:

#include <cstdlib> 

(這是針對C++的,下次請指明您使用的代碼)

+1

這個問題是關於Java,但你的答案是在C++ – mvp 2014-09-21 23:10:41

+0

對不起,當我在瀏覽C++問題時回答這個問題時沒有添加標籤。 – Chantola 2014-09-21 23:11:23

+1

System.out.println只能是Java - 它馬上就很明顯 – mvp 2014-09-21 23:13:17