ka April Highlights and 2025 AoPS Online Class Information
jlacosta0
Apr 2, 2025
Spring is in full swing and summer is right around the corner, what are your plans? At AoPS Online our schedule has new classes starting now through July, so be sure to keep your skills sharp and be prepared for the Fall school year! Check out the schedule of upcoming classes below.
WOOT early bird pricing is in effect, don’t miss out! If you took MathWOOT Level 2 last year, no worries, it is all new problems this year! Our Worldwide Online Olympiad Training program is for high school level competitors. AoPS designed these courses to help our top students get the deep focus they need to succeed in their specific competition goals. Check out the details at this link for all our WOOT programs in math, computer science, chemistry, and physics.
Looking for summer camps in math and language arts? Be sure to check out the video-based summer camps offered at the Virtual Campus that are 2- to 4-weeks in duration. There are middle and high school competition math camps as well as Math Beasts camps that review key topics coupled with fun explorations covering areas such as graph theory (Math Beasts Camp 6), cryptography (Math Beasts Camp 7-8), and topology (Math Beasts Camp 8-9)!
Prealgebra 1
Sunday, Apr 13 - Aug 10
Tuesday, May 13 - Aug 26
Thursday, May 29 - Sep 11
Sunday, Jun 15 - Oct 12
Monday, Jun 30 - Oct 20
Wednesday, Jul 16 - Oct 29
Introduction to Algebra A
Monday, Apr 7 - Jul 28
Sunday, May 11 - Sep 14 (1:00 - 2:30 pm ET/10:00 - 11:30 am PT)
Wednesday, May 14 - Aug 27
Friday, May 30 - Sep 26
Monday, Jun 2 - Sep 22
Sunday, Jun 15 - Oct 12
Thursday, Jun 26 - Oct 9
Tuesday, Jul 15 - Oct 28
Introduction to Counting & Probability
Wednesday, Apr 16 - Jul 2
Thursday, May 15 - Jul 31
Sunday, Jun 1 - Aug 24
Thursday, Jun 12 - Aug 28
Wednesday, Jul 9 - Sep 24
Sunday, Jul 27 - Oct 19
Introduction to Number Theory
Thursday, Apr 17 - Jul 3
Friday, May 9 - Aug 1
Wednesday, May 21 - Aug 6
Monday, Jun 9 - Aug 25
Sunday, Jun 15 - Sep 14
Tuesday, Jul 15 - Sep 30
Introduction to Algebra B
Wednesday, Apr 16 - Jul 30
Tuesday, May 6 - Aug 19
Wednesday, Jun 4 - Sep 17
Sunday, Jun 22 - Oct 19
Friday, Jul 18 - Nov 14
Introduction to Geometry
Wednesday, Apr 23 - Oct 1
Sunday, May 11 - Nov 9
Tuesday, May 20 - Oct 28
Monday, Jun 16 - Dec 8
Friday, Jun 20 - Jan 9
Sunday, Jun 29 - Jan 11
Monday, Jul 14 - Jan 19
Intermediate: Grades 8-12
Intermediate Algebra
Monday, Apr 21 - Oct 13
Sunday, Jun 1 - Nov 23
Tuesday, Jun 10 - Nov 18
Wednesday, Jun 25 - Dec 10
Sunday, Jul 13 - Jan 18
Thursday, Jul 24 - Jan 22
MATHCOUNTS/AMC 8 Basics
Wednesday, Apr 16 - Jul 2
Friday, May 23 - Aug 15
Monday, Jun 2 - Aug 18
Thursday, Jun 12 - Aug 28
Sunday, Jun 22 - Sep 21
Tues & Thurs, Jul 8 - Aug 14 (meets twice a week!)
MATHCOUNTS/AMC 8 Advanced
Friday, Apr 11 - Jun 27
Sunday, May 11 - Aug 10
Tuesday, May 27 - Aug 12
Wednesday, Jun 11 - Aug 27
Sunday, Jun 22 - Sep 21
Tues & Thurs, Jul 8 - Aug 14 (meets twice a week!)
AMC 10 Problem Series
Friday, May 9 - Aug 1
Sunday, Jun 1 - Aug 24
Thursday, Jun 12 - Aug 28
Tuesday, Jun 17 - Sep 2
Sunday, Jun 22 - Sep 21 (1:00 - 2:30 pm ET/10:00 - 11:30 am PT)
Monday, Jun 23 - Sep 15
Tues & Thurs, Jul 8 - Aug 14 (meets twice a week!)
AMC 10 Final Fives
Sunday, May 11 - Jun 8
Tuesday, May 27 - Jun 17
Monday, Jun 30 - Jul 21
AMC 12 Problem Series
Tuesday, May 27 - Aug 12
Thursday, Jun 12 - Aug 28
Sunday, Jun 22 - Sep 21
Wednesday, Aug 6 - Oct 22
Introduction to Programming with Python
Thursday, May 22 - Aug 7
Sunday, Jun 15 - Sep 14 (1:00 - 2:30 pm ET/10:00 - 11:30 am PT)
Tuesday, Jun 17 - Sep 2
Monday, Jun 30 - Sep 22
There are events that are each continuous and last on a certain time interval. Each event has a weight However, one can only choose to attend activities that do not overlap with each other. The goal is to maximize the sum of weights of all activities attended. Prove or disprove that the following algorithm allows for an optimal selection:
For each consider the sum of over all such that and are not compatible.
1. At each step, delete the event that has the maximal If there are multiple such events, delete the event with the minimal weight.
2. Update all
3. Repeat until all are
Let be a triangle with . Let be the reflection of across the line and be the reflection of across the line . Let and intersect at . Prove that the orthocenter of triangle coincides with the circumcenter of triangle .
Index of Coincidence of a ciphertext with respect to itself.
fortenforge0
Oct 18, 2009
If we are comparing a text to itself, we basically are mathematically finding the probability that if we choose characters from the text, the characters will be the same.
Here is the formula: .
where is the number of characters in the alphabet, is the number of times the th of the alphabet appears in the plaintext, and is the number of letters in the plaintext.
Let us try to derive this formula. Probability is defined as the number of ways you get what you want divided by the total number of possibilities. How many ways are there to choose any letters from a group of letters? It is of course, which is equal to . This is the denominator. To calculate the numerator, we first calculate the number of ways to pick a's from our plaintext and add that to the number of ways to pick b's from our plaintext, and so on. If the number of a's in our plaintext was , then the number of ways to pick a's is , this is equal to as we have shown before. This numerator and denominator gives us , the 's cancel giving us our desired formula:
Frequency Analysis works because there is a one to one correspondence between the plaintext alphabet and the ciphertext alphabet. If frequency analysis is going to work, the letter should ALWAYS be encrypted as the letter . In a Vigenere cipher this does not occur. Depending of 's position in the plaintext, could be encrypted as one of several letters. If the keyword has length , then could be encrypted as . This is not a one to one correspondence so frequency analysis does not work.
Let us say that the frequency of in normal English was . If the key word was of length , the frequency of in the cipher text would be as well. But if the key word was of length , then the frequency of and the frequency of . Basically frequency analysis works if there is one alphabet that corresponds to another alphabet in a 1 to 1 correspondence.
To find a method for cryptanalysis we need to be more creative.
Ok, so I lied. I said that the next post was going to be about why frequency analysis fails on the Vigenere cipher but I decided to talk about how to mathematically define the cipher.
Let us say that we have already translated our plaintext into numbers (A = 0, B = 1, C = 2, ...). Let us say that the numbers are .
Let us say that we have chosen a key of length and the letters of our key transformed into numbers are .
To encrypt plaintext number we use where . This accounts for the fact that the key is repeated over each letter of the plaintext. We use mod because is the length of the keyword.
Call the corresponding ciphertext number to .
where .
The first part is just the Caesar Cipher mathematically. The only difference is that as changes changes as well. This is what makes the Vigenere cipher a much better code.
For the th number of our plaintext, , to find the equivalent key letter we take . So we take the th keyword number which is .
For the th number of our plaintext, to find the equivalent key letter we take . So we take the nd keyword number which is .
We would continue this process for all the letters there by finding each letters keyword equivalent.
Notice that the first number in our list is being considered as our 0th number and the 2nd number is being considered as the 1st number to make the math work. In cryptography this is normal.
You can see that this method works by verifying it here:
WARWARWARW
BLITZKRIEG
The math method and the visual method match up, the 0th plaintext letter corresponds to the 0th key letter and the 5th plaintext letter corresponds to the 2nd key letter.
If we wanted to encrypt the 0th letter mathematically we would find:
. So our 0th ciphertext number is 23.
If we wanted to encrypt the 5th letter mathematically we would find:
. So our 5th ciphertext number is 1.
We would continue the process for all the letters.
Again when doing it mathematically and doing it without math you get the same ciphertext:
XLZPZBNIVC.
Learning what a cipher is mathematically is not much useful if you are decrypting a message by hand, but it is enormously useful if you are trying to program a cipher on a computer.
Let's look at the first "?" under the "A" in the ciphertext.
How many choices do we have for that "?". Well, we have choices because we can choose any letter of the alphabet. Let us say we chose "R".
How many choices do we have for the next "?". We can choose any letter of the alphabet except "R", because we have already chosen that for the plaintext letter "A". So we have choices. Let's say we chose "E". Now for the next question mark we can't chose the letter "R" or "E" so we have choices. By now you should see the pattern, we have choices. That is equivalent to factorial.
.
This is a lot of keys. Much much more keys than a Caesar Cipher. Unfortunately, with today's computers this is not that many keys. But this makes it impossible to try to crack a monoalphabetic substitution cipher using brute force by hand. There is however another method to crack this code...
We can write the algorithm for the Caesar cipher in terms of math.
is the key. is the letter being encrypted and is the encrypted letter. The variables p and c are used to represent the letter being encrypted because in cryptography we refer to the original message as the 'plaintext' and the encrypted message as the 'ciphertext'.
We know , represents a number because it is the key. But and are actually letters. We need to convert them into numbers. This is very simple. Represent A by 0, B by 1, C by 2 ... Z by 25.
When encrypting a message we are shifting it by letters. In terms of numbers we are just adding to to get .
.
There is one problem with this. If and then which is a number we cannot convert to a letter. This problem occurs because of the 'wrapping around' from Z to A. To fix this we can use modular arithmetic. If you don't know what this is try googling it. We will almost always be working in mod 26 because there are 26 letters in the alphabet. Our new equation would be:
This is how to encrypt a message. To decrypt a message instead of adding we should subtract it.
intersecting circles and have a common tangent intersecting in and in .
The circles intersect in and where is nearer to than .
Prove that the triangles and have equal areas.
intersecting circles and have a common tangent intersecting in and in .
The circles intersect in and where is nearer to than .
Prove that the triangles and have equal areas.
Exactly the proof I got!
I got another a rather messy proof using sine rule and area of triangle in terms of sines which ultimately led to the above result.