Benzer rakamlar
Yanlarındaki oranlar aynıysa, iki dikdörtgen benzerdir .
Bu iki dikdörtgeni göz önünde bulundurun; 5 satır uzunluğunda ve 11 karakter genişliğinde bir dikdörtgen:
===========
===========
===========
===========
===========
ve 10 çizgi uzunluğunda ve 22 karakter genişliğinde bir dikdörtgen:
======================
======================
======================
======================
======================
======================
======================
======================
======================
======================
Bu şekiller benzerdir, çünkü yanlarındaki oranlar aynıdır. İle (resmi olarak ifade etmek gerekirse kısa tarafı olan ve uzun kenarı olmak üzere):
Ayrıca şunları da yapabilirsiniz:
Meydan okuma
"Ana" bir dikdörtgen ve bazı "diğer" dikdörtgenler alan ve "diğerlerinin" hangisinin "ana" ile aynı olduğunu yazdıran bir program veya işlev yazın.
Girdi
Bir şekil ve şekillerin listesi. Her şekil, dikdörtgenin genişliğini ve yüksekliğini belirten sıfır olmayan 2 pozitif tam sayıdan oluşur. Örneğin, bu:
(4,2), (3,9)
iki dikdörtgen, bir 4x2 ve bir 3x9'u gösterir. Ancak girişin tam formatı istediğiniz olabilir.
Çıktı
"Diğer" in göstergeleri "ana" ile benzerdir. Endekslerin 0- veya 1-temelli olup olmadığını ve çıktının tam biçimini ve sırasını seçebilirsiniz.
Örnek program
Python'da:
main = eval(raw_input()) # The main rectangle.
rects = eval(raw_input()) # The list of rectangles.
similar = set()
for i, rect in enumerate(rects):
if max(main)*min(rect) == min(main)*max(rect): # Cross-multiply
# They are similar.
similar.add(i)
print similar
Örnek giriş ve çıkış
Giriş:
(1, 2)
[(1, 2), (2, 4)]
Çıktı:
set([0, 1])
Giriş:
(1, 2)
[(1, 9), (2, 5), (16, 8)]
Çıktı:
set([2])
Kazanan
Bu kod golf, bu yüzden en kısa gönderim kazanır.
notlar
- Bu söylemeden geçmeli, ancak standart boşluklar yasaklandı .
- Benzer rakamları bulmak için hiçbir yerleşik kullanılamaz. (Var olup olmadığını bile bilmiyorum, ama şaşırmam!)
[(1,2), (2,4), (1,9), (2,5), (16,8)]
, okunur [0,1,4]
ve [1,2,5]
izin veya olabilir biz de çıktı [1,1,0,0,1]
ya [(1,2), (2,4), (16,8)]
?
[1.0 2.0]
edilebilir bir giriş formatı olur mu?