当前位置:首页 » 操作系统 » 随机分配算法

随机分配算法

发布时间: 2022-05-17 09:59:22

㈠ 一元夺宝,随机幸运号码,是按什么算法分配的

看什么平台吧,一般分两种方式,一种是站内夺宝的前100个时间之和加上0.001,还有一种是站内夺宝的前100个时间之和加上0.001取值为A+第三方未知数据为B的方式开奖,相对来说后面一种可作弊的可能性小。

㈡ 微信红包的随机算法是怎样实现的

下面是一个比较拙的算法,真实的红包随机数要稍微复杂些:

classProgram
{
staticvoidMain(string[]args)
{
double[]hb=WeiXin.Hongbao(5,1);

for(inti=0;i<5;i++)
{
Console.WriteLine(hb[i]);
}

}
}

///<summary>
///微信类
///</summary>
publicclassWeiXin
{
///<summary>
///红包随机分配
///</summary>
///<paramname="personNumber">红包个数</param>
///<paramname="money">金额</param>
///<returns></returns>
publicstaticdouble[]Hongbao(intpersonNumber,doublemoney)
{
Randomrand=newRandom();
doublefen=money;
double[]hb=newdouble[personNumber];
doublerm=0D;

//预分配
for(inti=0;i<personNumber;i++)hb[i]=0.01;

fen-=(personNumber*0.01);

if(fen>0.01)
{
//随机分配
while(fen>0)
{
rm=GetRandomNumber(0.01,fen);
hb[rand.Next(0,personNumber)]+=rm;
fen-=rm;
}
}

returnhb;
}

///<summary>
///返回介于minimum和maximum之间的随机数
///</summary>
///<paramname="minimum">最小值</param>
///<paramname="maximum">最大值</param>
///<returns></returns>
(doubleminimum,doublemaximum)
{
Randomrandom=newRandom();
returnMath.Round(random.NextDouble()*(maximum-minimum)+minimum,2);
}
}

㈢ C语言怎么实现随机分配

srand(
(unsigned)time(
NULL
)
);
;
num=rand()%k;
用这个生成随机数你应该会吧
然后给6个长方形每个一个随机数,排序,然后将较大的2个一组,较小的2个一组,中间2个一组
也可以给每个方块一个0-2的随机数,同时在生成随机的时候加特判,如果对应数字的组里满了就重作随机
由于方块数少,不用太在乎算法时间复杂度

㈣ 求 把 1800随机分成900份 的算法

第一节 随机抽样 基础梳理 1. 简单随机抽样 (1)定义:设一个总体含有N个个体,从中 抽取n个个体作为样本(n≤N),如果每次抽取时总体内的各个个体被抽到 的机会都 ,就把这种抽样方法叫做简单随机抽样. (2)最常用的简单随机抽样的方法: 和 . N n N n 2. 系统抽样的步骤假设要从容量为N的总体中抽取容量为n的样本. (1)先将总体的N个个体 ; (2)确定 ,对编号进行 ,当是整数时,取k= (3)在第1段用 确定第1个个体编号l(l≤k); (4)按照一定的规则抽取样本,通常是将l加上间隔k得到第2个个体编号 ,再加k得到第3个个体编号 ,依次进行下去,直到获取整个样本. 3. 分层抽样 (1)定义:在抽样时,将总体 的层,然后按照 ,从各层独立地抽取一定数量的个体,将各层取出的个体合在一起作为样本,这种抽样方法叫做分层抽样. (2)分层抽样的应用范围:当总体是由 组成时,往往选用分层抽样. 4. 三种抽样方法比较类别 共同点 各自特点 相互联系 适用范围简单随机 抽样抽样过程中每个个体被抽到 的机会均等从总体中抽取总体中的 个体数较少系统抽样 将总体 分成几部分,按一定的规则分别在各部分中抽取在起始部分抽样时采用抽样总体中的 个体数较多分层抽样 将总体分成 几层,分层进行抽取各层抽样时采用抽样或抽样总体由差异明显的几部分组成 答案: 1. (1)逐个不放回地 相等 (2)抽签法 随机数法 2. (1)编号 (2)分段间隔k 分段 (3)简单随机抽样 (4)(l+k) (l+2k) 3. (1)分成互不交叉 一定的比例 (2)差异明显的几个部分 4. 逐个 均匀 简单随机 简单随机 系统 基础达标 1. (教材改编题)在抽样过程中,每次抽取的个体不再放回总体的为不放回抽样,则分层抽样、简单随机抽样、系统抽样中,为不放回抽样的有( ) A.1个 B. 2个 C. 3个 D. 0个解析:三种抽样都是不放回抽样.答案:C 2. (教材改编题)为了解1 200名学生对学校某项教学实验的 意见,打算从中抽取一个容量为30的样本,考虑采用系统抽样,则分段的间隔k为( ) A.40 B. 30 C. 20 D. 12 解析:总体容量N=1 200,样本容量n=30,所以分段间隔k=40. 答案:A 3. (原创题)某养猪场养有四大名猪:大白猪、长白猪、杜洛克猪、汉普夏猪,其中大白猪有200头,长白猪250头,杜洛克猪180头、汉普夏猪230头,估计产量时,应采用的抽样方法是( ) A. 分层抽样 B. 随机抽样 C. 系统抽样 D. 以上三种方法都可以解析:由于品种之间差异较大,故采用分层抽样.答案:A 4. (2010·四川)一个单位有职工800人,其中具有高级职称 的160人,具有中级职称的320人,具有初级职称的200人,其余人员120人.为了解职工收入情况,决定采用分层抽样的方法,从中抽取容量为40的样本.则从上述各层中依次抽取的 人数分别是( ) A. 12,24,15,9 B. 9,12,12,7 C. 8,15,12,5 D. 8,16,10,6 5. (2009·广东)某单位200名职工的年龄分布情况如图,现要从中抽取40名职工作样本.用系统抽样法,将全体职工随机按 1~200编号,并按编号顺序平均分为40组(1~5号,6~10 号,…,196~200号).若第5组抽出的号码为22,则第8组抽出 的号码应是 .若用分层抽样方法,则40岁以下年龄段应抽取 人.解析:因为抽样比 = ,. 故各层中依次抽取的人数分别是 =8, =16, =10, 答案:D =6,故选D. 40 800 1 20 160 20 320 20 200 20 120 20 解析:由系统抽样知第1组抽出的号码为 2,则第8组抽出的号码为2+5*7=37;当用分层抽样抽取时,40岁以下年龄段应抽取 1 2 *40=20(人).答案:37 20 经典例题题型一 简单随机抽样【例1】 上海世博会组委会决定从来自上海的1 800名志愿者中,选取6人组成志愿小组去中国馆服务,请用抽签法或随机数法设计抽样方案.解析:第一步,先将1 800名志愿者编号,可以编为 0001,0002,0003,…,1800;第二步,在随机数表中任选一个数,例如选出第2行第5列的 数2;第三步,从选定的数开始向右读,依次可得0 736,0 751, 0 732,1 355,1 410,1 256为样本的6个号码,这样我们就得到一个容量为6的样本. 题型二 系统抽样【例2】 从某厂生产的905辆家用轿车中随机抽取90辆测试某项性能,请合理选择抽样方法进行抽样,并写出抽样过程.解析:可用系统抽样法进行抽样,抽样步骤如下:第一步,将905辆轿车用随机方式编号;第二步,从总体中剔除5辆(剔除法可用随机数法),将剩下的 900辆轿车重新编号(分别为001,002,…,900),并分成90段;第三步,在第一段001,002,…,010这十个编号中用简单随机 抽样法抽出一个作为起始号码(如006);第四步,把起始号码依次加间隔10,可获得样本.变式2-1 下面给出某村委调查本村各户收入情况所作的抽样,阅读并回答问题:本村人口:1 200人,户数300,每户平均人口数4人;应抽户数:20户;抽样间隔: =60; 1200 20 确定随机数字:取一张人民币,编码的后两位数为12;确定第一样本户:编码的后两位数为12的户为第一样本户;确定第二样本户:12+60=72,72号为第二样本户; … (1)该村委采用了何种抽样方法? (2)抽样过程中存在哪些问题,并修改. (3)何处是用简单随机抽样?解析:(1)系统抽样. (2)本题是对某村各户进行抽样,而不是对某村人口进行抽样,抽样间隔为 =15, 300 20 其他步骤相应改为确定随机数字:取一张人民币,编码的后两位数为12,确定第一样本户:编号为12的户为第一样本户;确定第二样本户:12+15=27,27号为第二样本户. (3)确定随机数字用的是简单随机抽样,即“取一张人民币,编码的后两位数是12”用的为简单随机抽样. 题型三 分层抽样【例3】 一中学有高一学生400人,高二学生302人,高三学生250人,现用分层抽样法从全校所有学生中抽取一个容量为 190人的样本,应剔除多少人?每个年级分别抽取多少人?解析:总体人数为400+302+250=952人,样本容量为190,若按190∶952取样,无法取得整数解,故考虑从高二学生中剔除 2人,抽取比例为190∶950=1∶5,则高一学生应抽400 =80 人,高三学生抽取250 =50人. 先从高二学生中剔除2人,高二学生抽取300 =60人,组成容量为190的样本. 因此应从高二学生中剔除2人,高一学生抽取80人,高二学生抽取60人,高三学生抽取50人. 1 5  1 5  1 5  某学院的A,B,C三个专业共有1 200名学生,为了调查这些学生勤工俭学的情况,拟采用分层抽样的方法抽取一个容量为 120的样本.已知该学院的A专业有380名学生,B专业有420名学生,则在该学院的C专业应抽取 名学生.变式3-1 解析:C专业的学生有1 200-380-420=400名,由分层抽样原理,应抽取120* 400 1200 =40名.答案:40 链接高考 (2010·重庆)某单位有职工750人,其中青年职工350人,中年职工250人,老年职工150人,为了了解该单位职工的健康情况,用分层抽样的方法从中抽取样本. 若样本中的青年职工为7人,则样本容量为( ) A. 7 B. 15 C. 25 D. 35 知识准备:知道分层抽样中各层的抽样比相同,并会求抽样比.答案:B 解析:青年职工、中年职工、老年职工三层之比为7∶5∶3,所以样本容量为 =15.故选B. 7 7 15

㈤ excel中例如,把1000随机分配成30个数,其中30个数中上下浮动不能超过20,

三个数和是100,最大和最小差不超过20,也就是说。数值范围在23.3到43.3之间波动。

可以采用用随机数的方式,在23.3和43.3之间取俩个,最后一个数通过100-前两数的和得出。

这个这个算法执行10次。

下面,我把三个数的范围设置24到42,

在A1中输入公式=24+RAND()*18。然后通过拖动的方式(鼠标移到右下角,光标为十字)复制公式到A2(也可以直接在A2中输入公式=24+RAND()*18)。在A3中输入公式=100-A1-A2

选中A1,A2,A3,竖向拖动到第十行。

因为存在小数,我给了检测公式,如果不对看可把鼠标放在A上,向下拉到A10,在横向拉一下,相当于重新计算下。

㈥ 数学题:把52张牌随机分给四个人,每人13张,求每人都得到一张A的概率,用排列组合公式计算

把52张牌分成四组
共有52!/(13!×13!×13!×13!)种
每组有一个A共有4!×48!/ (12!×12!×12!×12!)种
概率为≈0.1055

㈦ 求算法 :将1到9随机分配给9个变量,每个变量一个数字,不能重复

*Algorithm 1:{
int a[10] = {0}; /*0、1~9*/
int i, m;
for(i = 1; i < 10; i) {
while(a[m = rand() % 100]);
a[m] = i;
}
}
*Algorithm 2:{
int a[9] = {1..9};
for(int i = 0; i < 9; --i)
swap(a[i], a[rand()%i]);
}

㈧ 如何用excel进行随机分配我想要将73个不同的任务分配给17个人 如何做分配完之后将每个人分配到的任务

  1. 先对任务和人员进行编号。(人员和任务都可以加一个辅助列,用random函数返回一个小数,根据辅助列的小数排序后依次编号。)


  2. 按照机械抽样的方式将任务依次分派给各个人员。

    结果见表


㈨ 随机红包金额如何决定的

从工程角度来说,红包分配算法需要简单粗暴的实现。

有些人的算法过于复杂,第几个人领取都要面面俱到的计算,考虑因素太多,工程实现上真的没必要。
其实只需要按照如下框架即可:

1. 发红包时,按照设计的快速随机算法,将红包分好若干份。

2. 按照设计的评估算法,对得到的红包分配进行校验。

3. 如果校验不通过,如贫富差距过大,则重复随机分配。

4. 如果若干次重复,如5次,则停止重复,就按照当前分配。

5. 再有用户请求红包,直接队列化请求,再从红包序列中取出对应编号红包。

上述方案的优势是:
1. 只需“一次”计算。

随机算法选择简单粗暴的即可,系统按照校验策略对其评价,不满足则有限次重复,直到满足或次数太多为止。

2. 此后就只有读取。

后续操作完全是读取缓存,无需密集计算。

那么是不是还有更简单粗暴的方案呢?还是有的,那就是伪随机序列查表法。

百万千万级别的红包请求,如果每次都按照真随机来计算,仍然会有不小的计算压力。

索性预先计算得到若干伪随机分配方案,调用时只需要随机选择一个即可。
举例来说,有人的红包是10元分配给5人,系统预先存有多种分配方案,如1,1,2,3,3,或1,1,2,2,4,请求时随机选取一个方案即可。

当然,各种组合未必能穷尽,但是只需要让用户在有限次操作中觉得这是随机就够了。
(9)随机分配算法扩展阅读
微信红包是腾讯旗下产品微信于2014年1月27日推出的一款应用,功能上可以实现发“红包”、查收发记录和提现。

2014年4月14日,“安卓手机用户只要用微信扫描身边出现的红色二维码,通过腾讯应用宝成功安装其他应用软件,即可领取微信红包。

2019年2月10日,微信官方发布2019年春节数据报告,除夕到初五,8.23亿人次收发微信红包。
设计简单

在“微信红包”这个功能的设计上,遵循了简单的原则。发送方通过“新年红包”公众号,选择发送红包的数量和金额,以及祝福的话语,通过“微信支付”进行支付,就可以发送给好友;接收方则在打开后获得相应收益,只需要将储蓄卡与微信关联,就可以在一个工作日后提现。2014年1月27日前,用户在抢红包之前,要先写上祝福,然后才可以抢。在这之后,已经改为先抢红包再发送祝福的过程。

㈩ 微信红包的随机算法是怎样实现的

我们在一个20人的群中,自己发红包以及结合其他人发出红包的情况,整合成两轮的数据。每次金额设置都是20块并且有20个,第一轮是发了15次,第二轮是发了19次,总结成表格,然后为了避免突发的数据影响判断,我们将两轮数据杂糅从而生成了其他的三轮数据,一共是五轮数据。罗列如下表,高亮的数据为最佳手气。每一列的数据最早抢到红包的在最底端,越往上越晚抢。
从所有黄色的数值(最佳手气金额)可看出,所有最佳手气值都在平均值*2的前后附近(平均值=总金额/红包总个数,这里平均值=20/20=1),事实上确实如此,可通过微信红包分发算法得到验证,算法具体见后文
然后我们选取部分数据开始制作散点图。横轴为1-20,分别表示抢到红包的人的编号,随递增而越早。也就是20代表最早抢到的人。纵轴为金额。同样的形状颜色的点代表一次发红包,然后我们抓取部分数据显示为散点图,越密集代表该顺序位的用户得到的金额越稳定。散点图如下:

规律一:我们可以看到,所有红包大多数金额分布在0.5到1.5元之间,显示为图中方框所示,大部分点都分布在这个位置。然后是顺序位密集程度的对比,可以发现20、19,也就是最先抢到红包的人,小圆圈所示基本的点都集中在小范围,说明先抢红包的人得到的金额会比较稳定,但同时最佳手气的概率也比较低。大圆圈所示的是极不稳定,飘忽的金额分布,表示越晚抢红包得到的金额会飘忽不稳,但同时,抢到最佳手气等大金额的红包概率也比早抢的高。
根据上面的分析,我们又写了一个过滤计数函数,针对金额的分段的红包个数进行统计:
比如2.0-2.5
得到如下金额分布:
折线图:
规律二:绝大多数的红包的金额都集中在1-1.5,也就是说20块钱发20个红包的金额分布集中在比平均数大一点点的附近,同时较大幅超过平均数金额的红包大大少于低于于平均数的红包数量。
那我们继续扩大数据的规模,将几轮数据的均值和标准差分别做成折线图:
综合上面各个折线图的情况,我们可以得到越早抢红包的标准差越小,越晚抢红包的标准差越大,但同时,由均值和总额可以看出来,越早抢红包的均值往往要更高,红包金额得到最佳手气概率也会相对较小,越晚抢红包的人则得到最佳手气等大手气的概率更大。
为了得到更为趋近规律的曲线和规律,我们决定将两轮真实数据合并起来,然后给出幂函数的趋近线(虚线),如下图:
由于均值受极值波动影响较大,所以我们去除一些因为偶然差产生的极端点(圆圈的点)从而发现是递增的趋势。
规律三:可以很明显的看到,均值是随着抢红包的越晚而缓慢递减,标准差值同时也往上递增,这个趋势结合之前的分析,我们猜想,即标准差越大说明,领取到最大的红包和最小红包的风险越大,也就是说越晚抢标准差越大,对于冒险主义者来讲是最好的,因为他有很大概率获得最大的金额,但也大概率获得最小的红包,风险与收益并存;均值越大,说明每次都拿到一个不大不小的红包,虽然获得最小和最大金额红包的概率很小,但起码不亏本,也就是说越早抢,均值越稳定,这比较适合不喜欢冒险的人。
验证预测结果:
21:24分发送预测结果到另一位同学微信:

随后开始发红包:

结果:
最佳手气为第8个人且金额为1.13
与预测结果一致,规律基本正确!
总结:
(1)最佳手气为1.13块,根据我们推导的预测公式=总额/红包总个数*2*随机数(0-2的double数), 也就是说最佳手气在总额/红包总个数*2值的前后附近。这里我们判断在0.8-1.3之间,推断正确
(2)平均值为0.5元,0.5-0.8元的红包有3个,小于0.5的红包有6个,说明大于平均值的红包个数多于小于平均值的个数。与我们的第二点预测完全正确
(3)最佳手气位置:根据我们的散点图发现,最先抢到红包的人,得到的金额会比较稳定,但同时最佳手气的概率也比较低。表示越晚抢红包得到的金额波动较大,但同时抢到最佳手气等大金额的红包概率也比早抢的高。所以我们推断,最佳手气位置在最后20%-30%之间。
微信红包随机分发算法c++模拟:
基本思路:每次抢到一个红包金额等于:红包剩余金额/红包剩余个数*2*随机数(0-1的double型),如果计算的结果小于等于0.01,则取0.01值
主要代码:
double packages[50000];
double Luckiest_money=0;
void getPackage(int remainSize,double remainMoney){
srand((unsigned)time(NULL));
for(int i=0;i

热点内容
ig加密语音 发布:2024-10-11 12:19:25 浏览:485
钉图上传 发布:2024-10-11 12:11:27 浏览:477
脚本个 发布:2024-10-11 12:10:43 浏览:149
刚性攻丝的编程 发布:2024-10-11 12:10:39 浏览:467
怎么登录安卓版全民tv 发布:2024-10-11 12:10:33 浏览:622
服务器接收的参数名是什么 发布:2024-10-11 12:05:38 浏览:640
c语言中的goto 发布:2024-10-11 11:57:14 浏览:394
小司马编程 发布:2024-10-11 11:45:03 浏览:83
未使用标签进行编译 发布:2024-10-11 11:45:00 浏览:835
java开发源码下载 发布:2024-10-11 11:39:22 浏览:749