所以我做了这种掷骰子的方法100次,有50%的几率滚动6。 基本的想法是在1到6之间有50%的奇数和50%的偶数,所以如果滚动偶数,系统打印6,否则它会打印1到5之间的随机数。你认为这是正确的吗? / p>
public static void printDiceRolls(Random randGenerator) {
for (int i=0; i < 30; i++) {
int temp;
temp = randGenerator.nextInt(6) + 1;
if (temp%2 == 0) {
temp = 6;
}
else
temp = randGenerator.nextInt(5) + 1;
System.out.print(" " + temp + " ");
}
}
答案 0 :(得分:5)
生成1到10之间的随机数,包括两端。如果数字为1到5,则滚动该数字,否则,您滚动6.请注意,此方案有5次机会滚动6(即50%)和5 总机会第1卷到第5卷(即另外50%)。
Random random = new Random();
int roll = random.nextInt(10) + 1;
if (roll > 5) {
System.out.println("You rolled a 6");
}
else {
System.out.println("You rolled a " + roll);
}
答案 1 :(得分:0)
您可以生成1到10之间的数字,如果大于6
,则打印6for (int i = 0 ; i < 30 ; i++) {
int temp = randGenerator.nextInt(10) + 1;
if (temp > 6) {
temp = 6;
}
System.out.print(" "+temp+" ");
}
答案 2 :(得分:0)
骰子滚动,有50%的几率滚动6
以下方法确保50%的骰子为6但不会 以其他方式......我认为这是确保的最佳方式 这6个切割正好50%,但不是交替顺序 在我看来,这使得结果更加可信。
在我看来,你只需要这样做:
public static void naturalDicingWithVariablePercentageOfSix(int totalDice,int probability)
{
Random rand=new Random();
List<Integer> diceList=new ArrayList<Integer>();
System.out.println(""+( (int)(100/probability))+"% times that six being diced \n\n");
for(int i=0;i<totalDice;i++)
{
if(i%probability==0)
diceList.add(6);
else
diceList.add(rand.nextInt(5)+1);
}
Collections.shuffle(diceList);
int notSixCount=0;
int sixCount=0;
for(Integer diceVal:diceList)
{
if(diceVal!=6)
notSixCount++;
else
sixCount++;
System.out.print(diceVal+" ");
}
System.out.println("\n\n Not 6 being diced : "+notSixCount+" times "+" and Six being diced :"+sixCount+"\n\n");
}
输入:
naturalDicingWithVariablePercent6(100,2); // 50% times 6
naturalDicingWithVariablePercent6(100,3); // 33% times 6
naturalDicingWithVariablePercent6(100,4); // 25% times 6
naturalDicingWithVariablePercent6(100,5); // 20% times 6
naturalDicingWithVariablePercent6(100,6); // 16.67% times 6
输出:
六次切丁的50%次
4 3 6 6 3 5 4 6 2 1 6 6 6 6 1 6 6 4 3 5 6 6 5 4 2 5 6 2 1 6 5 5 1 6 6 6 2 6 4 6 6 4 6 6 6 6 2 1 6 3 6 4 3 5 6 6 5 6 6 6 6 6 4 2 6 3 3 6 3 6 6 6 3 5 2 5 6 6 3 2 6 6 6 5 4 6 4 4 3 6 5 4 6 1 6 6 6 6 5 6
未切割6次:50次,切割6次:50次
六次被切块的次数的33%
2 6 1 6 5 2 1 5 6 5 6 3 3 2 1 3 5 3 6 6 4 4 2 6 6 1 1 4 2 6 6 3 6 2 6 5 6 4 1 3 6 4 1 1 2 6 5 6 6 6 2 4 2 2 3 6 4 3 4 1 6 4 4 2 4 6 6 4 5 4 6 6 2 4 4 5 3 6 6 6 3 6 6 1 2 4 1 4 6 6 6 5 4 4 5 5 6 2 3 6
未切割6次:66次,6次切块:34次
六次切丁的25%是
6 1 3 4 6 4 4 2 4 1 6 3 6 1 1 3 3 5 3 4 1 2 3 3 6 3 3 4 5 5 2 6 5 2 3 1 1 4 4 6 5 4 2 3 5 6 3 4 6 4 6 6 5 6 6 5 1 6 6 6 2 3 6 3 4 4 6 5 3 4 5 2 4 2 1 6 3 5 6 3 2 1 4 1 3 6 4 6 6 5 5 5 5 4 2 1 2 3 3 6
未切割6次:75次,6次切块:25次
六次切丁的20%
6 4 6 1 3 5 4 4 1 4 4 1 4 5 6 3 4 3 2 3 3 5 2 1 3 3 2 6 1 3 5 6 5 2 2 6 3 1 2 2 1 6 2 1 3 1 1 1 1 1 5 4 4 6 2 2 2 2 1 6 3 5 6 5 3 6 6 5 2 4 3 2 6 4 6 6 6 6 3 5 2 3 2 4 4 5 4 2 1 6 1 6 6 3 3 5 2 5 2 5
不是6被切块:80次,6次被切块:20
六个被切成小块的16%
5 4 2 2 4 4 6 2 2 1 3 5 4 2 5 5 6 5 3 3 4 3 3 5 3 1 6 5 3 6 2 4 6 6 5 4 4 6 6 5 6 5 1 3 4 3 2 1 1 6 1 1 4 4 3 3 1 3 5 3 2 6 5 4 4 2 6 4 6 3 1 4 2 3 1 1 1 1 1 3 5 2 3 3 6 6 2 3 3 5 5 1 1 6 4 6 3 2 2
不是6被切块:83次,6次被切块:17
答案 3 :(得分:0)
不要滚动六面模具,滚动十面模具。模具的侧面标有[1,2,3,4,5,6,6,6,6,6]。为每个模具辊选择一个随机面。