首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >第一个Python程序,“乐透预测”

第一个Python程序,“乐透预测”
EN

Stack Overflow用户
提问于 2014-06-23 02:37:22
回答 1查看 9.8K关注 0票数 0

我对python很陌生,并试图通过乱搞来快速地学习它。所以我决定做一个乐透节目。它的选择3,数字0-9,选择三个数字从0-0-0到9-9-9。我想将过去调用的所有数字添加到变量或元组中。在打印结果之前,将检查此变量或元组。这就是我到目前为止得到的。

代码语言:javascript
复制
    import random
    items = range (10)
    random.sample([items]), 3
    [4, 0, 2]    # result

如何根据大多数调用来设置一个变量,其中包含过去抽签和打印结果的结果?

任何帮助都将不胜感激。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-23 02:57:56

得到5个单位数

代码语言:javascript
复制
import random

items = range(10)

results = []

while len(results) < 5:
    number = random.sample(items, 3)
    if number not in results:
        results.append(number)

print results

[[2, 6, 3], [8, 0, 4], [0, 3, 4], [7, 8, 6], [2, 6, 9]]

得到1000个不统一的数字,得到3个最常见的结果

代码语言:javascript
复制
import random
import collections

items = range(10)

results = collections.Counter()

for __ in range(1000):
    number = random.sample(items, 3)
    results.update([tuple(number)])

print results.most_common(3)

[((2, 0, 6), 6), ((5, 4, 9), 6), ((1, 0, 3), 5)]

我得到了:

(2,0,6) -6次,

(5,4,9) -6次,

(1,0,3) -5次,

编辑:

使用数字000111222,并按绘制数进行分组。

代码语言:javascript
复制
import random
import collections

results = collections.Counter()

for __ in range(50):
    digit1 = random.randint(0,9)
    digit2 = random.randint(0,9)
    digit3 = random.randint(0,9)
#    results.update([(digit1,digit2,digit3)])
    results.update([ '%d%d%d' % (digit1,digit2,digit3) ])

#print results

print
print '3 most common numbers:', results.most_common(3)

print
print '3 most common numbers:'
for x in results.most_common(3):
    print '%s - %d times' % x

grouped_results = {}

for number, times in results.items():
    if times not in grouped_results:
        grouped_results[times] = []
    grouped_results[times].append(number)

print
print 'grouped results:', grouped_results


for times, numbers in grouped_results.items():
    print
    print 'drawn %d time(s):' % times
    print numbers

结果:

代码语言:javascript
复制
3 most common numbers: [('152', 2), ('799', 2), ('088', 2)]

3 most common numbers:
152 - 2 times
799 - 2 times
088 - 2 times

grouped results: {1: ['458', '603', '335', '660', '012', '750', '396', '177', '176', '399', '497', '231', '254', '641', '694', '956', '322', '938', '918', '917', '586', '587', '584', '140', '069', '082', '299', '779', '617', '462', '025', '267', '169', '226', '084', '840', '909', '537', '929', '350', '824', '513'], 2: ['152', '799', '088', '261']}

drawn 1 time(s):
['458', '603', '335', '660', '012', '750', '396', '177', '176', '399', '497', '231', '254', '641', '694', '956', '322', '938', '918', '917', '586', '587', '584', '140', '069', '082', '299', '779', '617', '462', '025', '267', '169', '226', '084', '840', '909', '537', '929', '350', '824', '513']

drawn 2 time(s):
['152', '799', '088', '261']
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24357742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档