C# 之 概率随机数

  • 一,问题模拟:
  • 二,方法设想:
  • 三,代码实现:

随机函数是产生随机数的函数。即以等概率产生某一范围(认为规定)内的任意数。例如,产生1~10范围内的整数,随机函数每次都以10%的概率产生1,2,3,……,10中的任何一个数。
概率随机数:是在1-10内产生随机数,但是每个数生成的概率不同。例如1-9概率为10%,10的概率是%90;

一,问题模拟:

比如:求1-5的数指定概率下的随机,概率如下:

数字 概率
1 10%
2 10%
3 10%
4 20%
5 50%

二,方法设想:

1, 将每个数按照概率占比放到一个数组中(比如:[1,2,3,4,4,5,5,5,5] ),然后求【0~数组长度】的随机数,所求值再取其数组值,即为所求;

2, 将指定概率作为权值添加到一个数组

  • 将指定概率作为权值添加到一个数组:arr;
  • 求数组arr中的所有数值的和:total ;
  • 求 [0-total]中间的随机数:r;
  • 找这个随机数r的在数组arr哪个arr[i] 中,然后返回这个:i
  • 使用这个i解决问题(比如上述问题:i+1即为所求)

三,代码实现:

class Program
{static void Main(string[] args){// 概率数组int[] arr = new int[] { 10, 10, 10, 20, 50 };Console.WriteLine("概率随机数~");Console.WriteLine("随机到的索引:"+ ProbabilityRandomRumber(arr));}/// <summary>/// 概率随机数/// </summary>/// <param name="rate"></param>/// <returns></returns>public static int ProbabilityRandomRumber(int[] rate){int total = 0;for (int i = 0; i < rate.Length; i++){total += rate[i];}Random myRandom = new Random();int r = myRandom.Next(0, total);Console.WriteLine("随机数是:" + r);int t = 0;for (int i = 0; i < rate.Length; i++){t += rate[i];if (r < t)return i;}return 0;}}

C# 之 概率随机数相关推荐

  1. js抽奖事件——生成不同概率随机数

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 任务说明 一.任务要求 二.代码 1.关键代码 2.整体代码 总结 任务说明 js抽奖事件--生成不同概率随机数. 5支球队 ...

  2. 用人脑生成等概率随机数,困扰人类30万年的问题解决了 | 附“源代码”

    晓查 发自 凹非寺 量子位 出品 | 公众号 QbitAI 让人类随机说出一个1-10之间的整数(包括1和10),每个数字被选中的概率都是10%吗?答案当然是否定的. 半年前,有人对8500名学生做了 ...

  3. c语言 等概率随机数,随机数函数取样与概率

    非常感谢原版作者! 转自:http://www.cnblogs.com/wuyuegb2312/p/3141292.html#title4 本节主要受到<编程珠玑>第12章随机取样问题的启 ...

  4. c语言 等概率随机数,等概率随机函数的实现(转)

    我们知道在C语言中有rand()函数可以提供随机数,rand()函数的范围为0到32727.我们假定认为rand()产生的随机数在0到32727范围内是等概率的.如果我们需要得到一个小范围内的随机数, ...

  5. python概率随机数_基于概率python的随机数

    嗨,我已经做了研究,我相信当我在这个线程结束时,我的方向是正确的:Basically my question is: what is the code in the link doing line b ...

  6. php 随机数抽奖代码,php 抽奖概率 随机数 Web程序 - 贪吃蛇学院-专业IT技术平台...

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

  7. 随机数---等概率,特殊概率

    转自http://blog.csdn.net/liuxizhiyi/article/details/3097398 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间 ...

  8. php 根据权重随机数,PHP根据概率产生随机数

    假设 有四个选项:a 占 10%,b占20% ,C占30% , d 占 40% ,原理就是现获取随机数,然后找区间. 当然了,选项的数量可以任意.目前默认是 总和是 100% .如果需要别的数,修改  ...

  9. 一随机数以概率 p 生成0,以概率(1-p)生成1,怎样生成等概率的 0 和 1

    这涉及到概率 分布的内容了,其实也简单只要能找到一个概率为1/2p的函数就解决了. 另外还有一个比较方便的实现:  一随机数f(x)以概率 p 生成0,  那么设g(x)=f(x)>0?0:1; ...

  10. JavaScript按概率随机生成事件

    /* *在抽奖的活动中经常会用到这个算法,不同奖项的获取概率不同,要按概率去随机生成对应的奖品 * */ function random(arr1, arr2) {var sum = 0,factor ...

最新文章

  1. 看一名 KDE 开发者如何使用 C++17 为项目提升巨大速度
  2. Qt5标准文件对话框类
  3. ASP.NET 5 and .NET Core RC 准备投入使用
  4. C# ConcurrentBag实现
  5. 微信支付分-支付失败原因总结
  6. Action Service Dao三层的功能划分
  7. html中嵌入iframe进行父子页面参数传递
  8. Maven依赖管理和插件配置
  9. docker公共存储库_Docker入门(2)——镜像结构和私有镜像库
  10. setTimeout() 与 setInterval() 异同
  11. 巴特沃斯滤波器 python_巴特沃斯、切比雪夫、贝塞尔滤波器的区别
  12. php -- php数组相关函数
  13. sql语句distinct_带DISTINCT子句SQL SELECT语句
  14. Atitit.数据库新特性战略规划 mssql sql server 2008 SQL2012 SQL2014
  15. java文件上传与下载
  16. Pycharm 用鼠标滚轮控制字体大小
  17. hadoop 8088端口网页无法打开
  18. 逻辑门 与 买猫电路升级版
  19. 【肝帝一周总结:全网最全最细】☀️Mysql 索引数据结构详解与索引优化☀️《❤️记得收藏❤️》
  20. 小技巧-彻底删除U盘中的文件

热门文章

  1. 机器学习项目实战(七) 机器学习预测股价
  2. policy服务器未能登陆,开机出现Group Policy Client服务未能登录的解决措施
  3. 共模干扰与差模干扰(及其消除)
  4. 传统的6d位姿估计fangfa1_6D目标姿态估计,李飞飞夫妇等提出DenseFusion
  5. Spring系列九:Spring 事务
  6. 百度脑图(kityminder)优化
  7. Java实现 LeetCode 275 H指数 II
  8. 奔梦向前-web前端开发工具-简称DW软件适合写网页制作代码-2020-04-25
  9. windows版本解说之长期服务版缺少应用商店的安装
  10. TouchBar Dino for mac(TouchBar上的小恐龙跑酷游戏)