假设 有四个选项:a 占 10%,b占20% ,C占30% , d 占 40% ,原理就是现获取随机数,然后找区间。

当然了,选项的数量可以任意。目前默认是 总和是 100% 。如果需要别的数,修改 随机数的范围即可。

这个算法,比较简单,效率也还算高。

$data = array(

'a' => 10 ,

'b' => 20 ,

'c' => 30 ,

'd' => 40

);

echo randomSelect( $data );

function randomSelect( &$array ){

$datas = $array ;

if( !is_array($datas) || count($datas) == 0 )

return ;

asort($datas); //按照大小排序

$random = rand(1,100);

$sum = 0 ;

$flag = '';

foreach($datas as $key => $data ){

$sum += $data ;

if( $random <= $sum ){

$flag = $key;

break ;

}

}

if( $flag == '' ){ // 如果传递进来的值的和小于100 ,则取概率最大的。

$keys = array_keys($datas);

$flag = $keys[count($keys) - 1] ;

}

return $flag;

}

给定一个函数rand&lpar;&rpar;能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?

题目:给定一个函数rand()能产生1到n之间的等概率随机数,问如何产生1到m之间等概率的随机数? 先把问题特殊化,例如原题变为给定一个函数rand5(),该函数可以随机生成1-5的整数,且生成概率一 ...

面试题:给定一个函数rand&lpar;&rpar;能产生1到m之间的等概率随机数,产生1到n之间等概率的随机数?

虽然TX的面试已经过去好几天了,然而惨痛的过程还历历在目.人生中第一次正式job面试就这么挂掉了.在于面试官的交流过程中,被问及了几个算法设计题,在今后几篇博文中,我一一总结与诸君分享. 1. 给定一 ...

JAVA 根据设置的概率生成随机数

import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; i ...

【watcher】 &num;02 c&num; 中实现时间戳等,日期数字及大概率绝对随机数 实现

在Wacher的项目中,用到了很多时间记录的地方,为了将来能够和在线数据打通,我们使用了时间戳来记录时间信息 由于c# 没有现成的方法,所以我们重新写了一个Helper类来帮助我们使用这些公共函数 同 ...

10,随机等概率的输出m个不重复的数

今天看到一段代码,可以从0.....n-1中随机等概率的输出m个不重复的数(n远远大于m).遂记录下来. 首先,产生随机数,不免要用到srand,rand函数.先简单介绍下两个函数. 1,void s ...

&lbrack;JS&rsqb;Math&period;random&lpar;&rpar;

参考网址:http://www.soulteary.com/2014/07/05/js-math-random-trick.html [JS]Math.random()的二三事 看到题目,如果大家平时 ...

php 抽奖概率 随机数

<?php $prize_arr = array( '0' => array('id' => 1, 'title' => 'iphone5s', 'v' => 5), ' ...

C&num; 获取一定区间的随即数 0、1两个值除随机数以外的取值方法&lpar;0、1两个值被取值的概率相等&rpar;

获取随机数 举例:0-9 Random random = new Random(); int j = random.Next(0, 9); 0.1两个值被取值的概率相等 int a = Math.Ab ...

随机推荐

Unity3D ShaderLab 车辆喷漆光照模型实战

这一篇,我们来创建一个车辆喷漆的光照模型.首先就是准备场景,新建Shader & Material. 过程比较简单,直接看完成的代码吧: Shader "91YGame/CarOut ...

OC中成员变量的命名

先前写C++ 的时候,命名成员变量一般都是用 m_veriableName:的方式,但是进到新项目组,用了OC以后,发现成员变量都是用 veriableName_的方式,最后的一个下划线表示是成员变量 ...

计算几何基础——矢量和叉积 &amp&semi;&amp&semi; 叉积、线段相交判断、凸包(转载)

转载自 http://blog.csdn.net/william001zs/article/details/6213485 矢量 如果一条线段的端点是有次序之分的话,那么这种线段就称为 有向线段,如果 ...

poj 2251 搜索

Dungeon Master Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13923   Accepted: 5424 D ...

PowerDesigner 怎么给 Table Properties 增加注释和默认值

1.  选中表,右键 2. 选中“comment”, 这个就是列的注释 3.还是这个页面 ,往下有个“default value”, 这个就是你设置的默认值. 4. 这个是怎么设置默认值.

ES聚合实例

在es中需要根据app_categor进行聚合,JSON查询语句如下: { "query": { "bool": { "must": [ { ...

list集合接口

import java.util.ArrayList; import java.util.List; class Phone { private String brand; private doubl ...

GMA Round 1 向量计算

传送门 向量计算 已知$\left |\overrightarrow{AB} \right |^2+\left |\overrightarrow{CD} \right |^2+\left |\over ...

Mongodb 笔记 - 性能及Java代码

性能 以下数据都是在千兆网络下测试的结果 写入 数据量的增大会导致内存占满, 因为mongodb会将数据尽可能地载入内存, 索引占用的空间也很可观非安全模式下, 速度取决于内存是否占满能差一个数量级, ...

bzoj1497 &lbrack;NOI2006&rsqb;最大获利 最大权闭合子图

链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1497 思路 最大权闭合子图的裸题 一开始知道是这个最大权闭合子图(虽然我不知道名字),但是我 ...

php 根据权重随机数,PHP根据概率产生随机数相关推荐

  1. 随机数及按照概率生成随机数

    实例一简单生成随机数: #include <iostream> #include <cstdlib> using namespace std;int Random(double ...

  2. 通过随机数生成兑换码和概率生成随机数

    以下的方法是可以用来生成兑换码,以及按概率处理生成随机数的方法 首先是按概率生成随机数的方法,假设奖品有30000分,20000分,10000分,3000分,2000分 function get_ra ...

  3. Java:实现 按概率生成随机数算法(附完整源码)

    Java:实现 按概率生成随机数算法 /*** 从一组数据按照概率分布随机取出一个*/public static int getRandomNum(List<ModelNum> nums) ...

  4. python 生成指定概率的随机数

    生成指定概率的随机数 需求 解决方法 需求 遇到一些情况需要指定概率的条件下生成随机数,比如要生成姓名字符串,随机生成的话一般是两个字的姓名和3个字的姓名概率是一样的,而实际应该是大部分偏向三个字的, ...

  5. 人工干预随机数中的概率and一些数组的小事

    今天在群里丢了一把脸,起因是因为我在研究js里的随机数,前提是我不知道Math.random()会返回0,但是不会返回1,结果被人笑话了,这里拿出来,希望大家也注意这个基础的问题. 前几天在公交车上挤 ...

  6. 获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行

    编写程序,获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行 题目:编写程序,获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行 ...

  7. java怎样输入随机数_java 键盘输入 与 随机数

    接受键盘输入数据的步骤: (1) 创建一个扫描器对象. (2) 调用扫描器对象的next(), nextInt()方法扫描数据 (3)导入包 import java.util.*; import ja ...

  8. linux sql生成随机数,Linux的两种随机数生成器

    Linux下有两个特殊设备文件/dev/random和/de/urandom,用于生成随机数./dev/random生成的随机数与当前使用的计算机硬件状态相关,提高了安全性,非常适合对随机数质量要求很 ...

  9. R语言使用rnorm函数生成正态分布随机数、自定义指定生成随机数的个数、均值、方差

    R语言使用rnorm函数生成正态分布随机数.自定义指定生成随机数的个数.均值.方差 目录 R语言使用rnorm函数生成正态分布随机数.自定义指定生成随机数的个数.均值.方差 R 语言特点 R语言使用r ...

最新文章

  1. 属性处理器Spring攻略学习笔记(2.12)------外部化Bean配置
  2. UVA 10271 Chopsticks
  3. 教你如何用Python追踪快递信息!
  4. cocos2dX改变锚点位置
  5. html排序按钮_插件分享 | 可进行排序扫描任务的Task Queue
  6. 索引 CREATE INDEX
  7. 使用Emit的时候类型XXX尚未完成
  8. 计算机科学对社会发展的作用,科学技术在计算机领域对社会发展的作用及影响...
  9. 两个转子的转轮机原理详解与算法实现
  10. 第一次创建百度脑图介绍自己,把创建过程分享一下吧,嘿嘿。
  11. 项目管理工具dhtmlxGantt甘特图入门教程(三):如何配置Gantt
  12. Ubuntu18.04 安装最新版WPS
  13. 玩客云安装青龙面板实现京东签到薅羊毛
  14. 9个酒瓶子砸向Google:google不做坏事么?
  15. MQTT协议笔记之头部信息
  16. 88、基于STM32单片机的指纹考勤机指纹识别签到系统设计
  17. 移动叔叔工具箱android,移动叔叔工具箱
  18. 2psk系统的仿真课程设计matlab,通信原理课程设计-基于MATLAB-Simulink的2PSK仿真
  19. Golang依赖下载安装失败解决方法
  20. 开源单点登录系统CAS入门

热门文章

  1. [转载]html5教程
  2. Lab_2 OSPF
  3. Windows 服务全攻略(1)
  4. 数据结构_栈和队列的区别
  5. 台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numerical differentiation
  6. php 手机唯一标示_Php获取移动设备唯一标识
  7. 栈空间不够会报错吗_网站更换域名和空间会对优化有影响吗?
  8. php 子类名,php的继承方法获取子类名
  9. 使用关中断解决资源冲突问题
  10. 存储块的删除与状态查询