java 按照概率生成随机数_JAVA 根据设置的概率生成随机数的方法

本文介绍了java 根据设置的概率生成随机数的方法,分享给大家

import java.util.arraylist;

import java.util.hashmap;

import java.util.list;

import java.util.map;

import java.util.random;

public class randomtest {

// string 可以为任意类型 也可以自定义类型

static map keychancemap = new hashmap();

static {

keychancemap.put("aaa", 500);

keychancemap.put("bbb", 1500);

keychancemap.put("ccc", 2000);

keychancemap.put("ddd", 3000);

keychancemap.put("eee", 3000);

}

public static void main(string[] args) {

map count = new hashmap();

list list = new arraylist<>();

string item = null;

for (int i = 0; i < 10000; i++) {

item = chanceselect(keychancemap);

list.add(item);

if (count.containskey(item)) {

count.put(item, count.get(item) + 1);

} else {

count.put(item, 1);

}

}

for (string id : count.keyset()) {

system.out.println(id + "\t出现了 " + count.get(id) + " 次");

}

random rand = new random();

int num = rand.nextint(10000);

system.out.print("最终选择的随机数为:"+list.get(num));

}

public static string chanceselect(map keychancemap) {

if (keychancemap == null || keychancemap.size() == 0)

return null;

integer sum = 0;

for (integer value : keychancemap.values()) {

sum += value;

}

// 从1开始

integer rand = new random().nextint(sum) + 1;

for (map.entry entry : keychancemap.entryset()) {

rand -= entry.getvalue();

// 选中

if (rand <= 0) {

string item = entry.getkey();

return item;

}

}

return null;

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值