Quand on voyage dans le monde de la fée bizarre, comment utiliser les connaissances de la cryptographie pour faire la distinction entre fantasme et réalité ?

"The Strange Fairy" est un roman en ligne populaire.

Parmi eux, l'intrigue raconte que le héros Li Huowang voyage dans un monde étrange, mais sa conscience reviendra de temps en temps à la société moderne d'origine. Les deux mondes se croisent de temps en temps, et le protagoniste masculin est pris dans le chaos, se demandant toujours quel monde est réel, et développe ainsi une histoire merveilleuse.

Alors, en tant que programmeur, s'il est confronté à une telle situation, existe-t-il un moyen d'utiliser les connaissances professionnelles pour distinguer si le monde est réel ?

En fait, quel que soit le type de monde différent, les mathématiques sont toujours les mêmes. Nous pouvons utiliser les principes mathématiques de la cryptographie pour vérifier si un monde est le monde réel.

Dans l'intrigue, le héros Li Huowang a toujours soupçonné que le "monde moderne" dans lequel il vit est une illusion. Alors, on peut facilement penser que les illusions ne peuvent pas simuler la puissance de calcul. Tant que l'on construit un problème mathématique qui nécessite une certaine quantité de la puissance de calcul, nous la remettrons au "monde moderne" Yang Na, l'héroïne de "The World", peut aller à l'ordinateur pour le calcul.

Cependant, étant donné que le "monde étrange" du livre n'a pas de pouvoirs magiques sur les calculs et que son niveau de développement mathématique est également limité, les problèmes que nous avons construits devraient être difficiles à calculer, mais faciles à tester. Un tel problème est très similaire aux mathématiques requises pour la cryptographie, et nous pouvons profiter d'un fait simple :

Il est très simple de calculer le produit de deux grands nombres premiers, mais il est très difficile de factoriser le produit de deux grands nombres premiers.

Nous pouvons donc concevoir un tel schéma:

  1. Tout d'abord, apprenez à l'héroïne Bai Lingmiao du côté de "Weird World" à apprendre l'arithmétique de base (du moment que vous savez multiplier des nombres entiers). Ensuite, demandez à Bai Lingmiao de générer deux grands nombres premiers et de dire au mâle son produit.
  2. Une fois que le protagoniste masculin est retourné dans le «monde moderne», il raconte le produit à l'héroïne du «monde moderne» Yang Na, et lui demande de trouver un ordinateur pour calculer sa factorisation première, puis de le dire au protagoniste masculin.
  3. Le protagoniste masculin retourne dans le monde étrange pour vérifier si le résultat de factorisation premier donné par le "monde moderne" est correct. S'il est correct, alors le "monde moderne" doit être réel.

Alors, comment générer des nombres premiers plus grands dans l'arithmétique de base ? On peut utiliser le petit théorème de Fermat :

Si p est un nombre premier et que l'entier a n'est pas un multiple de p, alors a^(p-1) a un reste de 1 lorsqu'il est divisé par p.

En effet, en prenant a comme nombre pair, un p 1 × p + 1 a^{p-1} \times p+1 est un nombre premier dans la plupart des cas. Dans des cas moins stricts, on peut utiliser ces nombres pseudo-premiers comme nombres premiers.

Pour le scénario de vérifier s'il y a de la puissance de calcul dans le monde, il suffit de choisir deux nombres entiers d'environ des centaines de milliers, par exemple :

1 2 5 1 5 + 1 = 103681 6 7 1 7 + 1 = 326593 12^{5-1} * 5+1 = 103681\\ 6^{7-1} * 7+1 = 326593

Si vous avez peur de marcher sur une fosse, vous pouvez expérimenter quelques petits nombres premiers.

Puis on calcule leur produit, on obtient 33861488833 33861488833

Ces calculs sont un peu lourds, mais ils devraient tout de même être à la portée de Xiaobai, cela prendra jusqu'à une heure, ce qui est suffisant pour terminer les calculs.

Notez qu'afin d'empêcher les illusions de tricher, Xiaobai ne dit à Li Huowang que le produit final et n'a pas besoin de dire à Li Huowang les deux facteurs principaux.

Ensuite, laissez notre protagoniste revenir au "monde moderne" et mettre 33861488833 33861488833 交给"现代世界"女主角杨娜,要求她找计算机和程序员对33861488833做因式分解。

接下来杨娜大约要花一点钱,比如她找到了winter,因式分解的代码这样写:

let p = new Array(Math.ceil(Math.sqrt(33861488833))).fill(1)

p[0] = 0;
p[1] = 0;
for(let i = 2; i < p.length; i++) {
    if(i === 0) 
        continue;
    if(33861488833 % i === 0)
        console.log(i);
    for(let j = i * 2; j < p.length; j += i)
        p[j] = 0;
}

//运行结果:103681

用计算机计算这个循环只需要几秒,但是如果是人肉计算,这个工作量几乎是不可完成的。

幻觉再怎么厉害,也不可能帮助李火旺超越数学,算出这个因式分解的结果。

如果在"现代世界"中,算出了正确的因式分解结果,因为李火旺本人并不知道质因数,所以可以确定不可能是李火旺的幻觉。

这样就可以验证"现代世界"的真实性了。

换句话说,即使"现代世界"是幻觉,那也是一个有巨大算力的幻觉系统,那么《道诡异仙》的故事可能就变成另一种风格了。

Je suppose que tu aimes

Origine juejin.im/post/7250718023815528485
conseillé
Classement