Python 板


LINE

问题: 昨天使用chatgpt请它协助我下面叙述: 八支队伍A,B,C,D,E,F,G,任两队比赛一场,比赛结果只有三种:胜、败、和,规则是胜 利者积分得2分,败者积分得0分,平手两队各积分得1分。 请利用pyhton帮我模拟出上述问题,遍历所有对战统计情形, 若满足队伍A总积分值至少赢过4个队伍的总积分值时,A队伍与其他队伍的胜、败、和之 数量,然後取全部比完後满足条件的最小A总积分值 --- 它回复:请问您希望考虑到所有可能的对战结果吗? 这样的模拟可能需要考虑到非常庞大的组合数量,因此执行时间可能会很长。 如果您愿意等待,我们可以进行完整的模拟,但请注意执行时间可能会很久。 或者,如果您有特定的条件或限制,我们可以根据那些条件进行模拟,以加快 计算速度。请让我知道您的选择。 --- 我加上一些叙述: 限制为:比完C(8,2)=28场後,满足队伍A总积分值至少赢过4个队伍的总积分值时,A队伍 的所有可能积分 --- 它回复: from itertools import combinations teams = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] # 队伍名称 total_games = 28 # 总比赛场次 min_a_score = float('inf') # A队的最小积分值,初始设定为正无穷大 def calculate_scores(results): scores = {team: 0 for team in teams} # 初始化队伍得分 for (team1, team2), result in results.items(): if result == 'win': scores[team1] += 2 scores[team2] += 0 elif result == 'loss': scores[team1] += 0 scores[team2] += 2 else: # tie scores[team1] += 1 scores[team2] += 1 return scores # 遍历所有可能的对战结果 results = {} for teams_comb in combinations(teams, 2): for result in ['win', 'loss', 'tie']: results[teams_comb] = result # 计算每种对战结果的积分情况 scores = calculate_scores(results) # 检查是否满足条件 sorted_scores = sorted(scores.items(), key=lambda x: x[1], reverse=True) a_winning_teams = [team for team, score in sorted_scores[:4]] # A赢过的队伍 if 'A' in a_winning_teams: if len(a_winning_teams) == 4 and scores['A'] < min_a_score: min_a_score = scores['A'] print(f"A队在至少赢过4个队伍的情况下的最小积分值为:{min_a_score}") 但这跑出来根本不行,後来想想会不会是所有结果总共有3^28太大 (不过不是才大约14位数,没道理电脑无法处理10^99次方问题) 它code内 results[teams_comb] = result 这样写怪怪的吧,没有办法记录到 谁胜、负还是和 想问看看有没有高手能给我修程式的方向,另外这种问题是不是用套件itertool比较省 事?(套件应该也是基於一些演算法论文等做出来的,时间效率应该不差吧?!) --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.27.210.24 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1689412472.A.02E.html
1F:→ lycantrope: 垃圾进垃圾出 07/15 17:57
2F:→ ddavid: 你为什麽会期待 ChatGPT 在一次 prompt 就一定给你正确程 07/16 01:11
3F:→ ddavid: 式?熟练使用的工程师都知道本来就要检查它出来的逻辑然後 07/16 01:12
4F:→ ddavid: 看要手动修正或对它提出勘误建议让它修正啊XD 07/16 01:12
5F:→ ddavid: 它的优点就是很快帮你把看起来可行的框架写出来了,剩下细 07/16 01:13
6F:→ ddavid: 节如果你都看出问题在哪了,修正很快吧 07/16 01:13
7F:→ aalexx: 有点想吐槽一下3^28 07/16 15:49
8F:嘘 aalexx: 10^99又是哪里来的神秘数字?按部就班学吧 07/16 15:57
9F:→ wuyiulin: results[teams_comb] = result 看起来就很 hashTable, 07/17 01:56
10F:→ wuyiulin: 你先学怎麽写程式吧。 07/17 01:56
11F:推 ddavid: 我猜他不懂的是为什麽那样可以记录谁胜谁负,他没注意程 07/17 09:24
12F:→ ddavid: 式里就是纪录一个对战 Pair 中第一队的胜负,而记了一队 07/17 09:24
13F:→ ddavid: ,第二队的胜负当然也就知道了这个逻辑XD 07/17 09:24







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP