python随机产生100000个数计算满足条件的比例

#encoding=utf-8
import random
lk=list()#初始化一个空的列表
for x in xrange(0,1000000):#产生1000000个数
    k=random.randint(100000,10000000)#这是这个数所在的范围
    lk.append(k)#把产生的数拼接到lk这个列表中去
k=random.sample(lk,100000)#从lk这个列表中取出100000个唯一的数
dinfo=dict()#初始化一个空的字典
for x in xrange(0,100000):#产生100000个数
    name="Green"+str(k[x])#特殊的字母加上他的编号
    year=random.randint(1990,2000)#给定一个年份
    if x%5==1:
        race="meng"
    else:
        race="han"
    if x%3==1:
        sex="f"
    else:
        sex="m"
    v=[name,year,race,sex]#将所有的信息放在value中
    dinfo.setdefault(k[x],v)#添加到字典中去
dk=dinfo.keys()#得到他的键值
t=dk[:10]+dk[99990:]#由于太多的话占用内存太多,所以只取了10个
c=0#初始化计数器
s=0#初始化计数器
for x in dk:
    if dinfo[x][1]==1995:#年龄满足在1995年
        c+=1#计数器加一
    #print dinfo[x]
        if dinfo[x][3]=="f":
            s+=1#满足年龄又满足是女性的计数器加一
print s * 1.0 / c
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值