给定一个正整数数组,随机取出一个数,要求数值越大的数被被取出的概率越大。- JAVA
来源:互联网 发布:网络分线盒 编辑:程序博客网 时间:2024/06/05 02:07
问题
给定一个正整数数组,随机取出一个数,要求数值越大的数被被取出的概率越大
思路
先将数组arr按从小到大排序,然后新建一个数组arrb
- arr中排在第1位的数,在arrb中写入1次
- arr中排在第2位的数,在arrb中写入2次
- arr中排在第3位的数,在arrb中写入3次
- 以此类推…
如下图
出现次数多的数,即数值大的数,生成该范围内的随机数的概率也越大
java代码如下
import java.util.Arrays;import java.util.Random;public class Test { public static void main(String[] args) { System.out.println(getItem(new int[]{4,2,3,1})); } public static int getItem(int arr[]) { Arrays.sort(arr); int sum = 0 ; for(int i = 1 ; i <= arr.length ; i++) { sum += i; } int b[] = new int[sum]; for(int i = 0,index = 0 ; i < b.length ; index++,i += index) { for(int j = i ; j < i + index + 1 ; j ++) { b[j] = arr[index]; } } Random random = new Random(); return b[random.nextInt(sum)]; }}
阅读全文
0 0
- 给定一个正整数数组,随机取出一个数,要求数值越大的数被被取出的概率越大。- JAVA
- 给定一个序列,取出其中第二大的数,要求不对整个序列排序
- java取出一个数组中第二大的数字
- 从一个数组中随机的取出若干个不同的数
- 取出一个数组的最大值
- php 关联数组中随机的取出一个元素
- 给定一个数组,元素都是正整数,要求返回这些元素所组成的最大数
- 给定任意一个正整数,求比这个数大且最小的“不重复数”
- 给定任意一个正整数,求比这个数大且最小的“不重复数”
- 已知数0到n-1,给定数m,每隔m取出一个数,问,全部取出时的序列
- 给定一个数,要求输出比它大的最小的非重复数
- 阿里巴巴面试算法题:有一个函数int getNum(),每运行一次可以从一个数组V[N]里面取出一个数,N未知,当数取完的时候,函数返回NULL。现在要求写一个函数int get(),这个函数运行一次可以从V[N]里随机取出一个数,而这个数必须是符合1/N
- 给定一个正整数,找出一个数:与其二进制表示中1的个数相同,比该数大,而且最接近
- 随机取出js数组中的一个值
- 整型数组处理算法(九)给定任意一个正整数,求比这个数大且最小的“不重复数”[2014百度笔试题]
- 整型数组处理算法(九)给定任意一个正整数,求比这个数大且最小的“不重复数”(性能优化)[2014百度笔试题]
- 通过js从一个数组中随机的取出一个值
- 从一个数组里面取出一个范围之间的数放倒另一个数组里面
- 命令模式(14)--命令模式
- 关于数据清洗的梳理
- pyQt5-事件和信号
- 数据结构第三周项目1
- 3.1分析并写出下列程序的运行结果。
- 给定一个正整数数组,随机取出一个数,要求数值越大的数被被取出的概率越大。- JAVA
- spring mvc的编码问题解决
- 第八周(1)项目二 链串的算法库
- Python与机器学习之模型结构(泊松分布)
- 浅谈iOS尺寸单位pt、ppi与px
- 第八周【串】项目4-字符串加密
- 冒泡排序
- 第四周项目2-建设单链表算法库
- Qt自定义无边框窗口技术选型测试