- 题目:给定一个数组,每个值都是一个权值。随机返回数组中的数,要求权值高的相应的返回的概率高。比如现在数组存储了音乐的打分,要求随机返回数组中一个数的值。(假设数组中的值都是整数)
- 思路: 以 A:3, B:5, C:2,D:1 四条记录上随机选取一个值输出为例,(是否以权重排序这个无所谓)
对于
A 3
B 5
C 2
D 1
首先,将第n行的数值赋为第n行加第n-1行的,递归执行,如下:
A 3
B 8
C 10
D 11
可以看出,数组变换后,当产生[1,3]的随机数时,对应输出3,当产生[4,8]的随机数时,对应输出5,当产生[9,10]的随机数时,对应输出2,当产生11时,对应输出1。
代码块
代码块语法遵循标准markdown代码,例如:
import java.util.Random;
/**
* Created by happy on 17/5/14.
*/
public class