Bei der Multiplikation von Monomen auf Milnor-Basis für die Steenrod-Algebra werden im Rahmen des Algorithmus bestimmte "zulässige Matrizen" aufgelistet.
Gegeben sind zwei Listen nichtnegativer Ganzzahlen r 1 , ..., r m und s 1 , ..., s n , eine Matrix nichtnegativer Ganzzahlen X
ist zulässig, wenn
Die Summe der j-ten Spalte ist kleiner oder gleich s j :
Die Summe der mit Zweierpotenzen gewichteten i-ten Zeile ist kleiner oder gleich r i :
Aufgabe
Schreiben Sie ein Programm, das ein Paar Listen r 1 , ..., r m und s 1 , s 1 , ..., s n verwendet und die Anzahl der zulässigen Matrizen für diese Listen berechnet. Ihr Programm kann gegebenenfalls m und n als zusätzliche Argumente verwenden.
Diese Zahlen können in einem beliebigen Format eingegeben werden, zum Beispiel in Listen gruppiert oder in Unary oder irgendetwas anderem codiert.
Die Ausgabe sollte eine positive Ganzzahl sein
- Es gelten Standardlücken.
Wertung
Das ist Codegolf: Kürzeste Lösung in Bytes gewinnt.
Beispiele:
Für [2]
und [1]
gibt es zwei zulässige Matrizen:
Für [4]
und [1,1]
gibt es drei zulässige Matrizen:
Für [2,4]
und [1,1]
gibt es fünf zulässige Matrizen:
Testfälle:
Input: [1], [2]
Output: 1
Input: [2], [1]
Output: 2
Input: [4], [1,1]
Output: 3
Input: [2,4], [1,1]
Output: 5
Input: [3,5,7], [1,2]
Output: 14
Input: [7, 10], [1, 1, 1]
Output: 15
Input: [3, 6, 16, 33], [0, 1, 1, 1, 1]
Output: 38
Input: [7, 8], [3, 3, 1]
Output: 44
Input: [2, 6, 15, 18], [1, 1, 1, 1, 1]
Output: 90
Input: [2, 6, 7, 16], [1, 3, 2]
Output: 128
Input: [2, 7, 16], [3, 3, 1, 1]
Output: 175