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/m.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燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP