如何随机排列数组,以便一次将值打印x%?

问题描述 投票:0回答:3

我正在尝试用Java制造一个简单的老虎机。但是,我不知道如何使数组随机化,以便数组的某个值一次返回x%。

例如,下面的代码,由于Fish将返回40%,Dragon将返回30%,Joke将返回25%,而Jackpot将一次返回5%,因此我想将结果随机化。

public class SlotMachine{
  public static void main(String args[]){
    String array[] = {"Fish", "Dragon", "Joker", "Jackpot"};


  }
}
java arrays random
3个回答
3
投票

只需生成一个介于0和1之间的随机数,然后根据所需的逻辑选择一个数组元素:

double rand = Math.random();
String choice;
if (rand < 0.05) {
    choice = array[3];
}
else if (rand < 0.30) {
    choice = array[2];
}
else if (rand < 0.60) {
    choice = array[1];
}
else {
    choice = array[0];
}

System.out.println(choice);

0
投票

尝试这样的事情:

import java.util.Random

public class SlotMachine{
  public static void main(String args[]){
    String array[] = {"Fish", "Dragon", "Joker", "Jackpot"};
    Random rand = new Random();

    // Obtain a number between [0 - 100].
    if (rand.nextInt(100) <= 40) System.out.print('Fish ')
    if (rand.nextInt(100) <= 30) System.out.print('Dragon ')
    if (rand.nextInt(100) <= 25) System.out.print('Joker')
    if (rand.nextInt(100) <= 5) System.out.print('Jackpot')
  }
}


0
投票
public static void main(String[] args) {
    String array[] = {"Fish", "Dragon", "Joker", "Jackpot"};

    Random random = new Random();

    System.out.println(array[random.nextInt(array.length)]);
  }
© www.soinside.com 2019 - 2024. All rights reserved.