Python 随机选择思想

Python 随机选择思想,python,random,Python,Random,我正在考虑做一次或多次介绍性讲座,向系里的人介绍Python和相关的科学工具,就像我去年夏天做的一样 为了使会议更加有趣并吸引更多的注意力,我通过以下方式向一位幸运的观众提供了两份Python学习材料: 1-)获取姓名并分配一个数字,然后从分配的字典中选择第一个作为获胜者 import random lucky = {1:'Lucky1',...} random.choice(lucky.keys()) 2-)与前一个相似,但从字典中弹出项目,因此最后一个成为最幸运的 import rand

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

为了使会议更加有趣并吸引更多的注意力,我通过以下方式向一位幸运的观众提供了两份Python学习材料:

1-)获取姓名并分配一个数字,然后从分配的字典中选择第一个作为获胜者

import random 
lucky = {1:'Lucky1',...}
random.choice(lucky.keys())
2-)与前一个相似,但从字典中弹出项目,因此最后一个成为最幸运的

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

现在,我正在寻找至少一个具有内在随机性的想法,并展示一个有用的语言功能,帮助我在其中一节课结束时进行更有趣的抽奖活动。

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

#!/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)

计算Pi总是很有趣;-)

随机导入
def约为π(n):
#n个随机(x,y)对(作为生成器)
数据=((random.random(),random.random())表示范围(n)内的uu)
返回4.0*sum(如果x**2+y**2<1,则数据中的x为1,y为y)/n
打印约10万张

对于中等规模人群来说,随机数最有趣的用途之一就是寻找周期。我将描述物理方法,然后是一些探索。Python代码相当简单

首先,你的团队大约有100人,他们的名字写在碗里的纸片上。每个人都下到碗上,随意拿一张纸。每个人都会去找那个名字的人。这会导致不同大小的群体聚集在一起。并不总是人们所期望的

例如,如果Alice选择Bob,Bob选择Charlie,Charlie选择Alice,那么这三个人最终将成为他们自己的群体。对于一些团体,让人们手牵手比赛,看到每个人都被这样那样地拉着。还可以查看匹配项如何创建链或束

现在编写软件来观察束数。在团块上进行匹配,例如,询问“最大的团块比一半的人少多少次?”?例如,对于N名学生,平均有1/N的学生会画出自己的名字


你需要代码吗?

Smart:)我可以让人们从真正的卡片组中挑选一张卡片,比较他们手中的卡片和使用你的脚本得到的结果。要么第一场比赛赢了,要么把名字弹出,直到把牌喝光。我怎么能把这个想法用在彩票中呢?我猜要实现你的想法,需要编写一个相对较长的代码。你能解释一下我如何用这种方法挑选幸运的人吗?我不大明白你的解释。谢谢。每个人都把自己的名字放在碗里。每个人从碗里取一个名字。每个人都会手拉手,手上的名字写在取款单上。我需要留下第二条注释和一些代码。
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)