问题
给定一个正整数数组,随机取出一个数,要求数值越大的数被被取出的概率越大
思路
先将数组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