问题
给定一个正整数数组,随机取出一个数,要求数值越大的数被被取出的概率越大
思路
先将数组arr按从小到大排序,然后新建一个数组arrb
- arr中排在第1位的数,在arrb中写入1次
- arr中排在第2位的数,在arrb中写入2次
- arr中排在第3位的数,在arrb中写入3次
- 以此类推…
如下图
| arr | arrb |
|---|---|
| 1,2,3,4 | 1,2,2,3,3,3,4,4,4,4 |
出现次数多的数,即数值大的数,生成该范围内的随机数的概率也越大
java代码如下
import java.util.Arrays;
import java.util.Random;
public class Test {
public

本文介绍如何在Java中解决一个问题:给定一个正整数数组,数值越大的元素被随机抽取的概率越大。解决方案是首先对数组进行排序,然后根据排序后的位置在新数组中重复元素,使得数值大的元素出现次数更多,从而提高被抽取的概率。随后提供了具体的Java代码实现。
最低0.47元/天 解锁文章
6075

被折叠的 条评论
为什么被折叠?



