gpt4 book ai didi

java - 基于百分比的列表中的随机数

转载 作者:行者123 更新时间:2023-12-01 11:58:48 26 4
gpt4 key购买 nike

我有一个数字列表,我需要从该列表中提取一个随机数字,但我需要确保从所述列表中提取一定数量的数字后,它们将形成预定义的百分位对于每组输出数字。

编码形式的示例:

int[] nums = {2,3,6};

int twoPer = 25;
int threePer = 45;
int sixPer = 30;

因此,在这个示例中,如果我随机抽取 100 个数字,则需要有 25 个 2、45 个 3 和 30 个 6。

最佳答案

您可以使用加权随机生成(有偏差)之类的东西:

int[] nums = {2,3,6};
int[] numweights = {25, 45, 30}; //weight of each element above
int totalweight = 100;

public int SetRandom() {

int[] weighednums = new int[totalweight]; //new array to hold "weighted" nums
int currentfruit = 0;
int place = 0;
while (currentfruit < nums.length) { //step through each num[] element
for (int i=0; i < numweights[currentfruit]; i++){
weighednums[place] = nums[currentfruit];
place++;
}
currentfruit++;
}

int randomnumber = (int) Math.floor(Math.random() * totalweight);
System.out.println(weighednums[randomnumber] + " at " + randomnumber);
return weighednums[randomnumber];
}

关于java - 基于百分比的列表中的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28137281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com