随机选择思想

2024-09-30 20:21:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在考虑做一个或多个介绍性讲座,向我系的人介绍Python和相关的科学工具,就像去年夏天我做过的一样。在

为了让会议更有趣,吸引更多的注意力,我给其中一位幸运的听众提供了两份Python学习资料:

1-)从指定的字典中找出名字并分配一个数字,然后从指定的字典中选出第一个作为获胜者。在

import random 
lucky = {1:'Lucky1',...}
random.choice(lucky.keys())

2-)与前一个相似,但从字典中弹出条目,因此最后一个成为最幸运的。在

^{pr2}$

现在,我正在寻找至少一个新的想法,它将具有内在的随机性,并展示一个有用的语言功能,帮助我在一个疗程结束时获得一个更有趣的抽奖时间。在


Tags: 工具import字典数字random科学会议名字
3条回答

对于中等规模人群来说,随机数最可爱的用途之一就是寻找循环。我将介绍物理方法,然后进行一些探索。Python代码相当简单。在

从你的一组大约100人开始,把他们的名字写在碗里的纸上。每个人都趴在碗上,随便拿一张纸。每个人都去找那个名字的人。这会导致不同大小的群体聚集在一起。不总是人们期望的那样。在

例如,如果爱丽丝选鲍勃,鲍勃选查理,查理选艾丽丝,那么这三个人最终会成为他们自己的一团。对一些团体来说,让人们手牵手他们的火柴,看每个人都被拉到这样那样的地方。还可以查看匹配项如何创建链或簇。在

现在编写软件来观察团块的数量。在一群人身上做匹配,例如,问“最大的一团人多久不到一半人”?例如,对于N个学生,平均1/N会画出自己的名字。在

你需要密码吗?在

计算圆周率总是很有趣的;-)

import random

def approx_pi( n ):
    # n random (x,y) pairs (as a generator)
    data = ( (random.random(),random.random()) for _ in range(n) )
    return 4.0*sum( 1 for x,y in data if x**2 + y**2 < 1 )/n

print approx_pi(100000)

卡片也是流行(和熟悉!)机会游戏。 也许你可以展示一下生成、洗牌和样本卡是多么容易:

#!/usr/bin/env python
import random
import itertools

numname={1:'Ace',11:'Jack',12:'Queen',13:'King'}
suits=['Clubs','Diamonds','Hearts','Spades']
numbers=range(1,14)
cards=['%s-%s'%(numname.get(number,number),suit)
       for number,suit in itertools.product(numbers,suits)]
print(cards)
random.shuffle(cards)
print(cards)
hand=random.sample(cards,5)
print(hand)

相关问题 更多 >