利用易语言编写,逻辑为按照数字越大抽取率越前
利用易语言编写,逻辑为按照数字越大抽取率越前
我可以帮你设计一个基于易语言的抽奖程序,按照数字越大抽取率越高的逻辑。以下是一个完整的实现方案:
150套易语言教学课程:https://download.csdn.net/download/dhyuan_88/91250330
如果不会易语言,可先学点基础【免费赠品】
价值150易语言视频光盘:https://url09.ctfile.com/d/8588709-64033825-a9faa0?p=vbjcw
.版本 2.程序集 窗口程序集_启动窗口 .程序集变量 概率数组, 整数型, , "0" .程序集变量 奖品数组, 文本型, , "0".子程序 __启动窗口_创建完毕' 初始化奖品和对应的概率值(数字越大中奖率越高) 奖品数组 = { “一等奖”, “二等奖”, “三等奖”, “参与奖” } 概率数组 = { 10, 30, 50, 100 } ' 注意:数字越大中奖率越高' 显示初始化信息 编辑框1.加入文本 (“抽奖系统已初始化” + #换行符) 编辑框1.加入文本 (“奖品设置:” + #换行符) .计次循环首 (取数组成员数 (奖品数组), i)编辑框1.加入文本 (奖品数组 [i] + “: 概率值 ” + 到文本 (概率数组 [i]) + #换行符) .计次循环尾 () 编辑框1.加入文本 (“----------------” + #换行符).子程序 _按钮_开始抽奖_被单击 .局部变量 中奖索引, 整数型 .局部变量 随机数, 整数型' 生成随机数并抽奖 随机数 = 取随机数 (1, 取概率最大值 ()) 中奖索引 = 计算中奖项 (随机数)' 显示结果 编辑框1.加入文本 (“随机数: ” + 到文本 (随机数) + “ → 中奖: ” + 奖品数组 [中奖索引] + #换行符).子程序 取概率最大值, 整数型 .局部变量 最大值, 整数型 .局部变量 i, 整数型最大值 = 0 .计次循环首 (取数组成员数 (概率数组), i)最大值 = 最大值 + 概率数组 [i] .计次循环尾 ()返回 (最大值).子程序 计算中奖项, 整数型 .参数 随机值, 整数型 .局部变量 累计概率, 整数型 .局部变量 i, 整数型累计概率 = 0 .计次循环首 (取数组成员数 (概率数组), i)累计概率 = 累计概率 + 概率数组 [i].如果真 (随机值 ≤ 累计概率)返回 (i).如果真结束 .计次循环尾 ()返回 (取数组成员数 (概率数组)) ' 默认返回最后一个.子程序 _按钮_重置_被单击 编辑框1.内容 = “” __启动窗口_创建完毕 ().子程序 _按钮_测试统计_被单击 .局部变量 测试次数, 整数型 .局部变量 i, 整数型 .局部变量 中奖统计, 整数型, , "0" .局部变量 中奖索引, 整数型测试次数 = 到整数 (编辑框_测试次数.内容) .如果真 (测试次数 ≤ 0)测试次数 = 1000 .如果真结束重定义数组 (中奖统计, 假, 取数组成员数 (奖品数组)).计次循环首 (测试次数, i)中奖索引 = 计算中奖项 (取随机数 (1, 取概率最大值 ()))中奖统计 [中奖索引] = 中奖统计 [中奖索引] + 1 .计次循环尾 ()编辑框1.加入文本 (“测试结果(” + 到文本 (测试次数) + “次):” + #换行符) .计次循环首 (取数组成员数 (奖品数组), i)编辑框1.加入文本 (奖品数组 [i] + “: ” + 到文本 (中奖统计 [i]) + “次 (” + 到文本 (中奖统计 [i] × 100 ÷ 测试次数) + “%)” + #换行符) .计次循环尾 () 编辑框1.加入文本 (“----------------” + #换行符)
还需要在窗体上添加以下组件:
-
1个编辑框(EditBox)用于显示信息
-
1个按钮(Button)命名为"按钮_开始抽奖"
-
1个按钮(Button)命名为"按钮_重置"
-
1个按钮(Button)命名为"按钮_测试统计"
-
1个编辑框(EditBox)命名为"编辑框_测试次数"用于输入测试次数
程序逻辑说明:
-
概率计算原理:使用区间划分法,每个奖品对应一个概率区间
-
一等奖:1-10
-
二等奖:11-40 (10+30)
-
三等奖:41-90 (40+50)
-
参与奖:91-190 (90+100)
-
-
抽奖过程:
-
生成1到总概率值之间的随机数
-
判断随机数落在哪个区间就中哪个奖
-
数字越大的奖品,对应的区间范围越大,中奖概率越高
-
-
测试功能:可以模拟多次抽奖来验证概率分布是否符合预期
你可以根据需要调整 概率数组
中的数值来改变各个奖品的中奖概率,数值越大中奖率越高。
150套易语言教学课程:https://download.csdn.net/download/dhyuan_88/91250330
利用易语言编写,逻辑为按照数字越大抽取率越前