从唯一的素数制作数组?
Make arrays from unique prime number?
我在 Scott Aaronson 的 "Quantum Computing since Democritus" 书中看到了一段话。
就这样,
我初中的时候有一个朋友,数学很厉害,但是编程可能不太好。他想用数组写一个程序,但他不知道数组是什么。他做了什么?他将数组的每个元素与一个唯一的质数相关联,然后将它们相乘;然后,每当他想从数组中读取某些内容时,他都会对乘积进行因式分解。
这个笔者就不赘述了。我的问题是它究竟是如何工作的?
p.s。我不完全确定这应该在数学堆栈交换中还是在这里。
我不确定具体情况,但我认为这与 Fundamental Theorem of Arithmetic
有关
如果您从未听说过它,它表明 每个数字都是唯一的素数组合的乘积。
现在回到问题。假设您有一个如下所示的数组:
[ 5, 6, 1, 4, 7 ]
每个索引都会分配一个素数,有点像哈希 Table。
所以:5 会映射到一个素数,比方说 2,然后 6 会映射到另一个素数,比方说 3,等等。然后会发生的是这些素数相乘时会形成一个数仅由这些素数创建。这是随后对索引进行编码的数字。因此,当您 "factor the product" 它 returns 与您最初无差异相乘的相同值。
我应该提一下,这不是实用或明智的实施方式,因为它很愚蠢。但我希望这可以帮助您更好地理解问题
编辑: 是的,这可能属于 Math Stackexchange
我在 Scott Aaronson 的 "Quantum Computing since Democritus" 书中看到了一段话。 就这样,
我初中的时候有一个朋友,数学很厉害,但是编程可能不太好。他想用数组写一个程序,但他不知道数组是什么。他做了什么?他将数组的每个元素与一个唯一的质数相关联,然后将它们相乘;然后,每当他想从数组中读取某些内容时,他都会对乘积进行因式分解。
这个笔者就不赘述了。我的问题是它究竟是如何工作的?
p.s。我不完全确定这应该在数学堆栈交换中还是在这里。
我不确定具体情况,但我认为这与 Fundamental Theorem of Arithmetic
有关如果您从未听说过它,它表明 每个数字都是唯一的素数组合的乘积。
现在回到问题。假设您有一个如下所示的数组:
[ 5, 6, 1, 4, 7 ]
每个索引都会分配一个素数,有点像哈希 Table。
所以:5 会映射到一个素数,比方说 2,然后 6 会映射到另一个素数,比方说 3,等等。然后会发生的是这些素数相乘时会形成一个数仅由这些素数创建。这是随后对索引进行编码的数字。因此,当您 "factor the product" 它 returns 与您最初无差异相乘的相同值。
我应该提一下,这不是实用或明智的实施方式,因为它很愚蠢。但我希望这可以帮助您更好地理解问题
编辑: 是的,这可能属于 Math Stackexchange