Der Hintergrund
Also kennen wir alle den klassischen Beweis, der so aussieht:
a = b
a² = ab
a² - b² = ab - b²
(ab) (a + b) = b (ab)
(a + b) = b
b + b = b
2b = b
2 = 1 (Ha ha!)
von Natürlich ist der Fehler, dass Sie nicht durch 0 teilen können. Da a = b, a - b = 0, gab es eine versteckte Division durch 0.
Die Herausforderung
Sie müssen diesen Beweis replizieren. Erklären Sie zunächst zwei ganze Zahlen a und b (es ist egal, wie Sie sie nennen) als gleich. Dann deklarieren Sie aMod und bMod als änderbare Versionen von a und b und anfangs gleich a und b. Sie müssen beide mit a multiplizieren und dann b * b von beiden subtrahieren. Sie müssen dann durch a - b dividieren und dann durch b (oder a) dividieren, um zu erhalten. Drucken Sie dann aMod und bMod mit einem Gleichheitszeichen dazwischen aus.
Die Hinterhältigen
Da Sie a und b als gleich deklariert haben, verursacht a - b = 0 und Teilen durch 0 natürlich einen Fehler. Sie müssen es also kreativ vortäuschen. Da Sie versuchen, den Proof zu replizieren, darf das Ergebnis aller Operationen auf aMod und bMod beim Drucken nicht gleich sein. Sie müssen nicht genau 2 und 1 sein, sondern nur zwei Zahlen, die nicht gleich sind.
Hier ist ein Beispiel:
#include <iostream>
#define subtract(a, b) a - b
using namespace std;
int main()
{
int a = 4, b = 4;
int a_2 = a, b_2 = b;
a_2 *= a;
b_2 *= b;
a_2 -= b * b;
b_2 -= b * b;
a_2 = a_2 / subtract(a, b);
b_2 = b_2 / subtract(-b, -a); // a - b == (-b) - (-a)
a_2 /= a;
b_2 /= a;
cout << a_2 << " = " << b_2 << " because I did the same operations on both of them.";
return 0;
}
Vielleicht nicht die beste, aber sie verdeutlicht den Punkt.
Bonus Unterhand
Anstatt das Gleichheitszeichen auszudrucken, können Sie auch nur die beiden Variablen (aMod und bMod) ausdrucken und dann einen Code zum Vergleichen der beiden Variablen auf Gleichheit verwenden true
.
Denken Sie daran, dies ist ein Beliebtheitswettbewerb, daher gewinnt die höchste Anzahl von Upvotes.
Eine neue Version der Mathematik namens Mathematik 2.0 hat außerdem Standardlücken verwendet, die einen Beweis automatisch ungültig machen.