Bu, internette bir yerde gördüğüm bir matematik probleminden ilham almıştı ama nerede olduğunu hatırlamıyorum (GÜNCELLEME: Asıl problem, matematik bilmecesinde subreddit bulundu, bunun mümkün olması kaydıyla, bu Matematik SE gönderisini görmek için) Herhangi bir rasgele tamsayı çifti için (eğer hatırladığım kadarıyla, verilen herhangi bir çift için mümkündü), aşağıdaki işlemin bir kanıtı varsa:
Bir çift tamsayı verilirse, j ve k, bunlardan birini ikiye katlar ve diğerini ekler, böylece bir çift yeni tam sayı elde edilir, yani, (j, k) -> (j + 1, k * 2) veya (j) * 2, k + 1). Ardından, bu sayının tam sayılarla eşit olmasını sağlamak amacıyla bu tam sayılarla tekrarlayın.
Verilen bu örnekler mutlaka en uygun değildir, ancak bu işlemin pozitif, negatif veya sıfır olan herhangi bir tamsayıda nasıl yapılabileceğini gösterir:
(2, 5) -> (3, 10) -> (6, 11) -> (12, 12)
(5, 6) -> (6, 12) -> (7, 24) -> (14, 25) -> (28, 26) -> (56, 27) -> (112, 28) -> (113, 56) -> (226, 57) -> (227, 114) -> (228, 228)
(0, 2) -> (1, 4) -> (2, 5) -> (3, 10) -> (6, 11) -> (12, 12)
(-4, 0) -> (-3, 0) -> (-2, 0) -> (-1, 0) -> (0, 0)
(3, -1) -> (6, 0) -> (12, 1) -> (13, 2) -> (14, 4) -> (15, 8) -> (16, 16)
(-4, -3) -> (-8, -2) -> (-16, -1) -> (-32, 0) -> (-31, 0) -> ... -> (0, 0)
Meydan okuma
İki tamsayı verilen bir program oluşturun, bu tamsayıları art arda artırarak ve diğerini iki katına çıkararak eşitlemek için gereken adımların listesini çıkarır.
Özellikler
- Çözümün optimal olması gerekmez, ancak herhangi bir keyfi çift için sınırlı sayıda adımda çözülmesi gerekir.
Giriş iki tamsayı olmalıdır
Çıktı, her adımın sonuç tam sayılarını açıkça gösteren herhangi bir makul çıktı olabilir, örneğin:
- iki ayrı sınırlayıcıya sahip bir dize (herhangi bir sembol, boşluk, vb.), bir çiftteki her tam sayı için bir tane ve her bir çift için bir tane
- örneğin, j girişi, k: 2, 5 -> çıkış: 3,10; 6,11; 12,12
- tamsayıların listesi
- örn. giriş j, k: 2, 5 -> çıkış: [[3, 10], [6, 11], [12, 12]]
- iki ayrı sınırlayıcıya sahip bir dize (herhangi bir sembol, boşluk, vb.), bir çiftteki her tam sayı için bir tane ve her bir çift için bir tane
Girdi bir eşit sayılar çiftiyse, diğer önemsiz yanıtlarla tutarlı olduğu sürece herhangi bir şeyi yazdırabilirsiniz.
- Örneğin
- [2, 5] girişi [[3, 10], [6, 11], [12, 12]] çıkışına sahipse, giriş çiftini içermiyorsa, giriş [4, 4] hiçbir şey vermemelidir.
- [2, 5] girişi [[2, 5], [3, 10], [6, 11], [12, 12]] çıkışına sahipse, giriş çiftini içerir, sonra giriş [4, 4]; çıkış [[4, 4]].
- Örneğin
Standart IO yöntemleri uygulanır ve standart boşluklar yasaklanır
Bu kod golf yani bayt cinsinden en kısa cevap kazanır
[(12,12),(6,11),(3,10),(2,5)]
giriş için (2,5)
?