【发布时间】:2015-07-23 07:21:20
【问题描述】:
我正在创建一个插件,我正在努力弄清楚如何使用HashMap 根据他们的百分比来挑选获胜者。
在我的插件中,每个玩家都存入一件物品,然后根据物品的价值,他们会收到一定百分比的返还。我正在尝试根据概率选择获胜者。现在有多个用户正在存款,这意味着该数字可能是Double。
有什么方法可以计算出来吗?
package com.test;
import java.text.DecimalFormat;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
public class Main {
static HashMap<String, Double> JackpotEntrys = new HashMap<String, Double>();
static HashMap<String, Double> JackpotPCE = new HashMap<String, Double>();
static HashMap<String, Double> Stage1JPE = new HashMap<String, Double>();
public static void main(String[] args) {
JackpotEntrys.put("mrgreen33gamer", 155.000);
JackpotEntrys.put("XeneonHD", 270.000);
JackpotEntrys.put("BadBoyBaldSpot", 760.000);
JackpotEntrys.put("Kingcreeper6", 455.000);
JackpotEntrys.put("Kingcreeper5", 50.000);
JackpotEntrys.put("Kingcreeper4", 100.000);
JackpotEntrys.put("Kingcreeper3", 20.000);
JackpotEntrys.put("Kingcreeper2", 15.000);
JackpotEntrys.put("Kingcreeper1", 5.000);
Set<String> PCES1 = JackpotEntrys.keySet();
for (Iterator<String> i = PCES1.iterator(); i.hasNext(); ){
String key = (String) i.next();
Double value = (Double) JackpotEntrys.get(key);
}
JPValue();
PCE_JPE_Pick();
}
public static void JPValue(){
Collection<Double> values = JackpotEntrys.values();
int Total = 0;
for (Double value : values) {
Total += value;
}
System.out.println("Jackpot was totalled at: " + Total);
}
public static void PCE_JPE_Pick(){
System.out.println("========== NEW LINE ==============");
Set<String> PCES1 = JackpotEntrys.keySet();
for (Iterator<String> i = PCES1.iterator(); i.hasNext(); ){
String key = (String) i.next();
Double value = (Double) JackpotEntrys.get(key);
double finalPE = value / 1000;
JackpotPCE.put(key, finalPE);
}
Set<String> PCES2 = JackpotPCE.keySet();
for(Iterator<String> i2 = PCES2.iterator(); i2.hasNext(); ){
String key = (String) i2.next();
Double value = (Double) JackpotPCE.get(key);
System.out.println(key + " has a probability of DOUBLE: " + value);
}
Random r = new Random();
double randomValue = 0 + (1 - 0) * r.nextDouble();
System.out.println(randomValue);
}
public static double probabilityCal(double PlayerDepot) {
Collection<Double> values = JackpotEntrys.values();
int Total = 0;
for (Double value : values) {
Total += value;
}
double percentage = (double) ((PlayerDepot * 100) / Total);
DecimalFormat df = new DecimalFormat("#.###");
double finalPercentage = Double.parseDouble(df.format(percentage));
return finalPercentage;
}
}
另外一件事:如果我想挑选一个各占 33% 的获胜者,我会如何挑选那个球员?
【问题讨论】:
-
你的任务不清楚。尝试更好的描述。
标签: java probability