【问题标题】:What's The Mapping Reduction Function什么是映射缩减功能
【发布时间】:2016-09-22 12:09:25
【问题描述】:

这是(我认为)复杂性理论中的简单问题。

#Consider the language E over the binary alphabet
#consisting of strings representing even non-negative
#integers (with leading zeros allowed).  
#I.e. E = {x | x[-1] == '0'}.
#
#Reduce E to the language {'Even'} by implementing
#the function R
def R(x):
    #Code


def main():
    #test cases
    assert(R('10010') in ['Even'])
    assert(R('110011') not in ['Even'])

if __name__ == '__main__':
    main()

根据映射缩减 def:
“语言 A 是可还原到语言 B 的映射,写作 A ≤ mB, 如果有一个可计算函数 f : Σ ∗ −→Σ ∗ ,其中对于每个 w, w ∈ A ⇐⇒ f (w) ∈ B。 函数 f 称为从 A 到 B 的约简。”
可计算的映射函数是 f(n) = 2n(或 Python 中的 x

【问题讨论】:

  • 这是(我认为)家庭作业中的简单问题。

标签: python complexity-theory turing-machines


【解决方案1】:

所以基本上你有E 作为整数的二进制表示,只有偶数。这由最后一个数字(整数 1)0 表示。所有其他数字都表示 2 的倍数,因此无关紧要。

目标“语言”只包含字符串"Even"。也就是说,每个偶数都必须映射到单词"Even"

所以赋值实际上是:如果x代表一个偶数二进制数,则返回"Even",否则返回别的东西。

最直接的方法是检查偶二进制数的定义:

def R(x):  # shortest/fastest option
    return 'Even' if x[-1] == 0 else ''

def Rdocs(x):
    """
    Map any of {x | x[-1] == '0'} to {'Even'}

    Uses the definition {x | x[-1] == '0'}
    """
    if x[-1] == '0':  # check that x satisfies definition of even binary
        return 'Even'
    return ''

也可以通过显式映射来做到这一点:

translate = {'0': 'Even', '1': ''}
def Rmap(x, default=''):
    """
    Map any of {x | x[-1] == '0'} to {'Even'}

    Uses a literal mapping of x[-1]
    """
    return translate[x[-1]]

或者,您可以将二进制转换为数字。 Python 的 int 类型也采用二进制文字:

def Rbin(x):
    """
    Map any of {x | x[-1] == '0'} to {'Even'}

    Uses python builtin to evaluate binary
    """
    return '' if int(x, 2) % 2 else 'Even'

我想从技术上讲,R(x) 应该{x | x[-1] == '0'} 中的每个x 定义,除非您假设空词隐含在每种语言中。但是,您的单元测试表明它必须返回一些东西。您可能希望返回 'Odd'None 而不是空字。

【讨论】:

  • 谢谢,我接受这一点,我需要稍微改变一下我的心态这样做,是的 - 它来自家庭作业;)
  • @T.Madry 很高兴能提供帮助。我也不得不做一些挖掘来理解你的任务,但它主要归结为“将胡言乱语翻译成人类语言”。与 SO 上通常的作业问题相比,这是一个令人耳目一新的变化。 ;)
猜你喜欢
  • 2014-06-17
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 2016-05-24
  • 2017-10-13
相关资源
最近更新 更多