Today I'd like to teach you all about one of my all time favorite constants: π!
Most likely, all of you know that π is the ratio of a circle's circumference to its diameter, and probably only know only 3 to 5 decimal digits of it. However, π is an irrational number, meaning it has no end! Let us go through all of the different formulae of π I have programmed, and explain what they mean! Let's dive in. (These are numbered in the order that they print when the attached code is run)
- The Monte Carlo Method
One way you can do this is by drawing a square, with a circle whose edges touch the 4 edges of that square within. Now imagine you were to draw many many dots randomly within the square-circle hybrid. If you take the number of points that fell within the circle, divide it by the total number of points, and multiply it by 4, you get (you guessed it) π!! More info can be found here:
- The Chudnovsky Algorithm
This is one of the fastest methods out there, being used in the world record, to calculate 50 trillion digits of π! I already explained it in a previous post, but the formula (and more cool information!) is here:
- The Basel Problem
This problem, posed by a man named Pietro Mengoli, asked for the exact sum of an infinite series, with proof. Mathematician Leonhard Euler answered this, with proof, finding it to equal exactly π^2/6. Further info and interesting facts here:
- The Wallis Product
Unlike the other formulae here, this one uses the Product Operator in its equation. If repeated over an infinite number of times, it will equal π/2. More information here:
- The Leibniz Formula
Last but certainly not least, I have here probably one of the slowest π-convergent methods out there. In fact, to get π accurately to 10 decimal places takes about 5 billion iterations, according to the Wikipedia page! This formula alternates between adding and subtracting fractions with odd denominators (meaning this is an example of an alternating series), and converges on π/4. For extra information, go here:
I plan to make more π approximation programs in the future, so stay tuned if these kinds of things interest you as much as they interest me!
Thank you. ^ ^
Do you know anything about something called a spigot method/algorithm or something? I heard of them at some point, but I’m not entirely sure where or exactly how either...
@Highwayman Oh! I completely forgot about those, but yes, I do know about Spigot Algorithms! They can be used to find mathematical constants, like π! This is an article I had bookmarked about that:
@LizFoster ... I saw you were talking about learning "one of the C languages" earlier? That’s what they are all in. I know it’s not my place or anything at all, but I really strongly suggest you do, it’s so awesome.
I’d suggest maybe checking out cryptography or maybe AI Books, those are pretty math heavy I think :P
@LizFoster ehhh No. :( again all my books are c++, but I bet if you just look it up you will find something pretty easily. At least from what I can remember it’s pretty easy to find(it was just too mathy for me, so I never saved it). There are also some things on ai in this learn section too actually, though of course that’ll be more starter stuff than any of the more exciting stuff.
Actually if you learn C++, I found this one a while back on Neural Networks:
I don’t know if it’s actually good I forget I haven’t picked it up in a while(again- too mathy for me I’m bad at math lol)
And then this one is on analyzing stream ciphers(which are really cool by the way)
Again these are kinda introductions and also just things I pulled from my library, so I don’t how good they are but I hope they are helpful. :P
@Highwayman Oh, cryptography looks fun. I'd suggest looking on YouTube; half of the stuff I've learned came from Numberphile, 3Blue1Brown, and Mathologer, so I'm sure that there are loads of tutorials and such for cryptography! Here are a few I found if you have the time for it:
and then for fun (probably not as related Lol):
If P and Q are two points on an elliptic curve such that kP = Q, where k is a scalar and sufficiently large, it is computationally infeasible to obtain k if k is the discrete logarithm of Q to the base P . Note that this is computationally infeasible even if P and Q are known.
XS ohh boy. Here we go again lol.
@enigma_dev Oh, yay! Hi! Um, so
I was reading some stuff on the diffie-hellman key exchange, and they started discussing ECC, which I though was basically just another asymmetric encryption algorithm like RSA, but now I’m kinda confused because it started to look like it was just another form of the aforementioned diffie-hellman exchange, so I guess what my question is is what is elliptic curve cryptography?
@Highwayman I'm pretty sure elliptic curve cryptography is just another method of asymmetric encryption which uses the same overall ideas as the Diffie-Hellman Key Exchange while not using the same methods of modular exponentiation. I've never really researched ECC before, but I know it is just another method of asymmetric encryption like RSA and Diffie-Hellman Key Exchange. What I mean by the overall ideas is using another person's public key and your private key to create the same secret as if you used the other person's private key and your public key.
@LizFoster , I would definitely recommend cryptography. It is a great way to delve into the application of mathematics and computer science. For example, with the Diffie-Hellman Key Exchange you use modular exponentiation which is pure mathematics and apply computer science to complete the algorithm and create the shared secret key from the Diffie-Hellman Key Exchange. Of course, however, there are less math-based cryptographic algorithms as well such as monoalphabetic substitution which really isn't even an exact science and just making educated guesses until you get the original plaintext from the ciphertext, but there are also many math-based ciphers and methods such as Diffie-Hellman, RSA, and even, although with much less complex math, Affine Ciphers including the Caesar Cipher which just has an "a value" of 1. The interesting thing about cryptography is that it combines linguistics, computer science, and mathematics into one field of research that can be applied to the real world easily with the encryption and decryption used on the Internet (usually RSA, but other ciphers are used occasionally).
If anyone has any questions about cryptography, feel free to ask me. I have been studying cryptography on the side for a while now, even to where I ended up getting first place in a cryptography competition earlier this year.
@Highwayman You're welcome! By the way, I recently created a program that uses the Diffie-Hellman Key Exchange for end-to-end encryption with private keys generated from hashes of passwords which are encrypted to create a number, but I currently am using a modified ASCII and Vigenere hybrid to use the shared secret for E2EE. Do you have any suggestions on how to use the shared secret differently for increased security since the Vigenere Cipher can easily be broken with a "crib" (plaintext attack) or a kappa test? I can't use a hash since I need to decode it as well. It needs to be symmetric as well so that it can use one shared key. I know I could add on an extra layer of a transposition cipher or something, but am waiting to do that for right now, but if you have any ideas that are much more secure, I'll at least write them down and save them for a later update.
@LizFoster Thank you! Also, I could explain some of the ciphers I mentioned if you would like or you could just look them up or something. Affine ciphers are definitely the best place to start, then likely monoalphabetic and Vigenere and on from there to more advanced ciphers like RSA.
@LizFoster So, affine ciphers just follow the expression
ax+b mod 26 where
mod is the modulus function and
x is the alphanumeric code from the letter you are given. The alphanumeric code is where a=0, b=1, c=2, ... Monoalphabetic substitution is where every letter stands for another distinct letter (no two letters stand for the same letter) without any equation where you just have to guess and check. Vigenere is where you have a key that repeats along the length of the plaintext (text you are encrypting) or ciphertext (text you are decrypting) and you add the alphanumeric value of a letter in the plaintext with the corresponding letter of the key or subtract the alphanumeric value of the key letter from a the letter in the ciphertext. Then, RSA uses
v^e mod n where (e, n) is the public key and v is the value to encrypt. You also just change e to d (private key) to decrypt a value as well. Those are just the basics of some of the ciphers. Would you like me to explain further about how to do plaintext attacks and how to decode monoalphabetic ciphers?
@LizFoster With me making it sound so easy, though, remember that I've been doing this for years (however, only two years in-depth, although I knew the Caesar Cipher and Pigpen Cipher (special case monoalphabetic substitution cipher that is EASY (look it up on Google Images and if you see a tic-tac-toe board-like thing with an "X" at the bottom, that's the entire cipher and how it works)) long before). Also, with the cryptography, I have realized that it is easier to learn by doing than by reading. This website can auto-generate keys for ciphers given a quote and has practice tests: https://toebes.com/codebusters/ . Don't worry about where it says "Div A", "Div B", and "Div C", that is just the different "divisions" in a competition, labelling which divisions use which ciphers. I actually ended up learning ciphers like Vigenere and the Affine ciphers through that website by just finding patterns in generated codes.
@LizFoster My bug report is here: https://repl.it/bugs/p/lets-talk-about-talk-post-returning-404-error The issue is still going on. I'm not sure exactly what brings bug reports to the top of the list, but I think it is voting on the bug report. In that case, can you upvote the bug report so that this gets fixed faster? Also, probably commenting would help as well, like maybe saying that it was happening for you too.
@LizFoster Thank you and you're welcome! However, I just noticed that the same thing happens on the comments tab of my profile. https://repl.it/@AmazingMech2418?tab=comments . However, for some reason, it is not happening on yours or @Highwayman 's. Also, for the cryptography thing, I'm probably going to create a learn post about it.