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/cn.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灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP