控制随机数出现的概率

//根据概率随机产生(1,2,3,4)     1,2,3,4的概率分别是0.3105,0.2564,0.3856,0.0475
public static int Rand2()
{
Random r = new Random(GetRandomSeed());
int num = r.Next(0, 10000);
int sth = 0;
if (num >= 0 && num < 3105)
{
sth = 1;
}
else if (num >= 3105 && num < 5669)
{
sth = 2;
}
else if (num >= 5669 && num < 9525)
{
sth = 3;
}
else if (num >= 9525 && num < 10000)
{
sth = 4;
}
return sth;

}

//解决random重复问题

public static int GetRandomSeed()
{
byte[] bytes = new byte[4];
System.Security.Cryptography.RNGCryptoServiceProvider mg = new System.Security.Cryptography.RNGCryptoServiceProvider();
mg.GetBytes(bytes);
return BitConverter.ToInt32(bytes, 0);
}

控制随机数出现的概率

时间: 2024-11-08 11:32:56

控制随机数出现的概率的相关文章

【Java】揭秘如何利用不等概率随机数制作十赌九骗的赌大小游戏,请不要沉迷各种游戏

上次在<[Java]在一定的范围内产生不同的随机数>(点击打开链接)中说明了如何产生随机数,然后还说了如何在一定的范围内产生不同的随机数,但是这些都是等概率产生随机的问题.等概率在正常情况下,更应该说是学术上是够用了,但是在现实生活中,尤其在现在游戏必须打黄赌毒的擦边球吸引人的大背景下,等概率产生随机数是远远不够用的.你作为游戏商家,说得难听点就是庄家,肯定要不等概率产生随机数来圈玩家的钱.比如,合成装备就你就不能让它合成成功是50%,合成不成功是50%,你必须把合成成功设置为1%甚至更小.这

不同概率的抽奖

今天为大家写个小程序. 工作中有遇到一些抽奖的活动,但是你懂得,抽奖物品的概率肯定不是一样,你会发现好的东西很难抽到,经常抽到一些垃圾的东西,嘿嘿,这就是本文要说的,我们要控制抽奖物品的概率.还有顺便说一句,网上这种小程序几乎没有,很多都是等概率的抽奖balabala- 需求很简单,为了更加形象,这里我们列一个表格来显示我们抽奖的物品和对应的概率(没有边框,大家凑合着看看吧,不想改造Octopress的样式了) 序号 物品名称 物品ID 抽奖概率 1 物品1 P1 0.2 2 物品2 P2 0.

关于随机数的前世今生

提起随机数,大家一定都不陌生.无论是在计算机科学领域,还是现实生活中,随机数的作用都不可小觑. 但随机数究竟是怎么一会事?它的作用是什么?它有事如何产生的? 本文会着重谈计算机的随机数以及产生算法,偏理论的只是会放到另一篇博客上[随机数那些事](https://www.luogu.org/blog/muxii/sui-ji-shuo-wei-wan-cheng-post) # 随机数定义及其性质 想要讨论随机数,首先应该明确一下随机数的定义.毕竟这个东西比较虚,并不像算法那样明确.在各大网上也没

常用类---随机数Radom

Rondom类是伪随机数类.   随机数主要由种子决定, 种子相同.随机数相同. 方法主要是 ThreadLocalRandom: 是Random的子类. 在多线程并发的情况下,ThreadLocalRandom相对于Random减少了多线程的资源竞争,保证了线程的安全性.      构造器是默认访问只能在Java.util包中访问,故提供一个静态static方法ThreadLocalRandom.current()返回当前类对象     如果我们想要在其他地方使用ThreadLocalRand

Bzoj3566 [SHOI2014]概率充电器

Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 999  Solved: 428 Description 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品——概率充电器:“采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI 概率充电器,您生活不可或缺的必需品!能充上电吗?现在就试试看吧!”SHOI 概率充电器由 n-1 条导线连通了 n 个充电元件.进行充电时,每条导线是否可以导电以概率决定,每一个充电元

C++实现随机数源代码

产生随机数的代码,因为简单就不做解释了. #include <iostream.h> #include <stdlib.h>//rand().srand() #include <time.h>//time() void main() { srand(time(0)); //根据当前时间来生成随机数种子 char ch; cout<<"请输入选择生成随机数(1-50)(q表示停止):"; cin>>ch; while(''q''

bzoj 3566: [SHOI2014]概率充电器

Description 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器:"采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI 概率充电器,您生活不可或缺的必需品!能充上电吗?现在就试试看吧!"SHOI 概率充电器由 n-1 条导线连通了 n 个充电元件.进行充电时,每条导线是否可以导电以概率决定,每一个充电元件自身是否直接进行充电也由概率决定.随后电能可以从直接充电的元件经过通电的导线使得其他充电元件进行间接充电.作为 SHO

【bzoj3566】[SHOI2014]概率充电器 树形概率dp

题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品——概率充电器:“采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI 概率充电器,您生活不可或缺的必需品!能充上电吗?现在就试试看吧!”SHOI 概率充电器由 n-1 条导线连通了 n 个充电元件.进行充电时,每条导线是否可以导电以概率决定,每一个充电元件自身是否直接进行充电也由概率决定.随后电能可以从直接充电的元件经过通电的导线使得其他充电元件进行间接充电.作为 SHOI 公司的忠实客户,你无

随机数产生函数

随机数产生函数   示例: #include <stdio.h> #include <stdlib.h> int main() { int a,i; for (i=0 ; i<=10 ; i++) { a = rand(); printf("%d \n", a); } getchar(); return 0; } 运行结果: 1804289383 846930886 1681692777 1714636915 1957747793 424238335 71