From 272279511572e6aec01b5e0017956f32534423a0 Mon Sep 17 00:00:00 2001 From: deguo <49297268+jetstream0@users.noreply.github.com> Date: Sat, 12 Aug 2023 03:23:37 +0000 Subject: [PATCH] new posts --- posts/_metadata.json | 16 +++++++++++ posts/fermats_little_theorem.md | 35 ++++++++++++++++++++++++ posts/wikipedia_rabbitholes.md | 46 ++++++++++++++++++++++++++++++++ static/images/prime_test.png | Bin 0 -> 21441 bytes 4 files changed, 97 insertions(+) create mode 100644 posts/fermats_little_theorem.md create mode 100644 posts/wikipedia_rabbitholes.md create mode 100644 static/images/prime_test.png diff --git a/posts/_metadata.json b/posts/_metadata.json index b134d7c..5df6074 100644 --- a/posts/_metadata.json +++ b/posts/_metadata.json @@ -7,6 +7,22 @@ "author": "jetstream0/Prussia", "tags": ["code", "project", "web", "markdown", "typescript_javascript", "css"] }, + "fermats-little-theorem": { + "title": "Fermats Little Theorem", + "slug": "fermats-little-theorem", + "filename": "fermats_little_theorem", + "date": "12/08/2023", + "author": "jetstream0/Prussia", + "tags": ["code", "typescript_javascript", "math"] + }, + "wikipedia-rabbitholes": { + "title": "Wikipedia Rabbitholes", + "slug": "wikipedia-rabbitholes", + "filename": "wikipedia_rabbitholes", + "date": "09/08/2023", + "author": "jetstream0/Prussia", + "tags": ["reading", "history", "wikipedia"] + }, "eve": { "title": "Eve", "slug": "eve", diff --git a/posts/fermats_little_theorem.md b/posts/fermats_little_theorem.md new file mode 100644 index 0000000..33798cd --- /dev/null +++ b/posts/fermats_little_theorem.md @@ -0,0 +1,35 @@ +I read an article from [Quanta Magazine](https://www.quantamagazine.org/how-randomness-improves-algorithms-20230403/) that had this very interesting piece of information: + +> The basic idea goes back to a result from the 17th-century French mathematician Pierre de Fermat, known as his "little theorem." Fermat considered two integers — call them `N` and `x`. He proved that if `N` is a prime number, then `x\^N − x` is always a multiple of `N`, regardless of the value of `x`. Equivalently, if `x\^N − x` is not a multiple of `N`, then `N` can't be a prime number. But the inverse statement isn't always true: If `x\^N − x` is a multiple of `N`, then `N` is usually but not always prime. +> To turn Fermat's little theorem into a primality test, just take the `N` that you're interested in, choose `x` at random, and plug the two numbers into `x\^N − x`. If the result is not a multiple of `N`, then you're done: You know that `N` is definitely composite. If the result is a multiple of N, then `N` is probably prime. Now pick another random `x` and try again. In most cases, after a few dozen tries, you can conclude with near certainty that `N` is a prime number. "You do this a small number of times," Blais said, "and somehow now your probability of having an error is less than the probability of an asteroid hitting the Earth between now and when you look at the answer." + +It reminded me a little of zero knowledge proofs. + +Anyways, using Fermat's Little Theorem, I wanted to create a little function that could see whether a number was a prime number or not. First, we had to have a number to check as one of the inputs. And since I was using Javascript, it probably should be a `BigInt`, so big inputs don't lose any precision. We probably also want to optionally let the caller specify how many checks to do. + +Then, for each check, we can generate a random `x`, calculate `x\^N − x`. If we call that, say, `m`, then we can do `m % N`, where `%` means modulo. If `m % N` is zero, that means `m` is a multiple of `N`, so we continue. If not, then we know the input is **not** a prime number, and can end it there. If we generate `x` many times, and `m % N` is always `0`, we can conclude with high probability that the input is a prime. + +At first, I mistakenly did `N % m`, but that means `m` is a factor (not a *multiple*) of `N`, and `N` would be by definition, not a prime number (only factors of a prime number are itself and 1). I realised the problem pretty quickly. + +After fixing that, this is the code I had: + +```js +function is_prime(potential_prime, iterations=50) { + for (let i=0; i < iterations; i++) { + let x = BigInt(Math.floor(Math.random()*10000)); //0 =< x =< 9999 + let m = x**potential_prime - x; + if (m%potential_prime !== BigInt(0)) { + return false; + } + } + return true; +} +``` + +I tested a random few of the [first 1000 prime numbers](https://en.wikipedia.org/wiki/List_of_prime_numbers#The_first_1000_prime_numbers), and some numbers that were not prime numbers, and it works! Yay! + +Just to see if it worked, I tried putting in the very large prime number "531137992816767098689588206552468627329593117727031923199444138200403559860852242739162502265229285668889329486246501015346579337652707239409519978766587351943831270835393219031728127" as a test. And: + +![](/images/prime_test.png) + +...fair enough. diff --git a/posts/wikipedia_rabbitholes.md b/posts/wikipedia_rabbitholes.md new file mode 100644 index 0000000..683a807 --- /dev/null +++ b/posts/wikipedia_rabbitholes.md @@ -0,0 +1,46 @@ +Wikipedia articles. I like them. The "Did you know" and "On this day" sections on the front page are real treasure troves. They have archives too, so you'll never run out of articles to read. + +Here's a very incomplete (and maybe actively updated) list of ones that led to more clicks and were interesting to read: + +- [Second Anglo-Dutch War](https://en.wikipedia.org/wiki/Second_Anglo-Dutch_War) +- [Koxinga](https://en.wikipedia.org/wiki/Koxinga), rogue Ming loyalist general who defeated the Dutch and Qing, to rule Taiwan +- [Red Turban Rebellions](https://en.wikipedia.org/wiki/Red_Turban_Rebellions) and [Chinese Manichaeism](https://en.wikipedia.org/wiki/Chinese_Manichaeism) connected to each other through Manichaeian influence on the [White Lotus Society](https://en.wikipedia.org/wiki/White_Lotus) +- [List of Ethnic Groups in China](https://en.wikipedia.org/wiki/List_of_ethnic_groups_in_China) +- [Battle of Dien Bien Phu](https://en.wikipedia.org/wiki/Battle_of_Dien_Bien_Phu), where the Viet Minh kick out the French +- [Battle of Saigon (1955)](https://en.wikipedia.org/wiki/Battle_of_Saigon_%281955%29) +- [KHTML](https://en.wikipedia.org/wiki/KHTML), made by KDE, which suprisingly is the parent of both Chrome ([Blink](https://en.wikipedia.org/wiki/Blink_%28browser_engine%29)) and Safari ([Webkit](https://en.wikipedia.org/wiki/WebKit)) +- [Syrian Civil War](https://en.wikipedia.org/wiki/Syrian_civil_war) and it's numerous factions, like the non-secular [Syrian Salvation Government](https://en.wikipedia.org/wiki/Syrian_Salvation_Government) rebels or the Kurdish [Rojava](https://en.wikipedia.org/wiki/Autonomous_Administration_of_North_and_East_Syria) (related: ) +- [Circassian Genocide](https://en.wikipedia.org/wiki/Circassian_genocide), possibly the biggest genocide of the 19th century +- [Basmachi movement](https://en.wikipedia.org/wiki/Basmachi_movement), Central Asian rebellion against Soviet rule, with notable participant [Enver Pasha](https://en.wikipedia.org/wiki/Enver_Pasha), one of the [Three Pashas](https://en.wikipedia.org/wiki/Three_Pashas) who perpetrated the [Armenian Genocide](https://en.wikipedia.org/wiki/Armenian_genocide) +- [Saigo Takamori](https://en.wikipedia.org/wiki/Saig%C5%8D_Takamori), [Meiji Restoration](https://en.wikipedia.org/wiki/Meiji_Restoration) and [Satsuma Rebellion](https://en.wikipedia.org/wiki/Satsuma_Rebellion) leader +- [Shimabara Rebellion](https://en.wikipedia.org/wiki/Shimabara_Rebellion), Christian rebellion in Japan +- [May 68](https://en.wikipedia.org/wiki/May_68), leftist French civil unrest +- [Diffie-Hellman key exchange](https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange) +- [Xi'an Incident](https://en.wikipedia.org/wiki/Xi%27an_Incident), where [Chiang Kai-shek](https://en.wikipedia.org/wiki/Chiang_Kai-shek) (leader of the Nationalists) is kidnapped by his generals [Yang Hucheng](https://en.wikipedia.org/wiki/Yang_Hucheng) and [Chang Hsueh-liang](https://en.wikipedia.org/wiki/Chang_Hsueh-liang), and forced to cooperate with the Communists against the invading Japanese +- [Abdullah Öcalan](https://en.wikipedia.org/wiki/Abdullah_%C3%96calan), imprisoned [PKK](https://en.wikipedia.org/wiki/Kurdistan_Workers%27_Party) leader +- [Oda Nobunaga](https://en.wikipedia.org/wiki/Oda_Nobunaga), Japanese warlord, who died because of the [Honnō-ji Incident](https://en.wikipedia.org/wiki/Honn%C5%8D-ji_Incident) +- [Ishiyama Hongan-ji](https://en.wikipedia.org/wiki/Ishiyama_Hongan-ji), former [Jōdo Shinshū](https://en.wikipedia.org/wiki/J%C5%8Ddo_Shinsh%C5%AB) temple/fortress, was burned down and replaced by [Osaka Castle](https://en.wikipedia.org/wiki/Osaka_Castle), and the reason why the city of [Osaka](https://en.wikipedia.org/wiki/Osaka) exists +- [Peninsular War](https://en.wikipedia.org/wiki/Peninsular_War), [Napoleon](https://en.wikipedia.org/wiki/Napoleon)'s invasion of Spain and Portugal +- [Thomas Cochrane, 10th Earl of Dundonald](https://en.wikipedia.org/wiki/Thomas_Cochrane,_10th_Earl_of_Dundonald), successful British Navy officer accused of stock exchange fraud, later participating in [Liberating Expedition of Peru](https://en.wikipedia.org/wiki/Liberating_Expedition_of_Peru) from the Spanish +- [Indonesia invades East Timor](https://en.wikipedia.org/wiki/Indonesian_invasion_of_East_Timor) to overthrow [Fretilin](https://en.wikipedia.org/wiki/Fretilin) +- [Special Region of Yogyakarta](https://en.wikipedia.org/wiki/Special_Region_of_Yogyakarta), a region of Indonesia *currently* hereditarily ruled by the [Yogyakarta Sultanate](https://en.wikipedia.org/wiki/Yogyakarta_Sultanate) and the [Duchy of Pakualaman](https://en.wikipedia.org/wiki/Pakualaman) +- [Nanboku-chō period](https://en.wikipedia.org/wiki/Nanboku-ch%C5%8D_period), when two opposing Japanese Imperial Courts existed, after the overthrow of the [Kamakura Shogunate](https://en.wikipedia.org/wiki/Kamakura_shogunate) and the failure of the [Kenmu Restoration](https://en.wikipedia.org/wiki/Kenmu_Restoration) +- [COINTELPRO](https://en.wikipedia.org/wiki/COINTELPRO), where the FBI unsurprisingly misbehaves +- [Transition to the New Order](https://en.wikipedia.org/wiki/Transition_to_the_New_Order), where [Suharto](https://en.wikipedia.org/wiki/Suharto) purges the [Indonesian Communist Party](https://en.wikipedia.org/wiki/Communist_Party_of_Indonesia), and overthrows [Sukarno](https://en.wikipedia.org/wiki/Sukarno) +- [Crypto Wars](https://en.wikipedia.org/wiki/Crypto_Wars), where the US Government tries to prevent the public and foreigners from using strong encryption +- [The Battle of Blair Mountain](https://en.wikipedia.org/wiki/Battle_of_Blair_Mountain), where striking coal members are bombed +- [Haymarket Affair](https://en.wikipedia.org/wiki/Haymarket_affair), where a bomb was thrown at police during a rally supporting the eight-hour work day +- [Tigray War](https://en.wikipedia.org/wiki/Tigray_War), a recent rebellion of the Tigrayan Government against the Ethiopian Government +- [Timur](https://en.wikipedia.org/wiki/Timur), conquerer and founder of the Timurid Empire, self proclaimed successor of Genghis Khan, and ancestor of the [Mughal Empire](https://en.wikipedia.org/wiki/Mughal_Empire)'s founders +- [Year of the Four Emperors](https://en.wikipedia.org/wiki/Year_of_the_Four_Emperors), a period of civil war in the Roman Empire +- [Frederick the Great](https://en.wikipedia.org/wiki/Frederick_the_Great), Prussian king, and military general +- [Tadeusz Kościuszko](https://en.wikipedia.org/wiki/Tadeusz_Ko%C5%9Bciuszko), leader of the Polish-Lithuanian [Kościuszko Uprising](https://en.wikipedia.org/wiki/Ko%C5%9Bciuszko_Uprising) against Russian rule, and American Revolutionary War hero +- [Favelas](https://en.wikipedia.org/wiki/Favela), Brazilian slums, some of which are ruled by cartels or vigilantes +- [Princely State](https://en.wikipedia.org/wiki/Princely_state), Indian prince ruled territory under the British +- [Annexation of Goa](https://en.wikipedia.org/wiki/Annexation_of_Goa), India invades Portugese ruled Goa +- [List of ethnic armed organisations in Myanmar](https://en.wikipedia.org/wiki/List_of_ethnic_armed_organisations_in_Myanmar) +- [Marcionism](https://en.wikipedia.org/wiki/Marcionism), early interpretation of Christianity +- [Lion-Eating Poet in the Stone Den](https://en.wikipedia.org/wiki/Lion-Eating_Poet_in_the_Stone_Den), shi shi shi shi... +- [Fuke-shū](https://en.wikipedia.org/wiki/Fuke-sh%C5%AB), [Shakuhachi](https://en.wikipedia.org/wiki/Shakuhachi) playing, basket wearing, Zen Buddhism sect +- [Zen Koans](https://en.wikipedia.org/wiki/Koan), "A monk asked Dongshan Shouchu, 'What is Buddha?' Dongshan said, 'Three pounds of flax.'" +- [Shugendō](https://en.wikipedia.org/wiki/Shugend%C5%8D), a religion combining Buddhism, folk religion, and Shinto mountain worship diff --git a/static/images/prime_test.png b/static/images/prime_test.png new file mode 100644 index 0000000000000000000000000000000000000000..50880a922440278712e350c74def49981288176b GIT binary patch literal 21441 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 Eg48BJw*UYD literal 0 HcmV?d00001