Plus ardu :
Compter le nombre d'entiers plus petits que
def Comptage(n,t) :
if n==0 :
return [1]+t*[0]
if n>0 :
LI=Comptage(n-1,t)
LO=[]
for u in range(t+1) :
m=max(0,u-9)
s=sum(LI[m:u+1])
LO.append(s)
return LO%time Comptage(6,10)[-1]%time Comptage(12,20)[-1]const f = (K, N) => {
let old = new Map([[0, 1]]) // sum -> number of combination leading to sum
for (let i = 0; i < K; ++i) {
const m = new Map()
for (const [sum, n] of old) {
for (let j = 0; j < 10; ++j) {
const newSum = j + sum
if (newSum > N) {
break
}
m.set(newSum, (m.get(newSum) || 0) + n)
}
}
old = m
}
return old.get(N)
}
console.log('tot:', f(12, 20))
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 47 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :