2017-08-08 49 views
1

每當我執行程序時,它總是爲sc1和sc2輸出9和5。這是我的理解,隨機班應該是大部分隨機的。爲什麼我的代碼不斷地給出相同的隨機數

這裏是我的代碼:

public class BlackJack { 

    public static BlackJack blackjack; 
    public int chips; 
    public static int[] deck; 
    public static int ct = 0, sc1, sc2; 
    Random random; 

    public BlackJack() { 
     deck(); 
     deal(); 
     System.out.println(sc1); 
     System.out.println(sc2); 

    } 



    public void deck() { 
     deck = new int[52]; 
     for (int i = 0; i < 52; i++) { 
      if(i % 4 == 0) { 
       ct++; 
      } 
      deck[i] = ct; 
     } 

    } 



    public void deal() { 
     random = new Random(52); 
     sc1 = deck[random.nextInt(52)]; 
     sc2 = deck[random.nextInt(52)]; 
    } 



    public static void main(String[] args) { 
     blackjack = new BlackJack(); 
    } 

} 

先感謝您的任何指導。

+2

你總是爲52個「Random」實例播種,所以你將總是得到僞隨機序列中相同的數字。在你的「Random」聲明中取出52。 – rossum

+0

不要使用Random類,它使用內部字典,並且可以多次爲您提供相同的重複數據 – Moumit

回答

0

沒關係。我很笨。這是事實,我有隨機=新隨機(52);而不是random = new Random();

+5

您可以刪除您的問題/答案 – user7294900

相關問題