① java中如何让A的输出的概率为50%B输出的概率为30%C输出的概率为20%
publicclassTest{
publicstaticvoidmain(String[]args){
doubled=Math.random();//生成一个0~1的随机数
if(d<=0.5){
System.out.println("A");//50%概率
}elseif(d<=0.8){
System.out.println("B");//30%概率
}else{
System.out.println("C");//20%概率
}
}
}
② JAVA中如何实现概率算法,比如打架小游戏,普通攻击概率为80%,暴击为20%。 谢谢啦
几率的算法,大家不信可以进游戏看看自己各种技能伤害加成是不是这样,例如鸟的大招... 觉醒+自身一共20%暴,2+4暴击套30%,这就是50%了
③ 求java算法:根据物品的数量来确定抽奖的概率(当物品数量为0时无论如何都不可能选到)
public class Lottery {
private int m = 1000;//发放奖券的数量
private int n = 2;//奖品的数量
public boolean getLottery(){
boolean isLottery = false;
double d = (double)n/(double)m;//中奖概率
double r = Math.random();//0~1之间的随机数,包括0
if(r<d){//如果随机数小于概率 那么中奖
n--;//奖品数量-1
isLottery = true;
}
m--;//奖券数量-1
return isLottery;
}
}
④ java投掷骰子,求点数的出现概率
很简单 。
int [] num = new int[3]; //数组长度为3
int diag=0; //统计出现5的次数
for(int i=0;i>3;i++){ //掷骰子三次 ,也就是三个骰子
随机数字 num[i]=(int)(Math.random()*5)+1; //随机1-6的数字
if(num[i]==5){
diag++; //当骰子等于5的时候,统计次数加1;
}
}
double a=diag/3; //骰子出现5的次数,除以骰子总数,得到概率。
System.out.println(a);
⑤ 求一段JAVA的概率算法
public class Zhuq {
public static void main(String[] args) {
List<Person> listP=new ArrayList<Person>();
listP.add(new Person("小李", "1", 200));
listP.add(new Person("小王", "2", 210));
listP.add(new Person("小赵", "3", 230));
listP.add(new Person("小孙", "4", 100));
listP.add(new Person("小钱", "5", 3));
listP.sort(new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
// TODO Auto-generated method stub
return (((Person)o1).count)*(Math.random()*10+1)>(((Person)o2).count)*(Math.random()*10+1)?-1:1;
}
});
System.out.println(listP);
}
}
class Person {
String personName;
String id;
int count;
public Person(String personName, String id, int count) {
super();
this.personName = personName;
this.id = id;
this.count = count;
}
@Override
public String toString() {
return "Person [personName=" + personName + ", id=" + id + ", count=" + count + "]";
}
}
//本质还是随机数
⑥ java随机生成1-100之间的数10000次,计算出88出现得概率
package zhangyw.test;
import java.util.Random;
public class T {
public static void main(String[] args) throws Exception {
int count = 0;
Random random = new Random();
for (int i = 0; i < 10000; i++) {
int value = random.nextInt(100) + 1; //nextInt方法返回的值在0-99之间,所以需要加1
if (value == 88) {
count++;
}
}
System.out.println(count / 100.0 + "%");
}
}
⑦ java程序中概率问题
用概率模型,先随机一次看取用哪个概率,随后再随机一次。代码示例如下: import java.util.Random;public class HelloWorld { public static void main(String[] args) { Random random = new Random(); double p1=0.7; //1~4的概率 double p=(...
⑧ JAVA里 用取余算概率 应该怎么算
可以通过多次结果来统计出成功率int i=0,j=0;
while(j++<100000){
if(Math.abs(ap.nextInt())% 51 <= i1)i++;
}
//成功率应该就是 i/100000.0了 ,要更精确 把循环次数增加就好~
⑨ java中概率的问题
你的问题描述不清。
如果是别的数字是均等的,那把一个单独处理,别的数字分享17/20的概率。实际上是一个映射的问题。具体实现就是拿20个数字做random,然后取整,比如1->1,2、3->2,若是其它,则重新获取一个3的random,当然要把1和2给去掉
——————————————
那不就更容易了,剩下的不需要重新获取random了,直接就是3
————————————————————————
public static void main(String arg[]) {
System.out.println(getInt());
}
private static long getInt() {
long a = Math.round(Math.random() * 20);
if (a == 0 || a == 1) {
return 1;
} else if (a == 2) {
return 2;
} else {
return 3;
}
}