首頁  >  問答  >  主體

面对对象 - java这段代码为什么不随机的

在看Thinking in Java,有一段实在没看懂

package com.company.allAreTheObjective.Symbol;
import java.util.*;

/**
 * Created by Francis on 12/05/2016.
 */
public class VowelsAndConsonants {
    public static void main(String args[]){
        Random rand = new Random(47);
        for (int i = 0; i < 100; i++){
            int c = rand.nextInt(26) + 'a';
            System.out.print((char)c+","+ c +":");
            switch(c){
                case 'u' : System.out.println("vowel");break;
                case 'w' : System.out.println("Sometimes a vowel");break;
                default  : System.out.println("constant");
            }
        }
    }
}

这一段为什么输出恒为
y,121:constant
n,110:constant
z,122:constant
b,98:constant
r,114:constant
n,110:constant
y,121:constant

PHP中文网PHP中文网2766 天前402

全部回覆(3)我來回復

  • 阿神

    阿神2017-04-17 17:54:36


    程式產生的都是偽隨機數,你的隨機數種子固定為47,每次生成的當然都一樣,想要不一樣可以把種子改成時間戳之類的

    回覆
    0
  • 迷茫

    迷茫2017-04-17 17:54:36

    new Random(47)改成new Random()就好了。

    電腦產生的隨機數都是偽隨機數,只要給的初始化種子一樣,產生的隨機數序列就是一樣的。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 17:54:36

    相同種子數的Random對象,相同次數產生的隨機數字是完全相同的.
    修改成Random rand = new Random()就好。

    回覆
    0
  • 取消回覆