Arkaplan
Yani, hepimiz böyle giden klasik kanıtı biliyoruz:
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!)
ki Tabii ki, hata 0'a bölünemez. a = b, a - b = 0 olduğundan, 0 ile gizli bir bölünme vardı.
Meydan okuma
Bu kanıtı çoğaltmanız gerekiyor. İlk olarak, iki eşit a ve b tamsayısını (onlara ne dediğiniz önemli değildir) eşit olarak bildirin. Daha sonra aMod ve bMod'un a ve b'nin değiştirilebilir sürümleri olduğunu ve başlangıçta sırasıyla a ve b'ye eşit olduğunu bildirin. Her ikisini de a ile çarpmanız ve ardından b * b'yi her ikisinden de çıkarmanız gerekir. Daha sonra a - b ile bölmelisiniz ve sonra almak için b (veya a) ile bölmelisiniz. Ardından, aMod ve bMod'u, aralarında eşittir işaretiyle yazdırın.
Underhanded
Elbette, a ve b'yi eşit olarak bildirdiğiniz için a - b = 0 ve 0'a bölmek hataya neden olur. Bu yüzden yaratıcı bir şekilde sahte olmalısın. Ayrıca, kanıtı çoğaltmaya çalıştığınız için, aMod ve bMod üzerindeki tüm işlemlerin sonucu yazdırıldığında eşit olmamalıdır. Tam olarak 2 ve 1'e eşit olmak zorunda değiller, sadece eşit olmayan iki sayı.
İşte bir örnek:
#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;
}
Belki en iyisi değil, ama konuyu göstermektedir.
Bonus Underhanded
Eşittir işaretini yazdırmak yerine, yalnızca iki değişkeni (aMod ve bMod) yazdırabilir ve ardından iki değişkeni eşitlikle karşılaştırmak için görünen ancak gerçekte eşit olduklarını (ve bir şekilde yazdırdıklarını true
) belirten bir koda sahip olabilirsiniz .
Unutmayın, bu bir popülerlik yarışmasıdır, bu yüzden en yüksek sayıda oylar kazanır.
Ayrıca, Mathematics 2.0 adlı yeni bir matematik sürümü, standart boşlukların kullanımını otomatik olarak bir kanıtı geçersiz kılmıştır.