鱼C论坛

 找回密码
 立即注册
查看: 132|回复: 1

[作品展示] 模拟双色球摇奖,看看多少次能摇中你自选的号码。

[复制链接]
发表于 2025-3-31 15:51:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
突发奇想,就像看看自己买的双色球有没有中奖的命。拿去玩玩吧。

  1. import random

  2. def shuangseqiu():
  3.     # 从数字1-33中随机抽取6个号码,作为红球并将其按从小到大排序
  4.     redball_list = random.sample(range(1, 34), 6)
  5.     redball_list.sort()
  6.     # 从数字1-16中随机抽取1个号码,并将其作为蓝球
  7.     blueball = random.sample(range(1, 17), 1)
  8.     blueball_list =list(blueball)
  9.     # 将红球列表和蓝球返回
  10.     return redball_list, blueball_list

  11. def zixuannumber():
  12.     redballzixuan_list = []
  13.     for i in range(6):
  14.         redballzixuan_list.append(int(input(f"请输入第{i+1}个红球号码:")))
  15.     blueballzixuan = int(input("请输入蓝球号码:"))
  16.     blueballzixuan_list = [blueballzixuan]
  17.     return redballzixuan_list, blueballzixuan_list

  18. # 主程序
  19. print("欢迎来到双色球游戏!")
  20. print("请输入1开始自选双色球号码,2开始随机号码:")
  21. choice = int(input())
  22. if choice == 1:
  23.     print("自选号码:红球6个,篮球1个, 红球范围1-33,蓝球范围1-16,红球需按顺序填写")
  24.     zixuan_number = zixuannumber()
  25. elif choice == 2:
  26.     print("系统为你随机选择号码:红球6个,篮球1个")
  27.     zixuan_number = shuangseqiu()
  28. else:
  29.     print("输入错误,程序自动退出")
  30.     exit()
  31. print("本次你选择的双色球号码为:", zixuan_number)

  32. # 使用循环来模拟自选的1注双色球号码,将在多少次中中奖
  33. count = 0
  34. while True:
  35.     count += 1
  36.     shuangseqiu_number = shuangseqiu()
  37.     if shuangseqiu_number == zixuan_number:
  38.         print("你投注的双色球号码为:", zixuan_number)
  39.         print(f"在摇奖{count}次后中奖!中奖号码为:", shuangseqiu_number)
  40.         break
  41. #    else:
  42. #        print(f"在摇奖{count}次后未中奖,本次双色号码为:", shuangseqiu_number, "请继续摇...")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-3-31 15:52:43 | 显示全部楼层
问题分析与修复建议

你提供的双色球模拟程序整体思路是正确的,但在函数 zixuannumber() 中存在两个关键的语法错误,导致程序无法运行:

  • 变量 redballzixuan_listblueballzixuan_list 没有初始化;
  • 用户输入的红球号码没有排序,可能导致与系统生成的号码不一致。


修复后的完整代码如下:

  1. import random

  2. def shuangseqiu():
  3.     redball_list = random.sample(range(1, 34), 6)
  4.     redball_list.sort()
  5.     blueball = random.sample(range(1, 17), 1)
  6.     blueball_list = list(blueball)
  7.     return redball_list, blueball_list

  8. def zixuannumber():
  9.     redballzixuan_list = []
  10.     for i in range(6):
  11.         redballzixuan_list.append(int(input(f"请输入第{i+1}个红球号码:")))
  12.     redballzixuan_list.sort()
  13.     blueballzixuan = int(input("请输入蓝球号码:"))
  14.     blueballzixuan_list = [blueballzixuan]
  15.     return redballzixuan_list, blueballzixuan_list

  16. print("欢迎来到双色球游戏!")
  17. print("请输入1开始自选双色球号码,2开始随机号码:")
  18. choice = int(input())
  19. if choice == 1:
  20.     print("自选号码:红球6个,篮球1个, 红球范围1-33,蓝球范围1-16,红球需按顺序填写")
  21.     zixuan_number = zixuannumber()
  22. elif choice == 2:
  23.     print("系统为你随机选择号码:红球6个,篮球1个")
  24.     zixuan_number = shuangseqiu()
  25. else:
  26.     print("输入错误,程序自动退出")
  27.     exit()

  28. print("本次你选择的双色球号码为:", zixuan_number)

  29. count = 0
  30. while True:
  31.     count += 1
  32.     shuangseqiu_number = shuangseqiu()
  33.     if shuangseqiu_number == zixuan_number:
  34.         print("你投注的双色球号码为:", zixuan_number)
  35.         print(f"在摇奖{count}次后中奖!中奖号码为:", shuangseqiu_number)
  36.         break
复制代码


温馨提示:
  • 这个程序可能运行非常久,因为中奖概率极低(约为1/1770万);
  • 你可以设置一个最大循环次数,比如1000000次,避免程序无限运行;
  • 也可以加入每隔一定次数打印一次进度,方便观察。


如果你需要我帮你加上这些功能,也可以告诉我哦~

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-13 20:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表