Lors de la multiplication des monômes dans la base de Milnor pour l'algèbre de Steenrod, une partie de l'algorithme implique l'énumération de certaines "matrices autorisées".
Étant donné deux listes d'entiers non négatifs r 1 , ..., r m et s 1 , ..., s n , une matrice d'entiers non négatifs X
est autorisé si
La somme de la jième colonne est inférieure ou égale à s j :
La somme de la ième ligne pondérée par des puissances de 2 est inférieure ou égale à r i :
Tâche
Écrivez un programme qui prend une paire de listes r 1 , ..., r m et s 1 , s 1 , ..., s n et calcule le nombre de matrices autorisées pour ces listes. Votre programme peut éventuellement prendre m et n comme arguments supplémentaires si nécessaire.
Ces nombres peuvent être saisis dans n'importe quel format souhaité, par exemple regroupés dans des listes ou codés en unaire, ou autre chose.
La sortie doit être un entier positif
- Des échappatoires standard s'appliquent.
Notation
Voici le code golf: la solution la plus courte en octets gagne.
Exemples:
Pour [2]
et [1]
, il existe deux matrices autorisées:
Pour [4]
et [1,1]
il existe trois matrices autorisées:
Pour [2,4]
et [1,1]
il existe cinq matrices autorisées:
Cas de test:
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