Python 板


LINE

請教各位先進, 給你一個 list, 裡面有六個 sub-list, 每個 sub-list 裡面有六個數字(範圍從1-9) list 每次隨機生成 舉例: [ [ 3, 4, 9, 2, 4, 6], [ 4, 4, 4, 9, 3, 2], [ 1, 4, 9, 8, 3, 7], [ 6, 4, 2, 1, 3, 8], [ 5, 6, 1, 9, 2, 4], [ 8, 8, 8, 8, 8, 8] ] 目標是計算出連線數, 橫排有3個或以上相同數字的話連線數+1 直排有3個或以上相同數字的話連線數+1 以例子來算的話,連線數是4條 (直的、橫的分開算) 我的想法是先 loop 過 sub-list, 再 loop 過每個數字 可是這樣橫排好解,直排要怎麼計算呢? ps.我在工作了,這真的不是學校作業~謝謝! --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 116.87.43.238
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1460655494.A.F87.html ※ 編輯: content71 (116.87.43.238), 04/15/2016 01:38:55
1F:推 tiefblau: loop過index 這我看跟大一作業有九成像 拜託不要跟我說 04/15 02:25
tiefblau: 你是以寫程式為職業...... 04/15 02:25 我是轉行的網頁工程師,其實平常沒用到什麼邏輯運算, 如果問題蠢了些不好意思~ 這題是一個線上的練習題
2F:→ bigpigbigpig: 直排:https://ideone.com/RRI6xf 04/15 06:52
3F:推 Yshuan: 最簡單就是enumerate抓index吧 直排跟橫排就內外顛倒 04/15 10:06
所以解題的重點是transpose matrix?
4F:→ yeh6: 這樣就可以了吧 http://imgur.com/G3JbTgx 04/15 15:25
目的是3個或以上相同數字的話連線數+1 這樣算的話如果有一排6個相同數字,連線數會+4
5F:→ yjc1: x=np.array(L) 04/16 09:46
6F:→ yjc1: print (sum(sum(v>=3 for v in Counter(p).values()) 04/16 09:47
7F:→ yjc1: for p in chain(x,x.T))) 04/16 09:48
這個厲害...不過試跑了一下 這code是計算一排同樣數字有三個以上 而不是"連續"的三個以上 也就是一排如果是 4, 4, 2, 3, 4, 4 也會被算成賓果 回報一下結果,利用transpose matrix解出來的答案 http://imgur.com/Kk9PedF 但程式有點亢長
8F:→ bigpigbigpig: 你可以用 itertools 模組的 groupby() :) 04/17 21:10
groupby()的功能我了解,但要怎麼應用在這呢?
9F:→ bigpigbigpig: if any(len(list(g)) >= 3 for k,g in groupby( 04/17 23:04
10F:→ bigpigbigpig: bingo_line )) 04/17 23:04
11F:→ yjc1: sum(any(len(list(g))>=3 for k, g in groupby(v)) 04/17 23:28
12F:→ yjc1: for p in (x,x.T) for v in p) 04/17 23:28
感謝回覆 試跑了一下 無法處理一排裡有兩個賓果的狀況 例如 [8,8,8,3,7,7,7,2,1] 跑出來只會有一個賓果 補充一下,題目還滿機的,隨機給的矩陣大小不是固定6x6
13F:→ yjc1: 把 any 改成 sum 04/18 17:40
改成sum之後就沒有問題了:) 太威了請受我一拜
14F:推 jenny2921: return cal_cnt(arrs) + cal_cnt( zip(*arrs) ) 04/20 00:59
15F:→ jenny2921: from collections import Counter 04/20 01:07
16F:→ jenny2921: def cal_cnt(arrs): 04/20 01:07
17F:→ jenny2921: t=0 04/20 01:15
18F:→ jenny2921: for arr in arrs: 04/20 01:15
19F:→ jenny2921: t+=sum(map( lambda x:x>=3, Counter(arr).values() )) 04/20 01:15
20F:→ jenny2921: 原諒我推文推不出indent XD 04/20 01:16
21F:→ jenny2921: 喔喔 現在才看到上面有人用Counter了~原來要連續啊 04/20 01:18
感謝回覆 其實想像他是寶石方塊的遊戲,三個或以上相連就可以消掉 我猜是題目的本意 ※ 編輯: content71 (116.87.43.238), 04/21/2016 04:15:29







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

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP