İlgili, ancak bu yalnızca pozitif tamsayılar gerektirir ve değişmeli olmak zorunda değildir
Cantor Eşleştirme İşlevi bu Wikipedia makalesinde açıklanmaktadır . Esasen, iki X ve Y değerine uygulandığında, sonuç verilen X ve Y orijinal değerlerini elde edebilecek bir işlemdir.
Göreviniz iki işlev tasarlamaktır: biri gerçekleştiren X, Y -> Z
ve diğeri gerçekleştiren Z -> X, Y
. İşte yakalama: X, Y -> Z
değişmeli olmalı. Bu araçlar Z -> X, Y
, giriş olup olmadığını belirlemek için mümkün olmayacaktır X, Y
ya Y, X
.
Bu zorluğun resmi tanımı:
Sayılabilir sonsuz bir sayı kümesi S seçin.
Aşağıdaki görevleri gerçekleştiren iki işlev tasarlayın:
- S'de sırasız bir değer çifti verildiğinde, S cinsinden bir değer döndürün
- İlk işlevden bir dönüş değeri verildiğinde, ilk işlevden geçirildiğinde giriş tamsayı olarak değerlendirilen sırasız değer çiftini döndürün. Giriş ilk işlevden bir dönüş değeri değilse, bu ters işlev davranışını umurumda değil.
Gereksinimler
- Sonuç, çalışmalar arasında aynı olmalıdır.
{a, a}
sırasız bir çift
Not: Bir kanıt sağlarsanız cevabınızın benden bir upvote alma olasılığı daha yüksektir, ancak yanıt aldığımda cevapları test edeceğim ve oldukça işe yaradığından emin olduktan sonra cevaplayacağım.
1,2
çiftlerden biri ne zaman , 1,3
potansiyel bir çift de olabilir (her ikisi de kullanım 1
)?
f
ve bunun tersi g
, sorted((x, y))
aynı olmalıdırsorted(g(f(x, y)))