【问题标题】:sudoku obfuscated python -> perl translation数独混淆 python -> perl 翻译
【发布时间】:2010-10-31 09:38:24
【问题描述】:

有人愿意把它翻译成混淆的 perl 吗?它是用 Python 编写的,取自:here

def r(a):i=a.find('0');~i or exit(a);[m
in[(i-j)%9*(i/9^j/9)*(i/27^j/27|i%9/3^j%9/3)or a[j]for
j in range(81)]or r(a[:i]+m+a[i+1:])for m in'%d'%5**18]
from sys import*;r(argv[1])

我知道这只是为了好玩:)

【问题讨论】:

  • 对我来说看起来很模糊!
  • 被混淆的代码是浪费的代码。这只是为了好玩,不值得翻译成其他语言。
  • “混淆 Perl”是多余的!
  • @Mike Daniels:如果这就是你的感受,那么你的 cmets 在任何标记为 perl 的东西上可能都不会很有帮助;也许你可以避免阅读 perl 问题。
  • @ysth:我认为@Mike Daniels 是在重复一个常见的笑话。

标签: python perl translate


【解决方案1】:

已经有一些用 Obfuscated Perl 编写的数独求解器,你真的想要另一个(可能效率较低)吗?

如果不是……

  1. 去混淆处理。
  2. 用 Perl 重写。
  3. 混淆。

【讨论】:

    【解决方案2】:
    sub r{($a=shift)=~/0/g?my$i=pos:die$a;T:for$m(1..9){($i-$_)%9*(int($i/9)^int($_/9))*(int($i/27)^int($_/27)|int($i%9/3)^int($_%9/3))||$a=~/^.{$_}$m/&&next T,for 0..80;substr($a,$i,1)=$m;r($a)}}r@ARGV
    

    脑残翻译。更长,因为 Python 2 的 / 是整数除法,而 Perl 是浮点数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 2020-05-21
      • 2013-04-03
      • 1970-01-01
      相关资源
      最近更新 更多