Giriş
Dobble / SpotIt , insanların aynı simgeyi bir çift kartta en kısa sürede tespit etmeleri, göstermeleri ve bir sonraki çifte geçmeleri gereken bir kart oyunudur. Her kartın birden fazla sembolü vardır (normal sürümde 8), ancak her kart çifti arasında tam olarak bir tane ortaktır.
Oyunun fiziksel kopyasından bir örnek:
Meydan okuma
Her kart için sembol setini (tek ascii karakterleri) ve tek kartta sembol sayısını veren bir program yazın, her kart için sembol içeren çıkış listeleme kartları üretir. Açıkçası birçok eşdeğer kombinasyon vardır, programınız verilen giriş için en büyük miktarda kart üreten kombinasyonlardan herhangi birini yazmak zorundadır.
Bu bir kod golf, çok daha kısa kod, daha iyi.
En karmaşık vaka için hesaplamanın evrenin sıcak ölümünden önce bitip bitmeyeceği de harika olurdu.
Giriş
/ Stdin işlevine ilişkin iki argüman (seçiminiz)
Bunlardan ilki, 'ABCDE' veya ['A', 'B', 'C', 'D', 'E'] gibi bir dizi sembol koleksiyonu - dize, set, liste, akış gibi format seçiminiz veya dil seçimi için deyimsel ne olursa olsun. Karakterler [A-Za-z0-9] kümesinden verilecek, yinelenmeyecektir (bu nedenle maksimum giriş sembolü kümesinin boyutu 62'dir). böylece 6 sembollü kılıf için de "yX4i9A" alabilirsiniz).
İkinci argüman, tek karttaki sembollerin miktarını gösteren tamsayıdır. Simge kümesinin boyutundan <= olacaktır.
Çıktı
Her biri tek kart için simgeler içeren yeni satırlarla ayrılmış birden fazla satır yazdırın.
Örnekler
ABC
2
>>>>
AB
BC
AC
Veya
ABCDEFG
3
>>>>
ABC
BDE
CEF
BFG
AEG
CDG
ADF
Veya
ABCDE
4
>>>>
ABCD
İpuçları
- Üretilen kart sayısı, ayrı sembollerin miktarından fazla olamaz ve birçok kombinasyonda oldukça küçük olacaktır.
- Sorunun matematik tarafında yardıma ihtiyacınız varsa bazı matematik arka planlarını okumak isteyebilirsiniz
Bu benim ilk kod golf meydan okuma, bu yüzden biçimlendirme / stil ile olası sorunları affet - yorumlarda işaret ederseniz hataları düzeltmeye çalışacağım.
('abcdefghijklmnopqrstu', 5)
-> ['abcde', 'afghi', 'ajklm', 'anopq', 'arstu', 'bfjnr', 'bgkpt', 'bhlou', 'bimqs', 'cfkqu', 'cgjos', 'chmpr', 'cilnt', 'dfmot', 'dglqr', 'dhkns', 'dijpu', 'eflps', 'egmnu', 'ehjqt', 'eikor']
veya başka bir 21 kartlı çalışma çözümü. (Bunun 4. derecenin projektif sonlu düzlemi olduğunu unutmayın).