Al multiplicar monomios en la base de Milnor para el álgebra de Steenrod, parte del algoritmo implica enumerar ciertas "matrices permitidas".
Dadas dos listas de números enteros no negativos r 1 , ..., r m y s 1 , ..., s n , una matriz de números enteros no negativos X
es permisible si
La suma de la columna j es menor o igual que s j :
La suma de la i-ésima fila ponderada por potencias de 2 es menor o igual que r i :
Tarea
Escribir un programa que tiene un par de listas r 1 , ..., r m y es 1 , s 1 , ..., s n y calcula el número de matrices permisibles para estas listas. Su programa puede tomar opcionalmente myn como argumentos adicionales si es necesario.
Estos números pueden ingresarse en cualquier formato que le guste, por ejemplo, agrupados en listas o codificados en unario, o cualquier otra cosa.
La salida debe ser un entero positivo
- Se aplican lagunas estándar.
Puntuación
Este es el código de golf: la solución más corta en bytes gana.
Ejemplos:
Para [2]
y [1]
, hay dos matrices permitidas:
Para [4]
y [1,1]
hay tres matrices permitidas:
Para [2,4]
y [1,1]
hay cinco matrices permitidas:
Casos de prueba:
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