Steenrod cebiri, cebirsel topolojide ortaya çıkan önemli bir cebirdir. Steenrod cebiri "Steenrod kareleri" adı verilen operatörler tarafından üretilir, her pozitif tamsayı i için bir tane vardır. Kareleme işlemlerinde "kabul edilebilir monomiyallerden" oluşan Steenrod cebiri için bir temel vardır. Hedefimiz bu temeli oluşturmaktır.
Her tamsayı bir sonrakinin en az iki katı ise , pozitif tamsayı dizisine kabul edilebilir denir . Örneğin ve[7,2,1]
olduğu için kabul edilebilir . Öte yandan, olduğu için kabul edilemez . (Topolojide sekans için yazarız ).[3,2]
[7,2,1]
Derecesi bir dizinin 's girişlerinin toplamıdır. Bu yüzden, örneğin, derecesi [7,2,1]
olan . Fazla kabul edilebilir bir sekansın bu nedenle, birinci eleman eksi geri kalan elemanlarının toplamı olan aşırı sahip .[7,2,1]
Görev
Bir çift pozitif tamsayı alan (d,e)
ve kabul edilebilir tüm derece d
ve daha fazla dizi dizisine eşit veya daha küçük bir çıktı veren bir program yazın e
. Çıktı bir kümedir, bu nedenle kabul edilebilir dizilerin sırası önemli değildir.
Örnekler:
Input: 3,1
Output: [[2,1]]
Burada toplam 3 ile kabul edilebilir diziler arıyoruz . İki seçenek vardır [3]
ve [2,1]
. ( [1,1,1]
ve [1,2]
toplam 3'e sahip ancak kabul edilemez). Fazlalığı [3]
3 ve aşırı [2,1]
olan . Böylece, fazla tek dizi olup .[2,1]
Input: 6, 6
Output: [[6], [5, 1], [4, 2]] (or any reordering, e.g., [[5,1],[4,2],[6]])
Fazlalık her zaman dereceden daha az veya ona eşit olduğundan fazla koşulumuz yoktur. Böylece, sadece seçeneklerdir derece 6. tüm kabul edilebilir dizilerini bulmaya çalışıyorsanız [6]
, [5, 1]
ve [4, 2]
. (Bunlar fazla , ve .)
Input: 10, 5
Output: [[7,3], [7,2,1], [6,3,1]]
Derece 10'un kabul edilebilir dizileri şunlardır:
[[10], [9,1], [8,2], [7,3], [7,2,1], [6,3,1]]
Bunlar sırasıyla , , , , ve , bu nedenle son üçü çalışır.
puanlama
Bu kod golf: Bayt en kısa çözüm kazanır.
Test senaryoları:
Çıktının yeniden sıralanması eşit derecede iyidir, bu nedenle girdi (3, 3)
, çıktı [[3],[2,1]]
veya [[2,1],[3]]
eşit derecede kabul edilebilirdir (ancak [[1,2],[3]]
değildir).
Input: 1, 1
Output: [[1]]
Input: 3, 3
Output: [[2,1], [3]]
Input: 3, 1
Output: [[2,1]]
Input: 6, 6
Output: [[6], [5, 1], [4, 2]]
Input: 6, 4
Output: [[5,1], [4,2]]
Input: 6, 1
Output: []
Input: 7, 7
Output: [[7], [6,1], [4,2,1], [5,2]]
Input: 7,1
Output: [[4,2,1]]
Input: 10, 10
Output: [[10], [9,1], [7,2,1], [6,3,1], [8,2], [7,3]]
Input: 10, 5
Output: [[7,3], [7,2,1], [6,3,1]]
Input: 26, 4
Output: [15, 7, 3, 1]
Input: 26, 6
Output: [[16, 7, 2, 1], [16, 6, 3, 1], [15, 7, 3, 1], [16, 8, 2], [16, 7, 3]]