从唯一的素数制作数组?

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