gpt4 book ai didi

java - 从 Java 的范围列表中选择一个随机整数

转载 作者:行者123 更新时间:2023-12-01 06:55:02 26 4
gpt4 key购买 nike

我有一个 Java 范围列表

public class Range {
private int min, max;
//constructor, getters, setters go here
}

因此,列表可能如下所示

ranges = [[3,9], [18,45], [90,112]]

我需要实现以下功能

public int getRandomValueWithinRanges() {
//returns a value which is contained inside a range inside the ranges ArrayList
}

我该怎么做?这些范围内的每个值都应该有相同的被选择概率,并且应该高效地完成(即,列出范围内的所有值,然后从该列表中随机选择,效率不高)

最佳答案

嗯,一种方法:

  1. 对所有范围求和(即它们跨越的整数总数)

  2. [0-total)中选择一个随机值

  3. 将随机值视为索引并逐步查找该索引对应的范围

  4. 根据包含所述索引的范围开始偏移随机数。

关于java - 从 Java 的范围列表中选择一个随机整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14088891/

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