8 ms·
Making any integer with four 2s
- deleted 2y ago[deleted]
- lblume 2y agoSo, the formula is really about making any integer with three 2s, but historical precedent calls the game with four 2s more interesting, so the (stronger) result is monkey-patched by replacing a 2 with sqrt(2+2).
- deleted 2y ago[deleted]
- hinkley 2y agoWhy not use 3 2’s to make n + 2 or n - 2? That’s a lot easier than making a subscript so complicated. This is the Curse of Knowledge. OP stared too long into the abyss.
- horsawlarway 2y agoI feel like the second you allow functions you've thrown the spirit of the game. Ex, the gamma function is (n-1)! So now you're making 7 with four twos and a one. You've broken the spirit. If I can hide numbers in a function call... It's trivially easy to always succeed.
- lblume 2y agoI would argue that the Gamma function is more fundamental than the factorial operation. But you are still correct that if arbitrary functions were allowed, the game would degenerate to triviality.
- TOGoS 2y agoInorite. If we're allowing any old function, then I can just define 12345 as Onetwothreefourfive()-2+2-2+2
- Someone 2y ago> I feel like the second you allow functions you've thrown the spirit of the game. +, - (both binary and unary), ×, ÷ are functions, as is raising to a power. Why would you allow them? As always in this kind of things, one can disagree about what constitutes an elementary function, but I don’t think taking square roots should be disqualified in this puzzle. > Ex, the gamma function is (n-1)! And 2 is just S(S(0)) (https://en.wikipedia.org/wiki/Peano_axioms https://en.wikipedia.org/wiki/Peano_axioms) > If I can hide numbers in a function call... It's trivially easy to always succeed. I wouldn’t call the construction given by Paul Dirac trivial. Do you think it is, or do you know of a simpler one?
- dooglius 2y agoIt sounds like you've just found one for >=2: 2, S(2), S(S(2)), ...
- Someone 2y agoThat, somewhat ironically, typically isn’t included in the set of elementary functions. ‘plus’ is, but ‘plus one’ isn’t.
- tikhonj 2y agoThat gets at what makes using additional functions like in the blog post a bit arbitrary: we don't have special notation for "+ 1" or "* 2", but we do for "^(1/2)" and "log_2". It's not hard to imagine a different world where "+ 1" or "^2" had special notation, and suddenly we'd be able to solve the question in even simpler ways. It's still a fun puzzle, it's just based more on our shared notational conventions as much as the underlying math.
- madcaptenor 2y agoFor example it would not be weird to have ++ instead of +1.
- 2y ago
- Boldened15 2y agoIt’s just about having fun at the end of the day, the gamma function and square root are considered fundamental enough. But if one wants they could try to limit to different subsets of functions and prove which numbers are possible or impossible to achieve just with those. They also say “mathematical tools” not arbitrary functions.
- vlovich123 2y agoThe Dirac solution doesn’t involve gamma, just N square roots and 2 logarithms.
- Biganon 2y agoBut the square root has a hidden operand, 2. We don't write it because by convention the default root is 2, but that still feel like cheating to me.
- necovek 2y agoThis is why people have brought up the successor function too: A + B, is, by definition B applications of Succ() on A: A + B = Succ(Succ(Succ(...Succ(A)))) So using your own argument, we could say that using '+' is simply a convention on how we can write down the above — if we insist on spelling "conventional" things out, we must be able to use the underlying elementary function[]. Or isn't a factorial n! really n(n-1)...21, so all those numbers spelled out? The mathematical root probably first appeared as a square root and was later extended to support other exponents. But is there any fun in this? As noted elsewhere, the game is in finding the rules, and a solution within those rules. []Since all the natural numbers other than 1 are defined using a Succ() functions, there's a trivial solution. But if we only limit ourselves to this most elementary operation, we can't get a 1 because that's an axiom in itself ("There exists 1" or "There is a set of cardinality 1").
- orthoxerox 2y agoI think the correct definition of A + B is A + 0 = A (or A + 1 = Succ(A), if you insist 0∉ℕ) A + Succ(B) = Succ(A) + B
- necovek 2y agoNot sure what you mean with "correct", because "correct" is an equivalence class of slightly different definitions? Eg. https://en.wikipedia.org/wiki/Peano_axioms https://en.wikipedia.org/wiki/Peano_axioms has, instead of both yours and mine: A + 0 = A A + Succ(B) = Succ(A + B) They would all be proven in the same manner, though some might be slightly stronger in relation to commutation, making some proofs easier off the bat.
- codegladiator 2y ago> If I can hide numbers in a function call Yeah this feels like those "Implemented XYZ in 1 line" import XYZ
- thfuran 2y agoThat's just what it evaluates to on integers. The standard definition of it also includes e and an integral from 0 to ∞.
- vesinisa 2y agoI think you have a point, but as others have commented "allowing functions" is not the problem, as fundamental math operations are functions. But if we limit ourselves to only functions that map (tuples of) integers to integers ((Z, Z, ...) -> Z), the spirit of the original game is retained. This disallows sqrt and log, but retains addition, subtraction and multiplication (but not division). Factorial (n!) is allowed, as is exponentiation to a non-negative power. Wonder if someone could come up with general solution within these constraints.
- amluto 2y agoI think that, if you are restricted to a finite list of n-ary functions, n>=2, each returning a single value, then you can’t do it, as you will only have finitely many valid expressions. This may be easier to see in a stack machine / RPN model. An expression is a list of operations, drawn from a finite set, each of is either “push the number 2” or something that decreases the stack size by at least 1. And you need exactly 4 pushes. So a valid expression has four pushes and at most 3 other operations, because otherwise the stack would underflow. This gives a finite number of possible expressions, but there are an infinite number of integers, so it can’t work.
- throwway120385 2y agoAre you sure the number of possible expressions is finite? Or is it countably infinite? I could in theory make an arbitrarily long expression out of the four fundamental operators, and because I can derive -1 from a finite set of operations it is possible to derive any integer from any even integer. You can also derive zero from the rules.
- lmm 2y ago> I could in theory make an arbitrarily long expression out of the four fundamental operators Not with only four inputs you can't. You can only have three operations, because you have no way of getting another input parameter.
- vesinisa 2y ago
- the__alchemist 2y agoThis was my initial thought once we got to the Gamma function. My reasoning is (I'm pretty sure it's the same as yours), why is the gamma function allowed, but not others? I could insert arbitrary functions to make the game arbitrarily solvable. While this hit me at the Gamma introduction, I think it leads back to the beginning: It's a poorly defined problem from the rules at the start of the article. It should instead define the set of allowable functions (or operations) explicitly. I think you could modify this to retain the intent of showing how the problem scales with knowledge level.
- shmerl 2y agoSince in essence you can define your own functions f that give you any number you want from 2 (and for example not defined anywhere else). I.e. rules never said you can't use any function. They are vaguely saying "any mathematical operation".
- PhillyPhuture 2y agoThere's a version of this with "4"s that I have done through 20. I have used factorials and square roots but nothing more. I felt dirty. BUT I did not use "44", which I did see in some solutions. That seemed out of bounds to me!
- unbalancedevh 2y ago> You've broken the spirit. Maybe. But I doubt many people are aware of such functions, so it's still a fun challenge.
- bell-cot 2y ago> I feel like...you've thrown the spirit of the game. It's a little "brain teaser" game, to encourage kids to practice fairly basic math. Don't take it too far out of context.
- z3t4 2y ago7 = Math.ceil(Math.random(2))+2*2+2
- MisterKent 2y agoYou don't even need gamma for 7: 2 + 2 + 2 + floor(sqrt(2)) Which feels at least more in the spirit of the challenge than gamma.
- account42 2y agoThe article already has a solution for 7 (and any other number) that doesn't use the gamma function.
- hansonkd 2y agoRelated numberphile video which goes into a different variation of using all digits in ascending and descending order: https://www.youtube.com/watch?v=-ruC5A9EzzE https://www.youtube.com/watch?v=-ruC5A9EzzE but in this case there is a unsolved gap!
- tasn 2y agoMaybe it's just me, but writing sqrt(2+2) instead of sqrt(2*2) or sqrt(2^2) was such an odd choice. It obfuscates the reason why 2=sqrt(2+2), and unnecessarily so.
- mmooss 2y agoGood point and feedback, but an odd choice by the author? It could be the phenomenon of the author's cognitive bandwidth being consumed by everything in the article, including each argument, the overall argument, the writing, the formatting, etc. etc., and with time pressures. The critic can focus at their leisure on one point, with bandwidth to spare - and so it's obvious! :)
- tasn 2y agoI agree it potentially wasn't a conscious choice, but it's still interesting nonetheless. I wasn't criticizing him for this, but rather fascinated that this is the variant that was chosen.
- hinkley 2y agoSpeaking of odd choices: 12 = 2 * (2+2+2) Is a hell or a lot simpler than using complex numbers. Might be a different example for that would have been better.
- eliben 2y agoSorry, the intention was just to show a cool use of complex numbers, not claim this is the simplest method to generate 12 which is pretty simple, as you demonstrate.
- axus 2y agoMaybe there's a "golf score" somewhere that rewards less expensive operations. The "Dirac hack" would run up a lot of points.
- eliben 2y agoReally? But why? All of 2+2, 2*2 2^2 are trivially 4, and sqrt(4)=2 so why is the + more odd than others?
- volemo 2y agoI kinda feel that's cheating and each square root requires a two to use it.
- grayfaced 2y agoThe problem is allowing arbitrary numbers of unary operators. If you allowed ++ increment it would be trivialized even easier. Could even do all complex numbers with only 2 twos.
- account42 2y agoIf you don't allow arbitrary numbers of unary operators and only a finite set of binary operators then you will only be able to represent a finite number of numbers. You need at least one "useful" unary operator for the problem to remain interesting.
- pinoy420 2y ago2/2+2/2… Then you just add it multiple times And if 0 is an integer. 2/2-2/2
- Boldened15 2y agoDoesn’t seem like the author is recursively building solutions, so this doesn’t work.
- madflame991 2y agoHere are some values that are (understandably) not listed on the blog. They happen only due to the limited precision of floating point formats. 128 = √(2 / √√(√2 - (2 / √2))) 8192 = √√(2 / ((√2 * √2) - 2)) 16384 = (2 / √√(√2 - (2 / √2))) 67108864 = √(2 / ((√2 * √2) - 2)) 134217728 = (2 / √(√2 - (2 / √2))) 4503599627370496 = (2 / ((√2 * √2) - 2)) 9007199254740992 = (2 / (√2 - (2 / √2))) 6369051672525773 = (√2 / (√2 - (2 / √2))) I found these by accident a long time ago but kept them because they do "work". Try to input one expression in the lil box in https://www.wolframalpha.com/?source=nav https://www.wolframalpha.com/?source=nav and they will quickly evaluate to these values; the charade goes away after you press Enter and get the (mathematically) correct answer. My old solvers from what feels like a previous life: https://madflame991.blogspot.com/2013/02/four-fours.html https://madflame991.blogspot.com/2013/02/four-fours.html https://madflame991.blogspot.com/2013/02/return-of-four-fours.html https://madflame991.blogspot.com/2013/02/return-of-four-four... That was fun
- lifthrasiir 2y agoWhen everything is an IEEE 754 floating point number, a mathematically "linear" function can indeed be coerced into anything: http://tom7.org/grad/ http://tom7.org/grad/
- svat 2y agoNice! Looking into them a bit deeper, they all rely on two facts involving quantities that are off by 1 ulp: √2 - 2/√2 as a float64 is exactly equal to 2^{-52} √2 * √2 as a float64 is exactly equal to 2 + 2^{-51} and all other calculations after that are mathematically exact. For example: √(2 / √√(√2 - (2 / √2))) := √(2 / √√(2^{-52})) = √(2 / 2^{-13}) = 2^7 = 128 and √√(2 / ((√2 * √2) - 2)) := √√(2 / 2^{-51}) = √√(2^{52}) = 2^{13} = 8192 In your last one, 6369051672525773 = 2^{52} * 1.4142135623730951454746218587388284504413604736328125 (https://float.exposed/0x4336a09e667f3bcd https://float.exposed/0x4336a09e667f3bcd) where the second value is the exact value of the floating-point representation of √2 (i.e. the closest representable-in-float64 value to √2).
- ziofill 2y agoThis is amazing, but there are a lot of 2's hiding in those sqrt symbols
- xandrius 2y agoAm I missing something or 7 is simply 2 + 2 + 2 + 2/2? All those are allowed, so what's the problem?
- omoikane 2y agoI like these games, and I would say more fun when using a larger number that has more factors, for example 120. 120 is among the superior highly composite numbers: https://en.wikipedia.org/wiki/Superior_highly_composite_number https://en.wikipedia.org/wiki/Superior_highly_composite_numb...
- kazinator 2y ago> There's just one small wrinkle: it uses three instances of the digit 2, not four. One small wrinkle, if you ignore the fact that the root notation conceals exponentiation by 1/2, by making that common value a default. That's a lot of hidden 2's!
- xelxebar 2y agoRoot notation isn't really _concealing_ anything. The fact that it's mostly equivalent to exponentiation by half is a theorem. Do we need to admit that 2 is concealing 1+1, thus making the game impossible? Given the prevalence of quadratic polynomials over higher-order ones, sqrt does feel somewhat more fundamental than arbitrary exponentiation. Lots of people have pointed out the farcity of the game after allowing fancy functions, but IMHO, there is a lot of fun in just finding satisfying solutions, without the need for specific rule limitations.
- kazinator 2y agoThe root notation is a syntax with a place for a number, to specify the degree. For instance ∛ -> cube root(s). When the degree is 2, it can be omitted. So yes, the notation conceals something: its default value.
- xelxebar 2y agoI have a function f: R -> R such that f(0)=1 and f'(x)=f(x). Is this concealing a parameter? It turns out we can deduce that f(x)=e^x, so f(x)=pow(e,x), so maybe? But wait, is pow concealing another parameter? Indeed, exponentiation is just (a completion over) repeated multiplication; multiplication is repeated addition, and addition repeated succesorship. It's straightforward to show that pow(x,y)=f(2,x,y) where f(n,x,y) encodes said hierarchy. But wait! f is a function, which is a set of 2-tuples, so we have another "hidden" parameter. It's also essentially part of Fast growing hierarchy[0] functions. Or what if we extend to complex numbers? Is the imaginary axis degree of freedom another hidden parameter? Et cetera ad infinitum... So, if you want to say that sqrt(x) has a hidden parameter, you're just making an arbitrary claim unless you accept it is concealing an unbounded number of hidden parameters. Or we can just do the obvious thing and say that sqrt(x) has one parameter. [0]:https://googology.fandom.com/wiki/Fast-growing_hierarchy https://googology.fandom.com/wiki/Fast-growing_hierarchy
- svat 2y agoSee also: "Representing numbers using only one 4" written by a 26-year-old Donald Knuth in 1964 (https://www.jstor.org/stable/2689238 https://www.jstor.org/stable/2689238 reprinted as Chapter 10 of his Selected Papers on Fun and Games) — it uses the single digit 4, and the three operations √x (square root), ⌊x⌋ (floor, i.e. greater integer not greater than), and x! (factorial), and ends with a (still unsolved) conjecture about whether every integer can be represented in this way. The appendix (written for the book in 2011) points out an earlier (1962) 1.5-page paper π in Four 4's by J. H. Conway and M. J. T. Guy, written when they were students at Cambridge, that has a similar idea: https://archive.org/details/eureka-25/page/18/mode/1up?view=theater https://archive.org/details/eureka-25/page/18/mode/1up?view=... For example, 5 = ⌊√√√√√(4!)!⌋ because 24! lies between 5^{32} and 6^{32}.
- jansan 2y agoIs using a primorial permitted? 7 = (2+2)#+2/2 https://en.wikipedia.org/wiki/Primorial https://en.wikipedia.org/wiki/Primorial
- everfree 2y agoYou don't need the gamma function to get to 7. You can stay at an Algebra 1 level. I solved the puzzle for 1-10 before looking at the answers, and this was my solution for 7: ⌊√222⌋/2 or more readably: floor(sqrt(222)) / 2
- deleted 2y ago[deleted]
- tantalor 2y ago> use any mathematical operations Okay, then this is easy, just use the successor function. S(n) = n+1 6 = 2*2*2-2 7 = S(2*2*2-2) 8 = S(S(2*2*2-2)) Etc.
- miningape 2y agolambda calculus has entered the chat
- Buttons840 2y agohttps://wiki.haskell.org/Peano_numbers https://wiki.haskell.org/Peano_numbers
- Hamuko 2y agoI feel like having a 1 on the first line is cheating given the constraint "using no other digits".
- tessierashpool9 2y agolog is also using another digit.
- tantalor 2y agoBy that argment you shouldn't be able to use factorial function either, because that has a "hidden 1" too: fac(n) = n * fac(n-1) n>0 = 1 n=0
- virgulino 2y agoThere's the classic “four fours”, which I learned as a child in the book “The Man Who Counted”. https://en.wikipedia.org/wiki/Four_fours https://en.wikipedia.org/wiki/Four_fours https://en.wikipedia.org/wiki/The_Man_Who_Counted https://en.wikipedia.org/wiki/The_Man_Who_Counted
- TZubiri 2y agoThat's the one! That's how I learned about false induction. I also liked the one about the men who were lined up and had something on their backs and they had to guess what it was.
- dwheeler 2y agoThat's version I learned as a kid. You might enjoy this page of mine: The Definitive Four Fours Answer Key https://dwheeler.com/fourfours/ https://dwheeler.com/fourfours/
- floodle 2y agoI love this: > Note that these are large files; both are over 1.6 Megabytes, so don’t load these if you have a slow Internet connection Just shows how far internet speeds have come...
- deleted 2y ago[deleted]
- mbfg 2y agoi thought the famous puzzle was 4, 4s
- Lerc 2y agoI think my preference is more towards conciseness. I made a stack machine with single character instructions and needed to solve a variation of this problem. I had just the digits 0 through 9. The characters '23' would be push 2 followed by push 3. To actually represent the number 23 you would use 45*3+ or something similar. That left me with the problem of how to encode each integer in the fewest characters. Tools at hand. The digits 0 through 9 'P': Pi '*': (a * b), '/': (a / b), '-': (a - b), '+': (a + b), 's': sin(a), 'c': cos(a), 'q': sqrt(a), 'l': log(a), '~': abs(a), '#': round(a), '$': Math.floor(a), 'C': clamp(a), '<': min(a, b), '>': max(a, b), '^': pow(a, b), 'a': atan2(a, b), '%': positiveMod(a, b), '!': (1 - a), '?': (a <= 0 ? 0 : 1) 'o': a xor b scaled by c; ((a*c) xor (b*c))/c 'd': duplicate the top stack entry ':': swap the top two stack entries ';': swap the top and third stack entries I have wondered about revisiting the stack machine with a complex number stack to see what I can come up with. (Next time I post something like this I am not going to use my phone)
- Y_Y 2y agoThe answer in general may be uncomputable. https://en.wikipedia.org/wiki/Kolmogorov_complexity https://en.wikipedia.org/wiki/Kolmogorov_complexity
- Lerc 2y agoAHH but in practice you are limited to 50 characters. https://c50.fingswotidun.com/ https://c50.fingswotidun.com/ Which gives you a finite problem. The VM cannot loop or define functions (yet, anyway) so it doesn't go all busy beaver on you.
- Y_Y 2y agoI thought it would be possible to use the (undocumented?) T instruction and use the time variable as persistent memory, but it seems to reset each step. It would be nice if there were a way to store things across time steps!
- westurner 2y ago> I've read about this story in Graham Farmelo's book The Strangest Man: The Hidden Life of Paul Dirac, Quantum Genius. "The Strangest Man": https://en.wikipedia.org/wiki/The_Strangest_Man https://en.wikipedia.org/wiki/The_Strangest_Man Four Fours: https://en.wikipedia.org/wiki/Four_fours https://en.wikipedia.org/wiki/Four_fours : > Four fours is a mathematical puzzle, the goal of which is to find the simplest mathematical expression for every whole number from 0 to some maximum, using only common mathematical symbols and the digit four. No other digit is allowed. Most versions of the puzzle require that each expression have exactly four fours, but some variations require that each expression have some minimum number of fours.
- westurner 2y ago"Golden ratio base is a non-integer positional numeral system" (2023) https://news.ycombinator.com/item?id=37969716 https://news.ycombinator.com/item?id=37969716 : > What about radix epi*i, or just e?"
- deleted 2y ago[deleted]
- gabrielsroka 2y agohttps://news.ycombinator.com/item?id=43149883 https://news.ycombinator.com/item?id=43149883
- dang 2y agoThanks—I think we'll merge the comments hither because this submission was the first, and because the other submitter currently has a second article on the frontpage right now.
- SilasX 2y agoRelated: there as a reverse engineering/CTF challenge (which shall remain nameless to prevent you from cheating) where my solution involved injecting shellcode that adds specific number to the stack pointer. But your shellcode -- including the number(s) you add -- can only involve bytes from the ascii alphanumeric set. So I used a SAT solver to find a combination of numbers, not using prohibited bytes, that add up to the number I really want. https://docs.google.com/presentation/d/19K7SK1L49reoFgjEPKCFCPsJeL_p2coMAVlCLpzbriw/edit#slide=id.p https://docs.google.com/presentation/d/19K7SK1L49reoFgjEPKCF...
- unification_fan 2y agoThis is just Peano arithmetic with extra steps
- pil0u 2y agoThis reminds me of this mobile game Tchisla[0] where you have to build all numbers up to 1000 (10000?) using only a given digit and a couple of operators (including sqrt and !) It was a lot of fun, you tend to develop strategies and the game has a simple, efficient UX. Fair warning, it is very time consuming. [0] https://apps.apple.com/fr/app/tchisla-number-puzzle/id1100623105?platform=iphone https://apps.apple.com/fr/app/tchisla-number-puzzle/id110062...
- TZubiri 2y agoI think I saw this one on an ancient arab math problems book. But it may be apocryphal, not sure how many tools they would have had, factorial symbols? At any rate they invented algebra so maybe there's something to it Edit: It was the man who counted, definitely apocryphal, as it was written in the 20th century
- crorella 2y agoI used to play this game when a kid but with four number 4 instead. Just operators (+,!,/,-,*, ^, etc)
- thijson 2y agoSame here, our sixth grade teacher assigned it. I wrote a BASIC program on the TRS80 to try to find solutions. Printed each solution it found to the dot matrix printer.
- BobbyTables2 2y agoVery clever, but using an arbitrary number of square roots seems almost cheating since it’s practically another symbol for a “2” (exponent of 1/2)
- mandarax8 2y agoI would allow it, given they physically write down all N square root on a piece of paper.
- nubinetwork 2y agoI came across a similar video a couple weeks ago about how many ways you can turn a 2 into a 4... https://youtu.be/VEQOv61Gveg https://youtu.be/VEQOv61Gveg
- gricardo99 2y agoGetting to 7 is notoriously difficult What am I missing? 2 * 2 * 2 - 2/2
- chasingbrains 2y agoIs 7 really notoriously difficult to define? 7 = 2/2 + 2 + 2 + 2
- xatax 2y agoYou used five twos.
- z3t4 2y ago9 = 22 / 2 - 2
- hackburg 2y ago[dead]
- bicepjai 2y agoWow, it’s been ages since I stumbled upon a math problem that’s not only a blast to solve but also tells a tale! This one’s got it all: easy to grasp, deliciously complex, and comes with a side of drama where some genius totally threw a wrench in the works for everyone else. Bravo!