您不需要成为数学家就可以掌握量子计算 - Frank Zickert


数学并不是我们唯一的精确语言。我们拥有与数学公式一样精确的语言:如今,这些语言对许多人来说几乎是自然的,这些语言就是编程语言。
我的意思不是特定编程语言的语法。相反,我指的是一种思维方式,几乎所有编程语言都共享。从Python到Java,从Javascript到Ruby,甚至从C到Cobol。所有这些语言都基于布尔逻辑。无论使用哪种编程语言,程序员都可以使用布尔逻辑进行大量工作。
最重要的是,布尔逻辑出现在条件语句中:if then else。

if x and y:# A statement to evaluate in boolean logic
    doSomething () # if the statement evaluiates to True
else:
    doSomethingElse () otherwise

Python:

P = True
Q = False

print('not P is {}'.format(not P))
print('P and Q is {}'.format(P and Q))
print('P or Q is {}'.format(P or Q))
print('P and not Q is {}'.format(P and not Q))

not P is False
P and Q is False
P or Q is True
P and not Q is True

虽然Python使用这些确切的关键字,但在数学中,符号表示这些运算符:

  • ¬表示 not
  • ∧表示 and
  • ∨表示 or

如果您不是数学家,那么这些符号以及您在量子机器学习过程中遇到的所有其他符号可能看起来是神秘的。但是,当用Python或数学描述概念时,概念的表示可能有所不同,但是概念本身是相同的。
您无需成为数学家即可了解布尔逻辑。实际上,您也不必成为程序员,因为我们甚至可以通过真值表来描述布尔逻辑。
这就是编程的全部意义。程序员编写会产生某种行为的函数。他们使用并结合了这些功能,以创建更多甚至表现出复杂行为的功能。他们编写的整个程序归结为一系列巧妙组合的功能。程序员使用他们的编译器(或解释器)将高层功能转换为非常基本的布尔逻辑。而且这种基本的布尔逻辑可以使用电气开关来执行。开关及其组合称为门。当我们连接门时,它们形成一个电路。
计算机以不连续的时间间隔通过电路发送电脉冲。如果在适当的时间收到电脉冲,则将其解释为1(true)。如果未收到脉冲,则将其解释为0(false)。
尽管有名称,但关于电路没有任何通告。它们是线性的,从左到右读取。让我们看一个与我们之前看过的布尔函数相对应的例子
.....
详细点击标题见原文