Random 为什么我的代码总是给出相同的随机数
每当我执行程序时,它总是为sc1和sc2打印9和5。我的理解是,随机类应该是随机的 这是我的密码:Random 为什么我的代码总是给出相同的随机数,random,Random,每当我执行程序时,它总是为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()
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();
}
}
公共类21点{
公共静态21点;
公共int芯片;
公共静甲板;
公共静态int ct=0,sc1,sc2;
随机;
公共21点(){
甲板();
交易();
系统输出打印项次(sc1);
系统输出打印项次(sc2);
}
公共空甲板(){
甲板=新整型[52];
对于(int i=0;i<52;i++){
如果(i%4==0){
ct++;
}
甲板[i]=ct;
}
}
公开无效交易(){
随机=新随机(52);
sc1=甲板[random.nextInt(52)];
sc2=甲板[random.nextInt(52)];
}
公共静态void main(字符串[]args){
21点=新21点();
}
}
提前感谢您的指导。没关系。我很笨。事实上,我有随机=新随机(52);代替随机=新随机() 没关系。我很笨。事实上,我有随机=新随机(52);代替随机=新随机() 您总是使用52作为
Random
实例的种子,因此在伪随机序列中始终会得到相同的数字。在你的Random
声明中取出52。不要使用Random
类。它使用一个内部字典,可以多次为你提供相同的重复数据。你总是用52作为你的Random
实例的种子,所以你总是会在伪随机序列中得到相同的数字。在你的Random
声明中取出52。不要使用Random
类。它使用内部字典,可以多次为你提供相同的重复数据。你可以删除你的问题/答案。你可以删除你的问题/答案