SDUTACM 2020-01-18
背景需求:
公司开发了一个抽奖系统,大概功能是可以设置抽奖号码,然后设置抽奖的等级及数量,再从设置的号码中抽取。
由于是抽奖系统,需要评估一下数字中奖的概率。我对这个系统进行了以下处理
1.编写初始化抽选号码,即根据初始化接口清空已有号码数据
2.根据设置号码池
3.根据抽奖接口返回数据取出中奖号码
4.将数据写入yaml文件
5.设置100次循环抽奖
6.对yaml文件进行处理,读取数据
7.按照条件取出数据
8.取出文件中出现频率最高的数字
最后结果为
附yaml文件读取代码
import yaml # 读取yaml文件数据 f = open(‘test.yaml‘) data = yaml.load(f, Loader=yaml.FullLoader) print(data) # 获取出现频次最高数字 def max_list(lt): global max_str temp = 0 for i in lt: if lt.count(i) > temp: max_str = i temp = lt.count(i) return max_str, temp # 统计每个数字出现的频次 dict = {} keys_1 = [] keys_2 = [] for key in data: if 0 < int(key) <= 10: keys_1.append(key) dict[key] = dict.get(key, 0) + 1 elif 10 < int(key) < 50: keys_2.append(key) dict[key] = dict.get(key, 0) + 1 print(dict) print(‘0-10出现次数为{},数字为:{}‘.format(len(keys_1), keys_1)) print(‘10-50出现次数为{},数字为:{}‘.format(len(keys_2), keys_2)) print(‘出现最多次数的为‘, max_list(data))