-
Posts
36 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Everything posted by Asterisk Propernoun
-
So, I've been debating with someone over the existence of god, and we eventually reached the subject of intelligent design. This is his argument: Being someone who has no special interest in biology, I don't know how to refute this. What do you guys think? In order to prevent redundancy, I'll type down the arguments I've made so far: I've shown him Niel deGrasse Tyson's video on stupid design and Richard Dawkin's video on a nerve in a giraffe to show that a competent engineer (an intelligent designer) would never have created nature the way it is. I've also used Richard Dawkin's video (specific time here) to show how evolution can explain what intelligent design can't. I've given Bill Nye's example of a fossil prediction to show that evolution is accepted not because of dogma, but because it's reliable.
-
Is this a fallacy/How do you argue it?
Asterisk Propernoun replied to Marshalscienceguy's topic in General Philosophy
I have several retorts: 1. This is more bullying than it is formal debate, so I wouldn't even bother with it. 2. Just because a person hasn't done something doesn't mean they won't. I had a D average in my algebra classes last year, but I worked hard over the Summer and now my current overall grade in geometry is a 101.7 (it's over 100 because the teacher offers test bonuses). 3. If gold is more valuable than silver, then silver is worthless. See the fallacy? -
The Official "Quick Question" Thread
Asterisk Propernoun replied to boris_73's topic in Other Sciences
Okay, I see. Thank you for telling me. -
The Official "Quick Question" Thread
Asterisk Propernoun replied to boris_73's topic in Other Sciences
So what you're saying is that I can rotate the complex plane 180o along it's real axis and make it to where -i is on top and i is on the bottom without consequence? This would make sense to me, seeing as it wouldn't lead to -i=i since, not only would it make positives into negatives, but it would also at the same time make negatives into positives, thus maintaining a difference. -
The Official "Quick Question" Thread
Asterisk Propernoun replied to boris_73's topic in Other Sciences
I think you all are misunderstanding what I'm trying to say: I am not trying to say that -2=2, because 2 isn't soley defined as being the solution to a2=4. However, my friend from the other day told me that i is soley defined by i2=-1, meaning that -i=i because they're both solutions to a2=-1, and this is confusing me because, like I've shown, that would mean you could substitute i with -i when adding i and i together, thus turning it into i minus i without changing the end result, which is 2i. The problem I'm having is understanding how i is defined. Was my friend wrong in saying that the only thing that defines i is i2=-1? Was he right about that, yet wrong when he said that this leads to i=-i? Was I wrong when I said that this opens up the possibility for i-i=2i? I honestly don't know. I'm confused. EDIT: At Acme. I'm not trying to solve any specific equations. For now, I'm just trying to understand and get used to the concept. -
The Official "Quick Question" Thread
Asterisk Propernoun replied to boris_73's topic in Other Sciences
That much I get, but I was told that, since i is solely defined by i2=-1, that there's no difference between i and -i because you can square the negative version of a number and get the same answer: 22=4=(-22) -
The Official "Quick Question" Thread
Asterisk Propernoun replied to boris_73's topic in Other Sciences
So, I'm having problems with understanding imaginary units. My friend told me that -i=i, but I confused him when I showed him this: -i=i 2i=i+i=i+(-i)=i-i i-i=2i? I must be missing something... -
I occasionally make posts on this thread to ask questions, but most of the time I'm on a different forum which uses the same Invision Power Services software as this forum (although the versions may be different). The other forum I'm on has three separate themes that can be changed with a tiny button on the bottom of the main page, and those three themes are normal, mobile, and IP.Board (default). The IP.Board theme, in all honesty, looks almost exactly like the theme of scienceforums.net. What I'm suggesting is that we should get some ideas going in this thread so we can give this forum it's own little unique touch.
-
The Official "Quick Question" Thread
Asterisk Propernoun replied to boris_73's topic in Other Sciences
(pq+((p-q)/2)2)0.5±(p-q)/2=p&q I think that there's a consistent method to prove whenever statements such as this are true or not. Does anyone here know what that method is? -
The Official "Quick Question" Thread
Asterisk Propernoun replied to boris_73's topic in Other Sciences
Let's say that there's a function whose limit is zero as the function approaches infinity. Would I be justified in saying that, if I put infinity in the function, that the answer would be zero? -
The Official "Quick Question" Thread
Asterisk Propernoun replied to boris_73's topic in Other Sciences
Hey, I have plans on posting this in another forum, and I would like to have my work checked before I do so. Here it is: -
I once read a thread with a post in it saying "Everything is possible, unless it isn't." I read another thread just recently with the post "Hypothesis are assumed true until they're proven wrong." I'm seeing flaws in this logic. So if I were to create a hypothesis that was extremely unlikely, yet impossible to prove/disprove, we should all just assume it's true? For instance, how would you disprove my hypothesis that, in the center of every star is not nuclear fusion but is instead a dragon radiating firebreath in all directions? You may say this dragon couldn't ever exist because <insert long explanation here>, but then I'll make another hypothesis as to why it is possible, and a hypothesis that explains why the last hypothesis is possible, and so on. Before you know it, I've created an entire web of assumptions that explains the universe in ways that cannot be proven or disproven. I am seeing some serious problems with the idea that everything is to be assumed true until it's proven false. Care to help me out of this pit of confusion?
-
This was just a little expirement that went on inside my head while I was on one of my walks. It seemed interesting at the time, so I'm going to share it with you. We have an x axis that represents all real numbers, and a y axis that represets all imaginary numbers, i^2=-1. The idea of a whole-nother number line sounds fascinating; and to some, literally unbelievable. However, dispite some people's disbelief, the imaginary number line and the complex plane is perfectly sound from a mathematical standpoint. If we managed to solve something impossible like -1^0.5, then maybe we can do the same with another impossible function like a/0. A person (I can't remember who) once said that smart people learn through trial and error, while smarter people learn through other people's trial and error. So, I started out by showing the marks on the z axis as -1(1/0), 0(1/0), 1(1/0), and so on. However, I quickly realized that this would simplify to -1/0, 0/0, 1/0, and so on. Well, I made a third dimension. Now the questions were what good was it and what are it's properties? Well, let's start by comparing 1/0 to -1^0.5. A few people who don't accept the complex plain may argue that -1^0.5 just equals 1. However, when you find the square root of a number, you should be able to reverse the process by squaring. 25^0.5=5 5^2=25 You cannot do this with a real number only argument to -1^0.5. -1^0.5=1 1^2=1 If the person you were arguing debating with was desprate to hold on to their claims, they may say that 1^2= +/- 1. Please, tell me what's wrong with this picture: 1*1=-1 So, I concluded in my head that, if you wanted -1^0.5 to work, you needed to use the imaginary unit i. I am now going to compare the problems with using real numbers for -1^0.5 with 1/0. Again, you should be able to reverse what you've done. 10/5=2 2*5=10 And again, this won't work if 1/0=, say, 0. This was something I didn't take in to consideration on my first attempt to divide by zero. 10/0=0 0*0=0 The question now is, can the third dimension I added fix this? I believe so. However, it may be difficult to wrap your head around the solution. 10/0= the tenth place on my axis. For now, let's just call that place 10g. 10g*0=10 So when you multiply g by 0, you get 1? Well, when you think about it; yea, why not? Wouldn't you agree that *0 cancels out /0 the same way *5 cancels out /5? Getting a nonzero number through multiplication by zero is no less believable than saying you multiplied two of the same signs together and got a negative number. Another problem a mathematician on this forum told me was that, if we were to make it where any number divided by zero equaled the same number, then that opens up the possibility for any number to equal any other number: 2/0=0 3/0=0 Therefore, 2=3 This doesn't happen with my idea. 2/0=2g 3/0=3g Therefore, 2=/=3. So, is this perfectly sound like the complex plain, or does it have problems?
-
A Flaw in the One-Time Pad?
Asterisk Propernoun replied to Asterisk Propernoun's topic in Applied Mathematics
I decided to collect some data so I can show you what I mean. The one-time pad generator I used. The python script I used will be in an attached file. The script will include the keys I used. The script's output: 1. a: 100 b: 122 c: 97 d: 83 e: 104 f: 104 g: 117 h: 100 i: 105 j: 87 k: 93 l: 112 m: 88 n: 76 o: 118 p: 113 q: 107 r: 105 s: 94 t: 96 u: 99 v: 90 w: 99 x: 86 y: 89 z: 116 2. a: 85 b: 129 c: 102 d: 113 e: 84 f: 93 g: 116 h: 91 i: 120 j: 98 k: 99 l: 105 m: 101 n: 96 o: 99 p: 101 q: 100 r: 103 s: 84 t: 111 u: 94 v: 92 w: 82 x: 103 y: 105 z: 94 3. a: 90 b: 119 c: 94 d: 89 e: 97 f: 102 g: 78 h: 123 i: 118 j: 104 k: 93 l: 92 m: 99 n: 98 o: 106 p: 95 q: 107 r: 108 s: 96 t: 104 u: 117 v: 102 w: 98 x: 111 y: 87 z: 73 4. a: 104 b: 105 c: 93 d: 110 e: 89 f: 99 g: 92 h: 87 i: 93 j: 105 k: 98 l: 99 m: 97 n: 121 o: 104 p: 103 q: 103 r: 100 s: 98 t: 100 u: 110 v: 94 w: 84 x: 115 y: 98 z: 99 5. a: 112 b: 90 c: 101 d: 98 e: 103 f: 113 g: 83 h: 96 i: 102 j: 99 k: 94 l: 100 m: 104 n: 99 o: 86 p: 80 q: 95 r: 112 s: 113 t: 107 u: 96 v: 96 w: 126 x: 107 y: 92 z: 96 6. a: 119 b: 100 c: 97 d: 85 e: 94 f: 107 g: 103 h: 98 i: 100 j: 89 k: 90 l: 120 m: 102 n: 107 o: 104 p: 81 q: 99 r: 108 s: 101 t: 92 u: 96 v: 94 w: 117 x: 98 y: 115 z: 84 7. a: 94 b: 84 c: 94 d: 87 e: 98 f: 90 g: 117 h: 93 i: 110 j: 125 k: 85 l: 98 m: 94 n: 103 o: 125 p: 129 q: 105 r: 91 s: 95 t: 103 u: 90 v: 90 w: 107 x: 90 y: 113 z: 90 8. a: 85 b: 105 c: 105 d: 88 e: 99 f: 89 g: 99 h: 111 i: 93 j: 104 k: 100 l: 100 m: 113 n: 101 o: 105 p: 107 q: 74 r: 107 s: 102 t: 101 u: 95 v: 106 w: 86 x: 117 y: 106 z: 102 9. a: 98 b: 118 c: 98 d: 80 e: 108 f: 104 g: 109 h: 95 i: 94 j: 82 k: 103 l: 100 m: 103 n: 88 o: 96 p: 109 q: 110 r: 104 s: 104 t: 84 u: 102 v: 104 w: 107 x: 101 y: 110 z: 89 10. a: 103 b: 92 c: 90 d: 105 e: 98 f: 121 g: 104 h: 104 i: 111 j: 103 k: 103 l: 108 m: 103 n: 107 o: 99 p: 87 q: 110 r: 94 s: 96 t: 95 u: 100 v: 100 w: 86 x: 94 y: 81 z: 106 The ten keys I tested where all 2600 letters long. It looks like I was correct in thinking that each of the letters would tend towards 100 since 2600/26=100, and each letter in the key had an equal chance of occurring. Of course, I could've just used a generator that wasn't any good, but I believe this counts for at least something. EDIT: Wait a minute. Okay, I see what John Cuthber means. I may be correct in my statement, but something important to realize is that there are more possible combinations of letters when they're equal in quantity. When the key is basically a Julius Caesar cipher and all of the letters are the same, there are only 26 different possibilities. However, a key that's 2600 letters long and has 100 of each letter may have thousands of possible combinations. Although, on average, the key will have an equal amount of each letter, there are more equal letter combinations than any other combination that isn't equal. So, although my observation was correct, it didn't have the effect on one-time pad cryptanalysis that I thought it had. Counter.txt -
A Flaw in the One-Time Pad?
Asterisk Propernoun replied to Asterisk Propernoun's topic in Applied Mathematics
But doesn't expiremental probability tend towards theoretical probability as you run more and more expirements? Or does the key not generate one letter at a time with equal chances for each letter like I explained? -
There are two statements people often make about the one-time pad that I believe are contradicting each other. The two statements are: "The key should use truly random letters, which means that each letter in the alphabet has an equal chance of occuring." "When Eve attempts cryptanalysis with unlimited computing power, she will recieve the plaintext instantly. However, she will notice that the message 'WINTER' is just as likely to occur as the message 'SUMMER'." Alright, if the one-time pad's key is supposed to have truly random letters that all have an equal chance of occuring, then won't that mean the key will most likely have an equal combination of all of the letters in the alphabet? Let's say we have a ciphertext that is 2600 letters long, so would the most likely keys be the keys that have 100 of each letter in the alphabet? If the above is answered with a yes, then wouldn't that also mean the odds of what the plaintext is will also be inequal? If that's answered with a yes, then wouldn't the second statement listed above be false?
-
Alright, since I can't edit my original post for some reason, I'll make a new one. I figured out that it is possible to have at least one other solution to the step "Find a perfect square that equals another perfect square when added to the semiprime." 21+100=121 121^0.5=11 100^0.5=10 11+10=21 11-10=1 1*21=21 15+49=64 64^0.5=8 49^0.5=7 8+7=15 8-7=1 1*15=15 I figured this out by taking a second look at the pattern I made in my original post. If the semiprime is odd, then I just need to find the semiprime in the blue portion of the pattern listed here: 0+1=1=1^2 1+3=4=2^2 4+5=9=3^2 9+7=16=4^2 16+9=25=5^2 25+11=36=6^2 36+13=49=7^2 49+15=64=8^2 64+17=81=9^2 81+19=100=10^2 100+21=121=11^2 From the looks of it, I believe the second solution to the step will only result in the semiprime multiplied by one every time it's used. So perhaps one of the steps I made has to be rephrased: Add the semiprime by a perfect square less than the semiprime that will give you another perfect square.
-
I'm going to make this short. I've heard that the difference between introversion and extraversion lies in the activity going on inside the brain, that lower brain activity means one needs to socialize in order to be energized, while higher brain activity means one gets tired out by over stimulation if they socialize too much. To me, the explanation for extraversion (having low brain activity and needing to socialize in order to be energized) sounds as though it would fit the description of some, if not many ADHD cases if the lower brain activity was more significant. What do you think?
-
((10+10)/2)^2-10x10=((20+20)/2)^2-20x20=0=0^2 ((11+9)/2)^2-11x9=((21+19)/2)^2-21x19=1=1^2 ((12+8)/2)^2-12x8=((22+18)/2)^2-22x18=4=2^2 ((13+7)/2)^2-13x7=((23+17)/2)^2-23x17=9=3^2 ((14+6)/2)^2-14x6=((24+16)/2)^2-24x16=16=4^2 ((15+5)/2)^2-15x5=((25+15)/2)^2-25x15=25=5^2 ((16+4)/2)^2-16x4=((26+14)/2)^2-26x14=36=6^2 ((17+3)/2)^2-17x3=((27+13)/2)^2-27x13=49=7^2 ((18+2)/2)^2-18x2=((28+12)/2)^2-28x12=64=8^2 ((19+1)/2)^2-19x1=((29+11)/2)^2-29x11=81=9^2 ((20+0)/2)^2-20x0=((30+10)/2)^2-30x10=100=10^2 This involves the same pattern I manipulated when I tried to create a fast factorial algorithm. However, this only partially explains why this algorithm seems to work, and it's the only explanation I currently have. I'll be honest, the main reason why I think the algorithm works is because I've yet to find a counter example with pen and paper so far. The exact inner workings of the algorithm is unknown to me, but if you've came up with any proofs as to why it does or doesn't work, then please tell me. My algorithm goes as so: Add the semiprime by a perfect square that will give you another perfect square. Find the square root of the sum. Find the square root of the perfect square that you added to the semiprime. Add the square root of the sum to the square root of the perfect square you added to the semiprime. This will give you the first prime number. Subtract the square root of the sum by the square root of the perfect square you added to the semiprime. This will give you the second prime number. The first prime number multiplied by the second prime number will give you the semiprime. A working example: 98939209+3600=98942809 98942809^0.5=9947 3600^0.5=60 9947+60=10007 9947-60=9887 10007*9887=98939209 I also have some questions I would like to ask. Would there be more than one answer to the step where you add a perfect square to equal another perfect square? If you where to try using this on rsa numbers with a pre-written look up list of perfect squares, would memory be a problem? Anything you can tell me will be very helpful, thanks.
-
Changing the time system? That sounds like what Maximilian Robespierre tried to do. He ended up getting his head chopped off by a guillotine. I do agree with the fact that our current system of time is outdated, but you have to remember that our entire world was built on that system. Changing it would cause so many complications that it simply wouldn't be worth it.
-
I've been looking up math in games lately, and it seems that most mathematicians revolve around board games such as checkers and tic-tac-toe. What about single player video games? Now, I know what you're thinking. "Video games? The game tree would be so big that all of the computers on earth couldn't hold the information!" I'll admit it, you're probably right; but you don't really need every possible scenario to solve a game. For instance, most people know that the quickest route from one point to another is a straight line, so you can easily rule out all of the unnecessary zigzagging, loop-de-loops, and other strange things that might show up in a full game tree. But wait, there's more to it. For instance, how would you even define a 'solved single player game'? Is the perfect play an algorithm that has the greatest probability of being successful (since there's random chance and AI to worry about)? Is it the fastest algorithm? To further confuse the goal, how would you define 'completing' a game? Where the main story ends, sure; but what about things such as side quests, achievements, and making the character you control as powerful as can legally be? There's probably a whole lot of mathematical complications that my young, naive eyes are unable to see, but I think I can provide some examples of what I mean: Now this is a game that is probably easier to solve than tic-tac-toe. Although there's no end to it, one can easily make it to where the score would be you: tending towards infinity, and the AI: 0. Though, games such as these are fun in a sense that it takes more skill through practice than strategy and mathematical theory, which makes solving it mathematically pretty pointless. the original Super Mario Bros for the NES and Pac-Man are games that I believe would fall under this category. Although they're probably harder to solve, there's little to no probability, and the goals are clear cut. Let's look at something that would likely be on the level of 'Difficult, yet possible; and therefore interesting.' All laughter aside, I believe that solving this game is possible. The primary goal that this game is challenged by is to be comedic. The game play is the game's secondary goal; and is therefore quite linear, but still interesting. As far as the game play goes, it's basically just "Go to this location.", "Here are the enemies that you have to fight. They have this move set, you have this move set, now take turns hitting each other.", "Make a choice that will not effect the story the slightest.", etc. However, there are still problems concerning unclear goals that I have listed above. Do you just want to finish the main story, or all of the side quests as well? Are you going for the bare minimum, or do you want you're character to be as powerful as possible? Do you plan on getting all of the trophies and achievements as well? Speed or certainty? If a mathematician wanted to challenge himself/herself with solving a video game, I would recommend this game to them. Though, I am just a high school math enthusiast... Ah well, it's your choice regardless of what I say. Now let's move on to one of those games that will most likely make a mathematician slam his pen on to the ground and yell "NOPE!" This game is called Minecraft. It's basically advanced building blocks. The list on what I think makes this game so difficult to solve goes on and on: Randomly generated terrain. No two maps are alike unless they were to share an identical seed. However, the seeds change after every update, and the maps would only be similar, not identical. Small details such as tree placement and village spawning will still be hard to predict. Updates will make the game evolve faster than any mathematician can work. The maps have no clear end-point. After, say, 30,000,000 meters, the map will start to bug and glitch out, but will continue to generate until eventually crashing the game. Mob (NPC) spawning is next to completely random. There's no telling if there's a hostile mob around a dark corner or not. In the game, you can mine underground to gather ores and other various resources which are also randomly generated. Even more so, to be exact. In this game, your goal is just about as foggy as can be. Are you trying to defeat the Ender Dragon? Discover a really rare biome called a 'mushroom island'? Create a 32-bit computer (yes, this can be done)? Create a house that's identical to the one presented above? There's really no end to what can be done, and its this dynamic game play that makes people so interested in the game. However, I can easily tell that this is a nightmare from a mathematician's perspective. I understand that this is less of an experiment and more of an idea, so please feel free to move this topic if you feel the need to do so. Other than that, I would like to know about your thoughts on this.
- 1 reply
-
1
-
Is This a Fast Factorial Algorithm?
Asterisk Propernoun replied to Asterisk Propernoun's topic in Speculations
I'll assume that by IANAM, you mean 'I Am Not A Moron'. I've read from a book about how to write scientific reports that it's always better to provide too much information than too little. I may have over explained things a bit, but I just wanted to be on the safe side. For the part of (((a+b)/2)^2-ab)^0.5x2=|a-b| not being true, I don't get why you're saying that it isn't (more over-explanation, incoming!): 11+13=24 10007+9887=19894 24/2=12 19894/2=9947 12^2=144 9947^2=98942809 11*13=143 10007*9887=98939209 144-143=1 98942809-98939209=3600 1^0.5=1 3600^0.5=60 1*2=2 60*2=120 |11-13|=|13-11|=2 |10007-9887|=|9887-10007|=120 It may just be associative rule, but the method I used to reach the step 9!=5*24*21*16*9 is what (I believe) makes this algorithm faster than normal. Please keep in mind that I'm just a high school math enthusiast, and not a legitimate mathematician. Thanks. -
I believe I created either faster or slower factorial algorithm than the standard bottom-up multiplication used by computers. Allow me to explain. I first started out by coming across some patterns: ((10+10)/2)^2-10x10=((20+20)/2)^2-20x20=0=0^2 ((11+9)/2)^2-11x9=((21+19)/2)^2-21x19=1=1^2 1-0=1 ((12+8)/2)^2-12x8=((22+18)/2)^2-22x18=4=2^2 4-1=3 ((13+7)/2)^2-13x7=((23+17)/2)^2-23x17=9=3^2 9-4=5 ((14+6)/2)^2-14x6=((24+16)/2)^2-24x16=16=4^2 16-9=7 ((15+5)/2)^2-15x5=((25+15)/2)^2-25x15=25=5^2 25-16=9 ((16+4)/2)^2-16x4=((26+14)/2)^2-26x14=36=6^2 36-25=11 ((17+3)/2)^2-17x3=((27+13)/2)^2-27x13=49=7^2 49-36=13 ((18+2)/2)^2-18x2=((28+12)/2)^2-28x12=64=8^2 64-49=15 ((19+1)/2)^2-19x1=((29+11)/2)^2-29x11=81=9^2 81-64=17 ((20+0)/2)^2-20x0=((30+10)/2)^2-30x10=100=10^2 100-81=19 Now this is showing quite a few things. First off, it's showing that, although the mean of numbers stay the same when you add 1 to a number and subtract 1 to another, the product of the two numbers isn't. The difference between the mean squared and simply multiplying the two numbers together is the absolute value of the difference between one of the numbers and the mean squared. The second thing this is showing is that the size of the numbers alone does not play a role in the difference between the mean squared and the product of the two numbers, since we could do the same things with 11 & 9 that we did with 21 & 19 and get the same answer. The third thing this pattern is showing is that you can easily get perfect squares by adding up odd numbers: 0=0^2 0+1=1^2 0+1+3=4=2^2 0+1+3+5=9=3^2 0+1+3+5+7=16=4^2 And so-on. With these patterns in mind, many impressive, yet impractical things can be done such as (((a+b)/2)^2-ab)^0.5x2=|a-b|. However, I'm trying to use this to get a faster factorial method, which I might have succeeded in doing. Most people know that a factorial is multiplying all of the natural numbers that comes before the natural number listed once, and that's obviously a characteristic that the patterns listed above can manipulate (keep in mind that this will only work with odd numbers, but I have a simple trick at the end to where this method can be used with even numbers). 9!=9*8*7*6*5*4*3*2*1 So if we where to take the mean of 9 and 1, we would get 5. All that needs to be done is take the square of 5 and subtract it by odd numbers until we're left with our original number, which is 9. 9!=5*24*21*16*9 This will get us the correct answer, 362880. If we wanted to perform this trick with an even number like 10, then we would just do what we did with the number below it and multiply that by 10. 10!=5*24*21*16*9*10 The answer here is 3628800. The process can pretty much be written as so: n!=((n+1)/2)(((n+1)/2)^2-1^2)(((n+1)/2)^2-2^2)(((n+1)/2)^2-3^2)... until (((n+1)/2)^2-m^2)=n And, if the number happened to be even, then we would simply subtract it by 1 before starting the algorithm, and then, come the time for the final multiplication, we'll include the original number to the numbers we're supposed to multiply. Now, this may seem significantly slower at first glance, but there are some things you have to keep in mind: You only have to find (n+1)/2 and ((n+1)/2)^2 once before you can simply save the numbers for when you need them. In order to find the perfect squares, you only need to add up odd numbers. This can be combined with a fast multiplication algorithm so it can be even faster, though this can be included in simple bottom-up multiplication as well. Your thoughts?