下载 App

点灯解密,Python 解法

修改于2025/03/16714 浏览攻略
研究了一下点灯解密,发现严谨解法需要使用高斯消元等数学知识,过于麻烦。
退而求其次,找 AI 要了个 Python 代码。
def solve_lights(g):
    if not g:return []
    r,c=len(g),len(g[0])or 0
    ps=[(i,j)for i in range(r)for j in range(c)if g[i][j]]
    m=len(ps)
    if not m:return []
    a=[[int(x==i or y==j)for x,y in ps]+[1]for i,j in ps]
    k=0
    for d in range(m):
        p=next((z for z in range(k,m)if a[z][d]),None)
        if p==None:continue
        a[k],a[p]=a[p],a[k]
        for i in range(m):
            if i!=k and a[i][d]:a[i]=[x^y if j>=d else x for j,(x,y)in enumerate(zip(a[i],a[k]))]
        k+=1
    if any(l[-1]for l in a[k:]):return None
    s=[0]*m
    for i in range(k-1,-1,-1):
        c=next((j for j in range(m)if a[i][j]),-1)
        if c<0:continue
        s[c]^=a[i][-1]^sum(s[j]*a[i][j]for j in range(c,m))
    return[(x+1,y+1)for i in range(m)if s[i]for x,y in [ps[i]]]
       
# 示例用法
if __name__ == "__main__":
    # 测试案例
    grid = [
        [1, 1, 0, 1, 0],
        [0, 1, 0, 1, 0],
        [0, 0, 0, 0, 1],
        [1, 0, 0, 1, 0],
        [0, 1, 1, 0, 0]
    ]
   
    result = solve_lights(grid)
    print(f"需要操作的灯位坐标(1-based):{result}") if result else print("无解")
   
   
猜你想搜
魔塔地牢c 灯谜攻略
新手第一次通关角色推荐:幻想召唤师截图
新手第一次通关角色推荐:幻想召唤师
因为看站内攻略很多都是拿了这个就无敌了,拿了那个就乱杀了,细节方面只字不提 ,非常难受,所以就自己来做一个新手攻略。 首先游戏左上角(具体不让说),有兑换码,可以换一些灵魂、地牢碎片、装备。 然后去游戏右上角有商人可以买属性,商人旁边的绿色水晶可以兑换兑换码,用兑换码获得的装备技能需要每次进副本时都要点一次“一键兑换已领取内容”才能使用 随后用地牢碎片解锁幻想召唤师 进游戏后会提示是否变身,这个变
40 赞
4 回复
不充钱怎么过无尽1000截图
不充钱怎么过无尽1000
其实平民能打无尽的就两个角色,一个占卜师,一个狐妖 前期用狐妖积累灵魂,有足够自选的可以用占卜师打1000层 占卜师建议卡牌恶魔(必选),塔,审判,正义,(第一个可以解锁自选),
9 赞
2 回复
【魔法师】无尽思路截图
【魔法师】无尽思路
一、理论基础 魔法师的缺陷在于[法力穿透]特性会让敌人的防御变为0,导致破防失效,传统的破防流无尽思路行不通。 魔法师的优势在于[闪电冲击]主动技能,开局麻痹敌人5回合。也就是自己可以先行动6回合。如果有100连击,就可以先行动12回合。晶核的[君命已决]可以造成回合百分比生命的伤害,虽然可以被防御,但魔法师的特性让敌人没有防御[表情_斜眼笑]。[君命已决]只需要升9级,就可以每回合造成实打实的9
9 赞
2 回复
无尽爬塔爬累了?来个点灯题放松一下吧(截图
无尽爬塔爬累了?来个点灯题放松一下吧(
本题有两解哦,答案见评论区。 #魔塔地牢c占卜师与塔罗牌
8 回复
无尽怪物技能/变异截图
无尽怪物技能/变异
[表情_菜]快速打击+ 先普攻x次,此后x回合不攻击 x=[无尽层数/100+1] 无尽尾数为9层的怪物专属技能 该技能能被“无视技能”效果无视,且能与“无技能”同时出现,分类不明 [表情_菜]【变异】猛攻 攻击增加0.5倍对方攻击值,防御减少0.5倍对方防御值 可能会导致产生负数属性,某些吸取属性的技能吸取这些怪会使自己的属性也变成负数 [表情_菜]【变异】恢复 受到普攻时,回复3%最大生命 玩
7 赞
14 回复
点灯解密,缺口技巧篇截图
点灯解密,缺口技巧篇
点灯的真理,我已解明! 中的技巧在灯的数量较少时非常好用,但在灯的数量变多后就没那么好用了。而本篇特别关注在灯的数量非常多的情况。在灯的数量很多时,那些没有灯的位置反而更加值得关注,本篇称其为“缺口”。由于游戏中满灯为6×6,本篇技巧也仅针对6×6,理论上4×4或其它偶数行列也适用。 〇、图例 灰色无字方块:缺口 红色方块:操作点 黑色方块:不操作点,实际也是无关灯,将其替换为缺口,不影响解 一、
8 赞
2 回复
【名词详解】破防截图
【名词详解】破防
[表情_菜]破防 也称“破防率”,直接参与普攻伤害的计算。 普攻伤害=[[攻击值-敌人防御值×(1-实际破防率)]×增/减伤处理],中括号表示向下取整 当 攻击值<敌人防御值 时,由于破防的存在依然可能造成普攻伤害。 当 攻击值很小,例如被魔王压制 时,若破防≤100,则增伤再大,普攻伤害也为0;反之若破防>100,则配合增伤可以造成可观普攻伤害。 当 破防率>100 时: 实际破防率=100+(
7 赞
2 回复
【名词详解】普攻伤害、增伤、减伤截图
【名词详解】普攻伤害、增伤、减伤
[表情_菜]普攻伤害: 普攻伤害=[[攻击值-敌人防御值×(1-实际破防率)]×(1+增伤)×敌人等效减伤系数×敌人额外减伤系数],中括号表示向下取整 当 敌人剩余魔防<普攻伤害 时: 造成敌人生命减少=普攻伤害-敌人剩余魔防,同时敌人剩余魔防归 0。 当 敌人剩余魔防≥普攻伤害 时: 造成敌人生命减少=0,同时 敌人剩余魔防 -普攻伤害。 有时候还会有护盾等,可以认为是额外魔防。 在一般情况下,
4 赞
【技能】灼烧、点燃、火焰强效截图
【技能】灼烧、点燃、火焰强效
灼烧:描述是“每次攻击造成额外15%火焰伤害”。经过测试,该伤害无法击破[坚固]效果(理论上应该是附加伤害,对[坚固]有用来着[表情_汗])。 效果是额外造成普攻伤害×15%的伤害。普通增伤和[双刀]特殊增伤会在计算普攻伤害时生效一次,不会对灼烧伤害二次生效。灼烧伤害可以被[火焰强效]增加。 最高升阶2次,变为25/35%。 点燃:每回合对敌人造成2%最大生命值的火焰伤害。可以击破[坚固]效果,但
6 赞
6 回复
【朱雀神女】7.3 新角色简评截图
【朱雀神女】7.3 新角色简评
[表情_菜]简评 数值优秀,机制优秀,强度优秀。前期略难,最速毕业。有效连击率最高可到300。[天地随心]技能可全场瞬移,无需耗蓝,被封印也可用。唯一弱点是坚固怪。 [表情_菜]技能 [冰灵蚀心] 初始专属。使[寒冷]不减伤。获得等同连击的增伤和破防。包括[玉骨冰心]提供的额外连击。也就是说1000寒冷值就可以达到百破防了。 [空灵剑心] 初始专属。先攻1次,被击反击。每回合损血寒冷值,前期比较伤
16 赞
10 回复