2022年 11月 3日

Python中的随机数

产生一随机数:
1.导入random模板    import random
2.random.randint(a,b)         随机返回一个[a,b]之间的数

例1:小明玩接水果,接到苹果累计2分,接到香蕉累计5分,接到猕猴桃累计10分,
直到累计分数达到50分及以上时,游戏结束,提示“闯关成功”

  1. '''
  2. 小明玩接水果,接到苹果累计2分,接到香蕉累计5分,接到猕猴桃累计10分,
  3. 直到累计分数达到50分及以上时,游戏结束,提示“闯关成功”
  4. '''
  5. # 导入random模块
  6. import random
  7. b = True
  8. c = 0
  9. while b:
  10. if c <= 50:
  11. a = random.randint(1, 3)
  12. if a == 1:
  13. c += 2
  14. print('接到苹果,当前积分:%d' % c)
  15. elif a == 2:
  16. c += 5
  17. print('接到香蕉,当前积分:%d' % c)
  18. else:
  19. c += 10
  20. print('接到猕猴桃,当前积分:%d' % c)
  21. else:
  22. print('闯关成功')
  23. break

效果:

例2、从0到9中随机选择,生成1到10个随机数,组成集合A, 同理生成集合B,输出A和B以及它们的并集和交集

  1. '''
  2. 从0到9中随机选择,生成1到10个随机数,组成集合A,
  3. 同理生成集合B,输出A和B以及它们的并集和交集
  4. '''
  5. import random
  6. def rand():
  7. #定义空列表存储随机数
  8. a = []
  9. # 生成一个随机数,即确定要生成的集合的元素个数
  10. x = random.randint(1,10)
  11. for i in range(10):
  12. # 产生0-9之间的随机数
  13. y = random.randint(0,9)
  14. # 将生成的随机数添加到列表
  15. a.append(y)
  16. return set(a)
  17. A = rand()
  18. print(A)
  19. B = rand()
  20. print(B)
  21. print("--------------------")
  22. # 并集
  23. print(A | B)
  24. # 交集
  25. print(A & B)

效果:

例3:打印100~~200间的全部素数,输出格式为每行10个:

  1. # 打印100~~200间的全部素数,输出格式为每行10个:
  2. print(101,102,103,end=" ")
  3. for x in range(100,200):
  4. for n in range(2,x):
  5. if x%n ==0:
  6. break
  7. else:
  8. print(x,end=' ')
  9. else:
  10. print('over')

效果:

例4:编写程序,生成一个包含20个随机整数的列表, 然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。 (提示:使用切片。)

  1. '''
  2. 编写程序,生成一个包含20个随机整数的列表,
  3. 然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。
  4. (提示:使用切片。)
  5. '''
  6. import random
  7. x = [random.randint(0,100) for i in range(20)]
  8. print(x)
  9. y = x[::2]
  10. y.sort(reverse=True)
  11. x[::2] = y
  12. print(x)

效果:

例5:随机生成50个介于[1,20]之间的整数,然后统计每个整数出现频率。

  1. '''
  2. 5. 随机生成50个介于[1,20]之间的整数,然后统计每个整数出现频率。
  3. '''
  4. import random
  5. x = [random.randint(1,20) for i in range(50)]
  6. r = dict()
  7. for i in x:
  8. r[i] = r.get(i,0)+1
  9. for k,v in r.items():
  10. print(k,v)

 效果: