Retour aux défis
Moyen 0 résolus 0 % de réussite

Compter les séquences de dés

Comptez les séquences ordonnées de lancers de dé ayant un total donné.

Ce que vous allez apprendre

  • Construire les réponses à partir de totaux plus petits
  • Écrire une récurrence sur le dernier lancer
  • Prendre les résultats modulo un grand nombre premier

Problème

Un dé standard produit un entier de 1 à 6. Comptez toutes les séquences ordonnées non vides de résultats dont la somme est égale à target. Les ordres différents comptent séparément. Retournez le nombre de séquences modulo 1 000 000 007.

Implémentez dice_combinations(target).

Entrée

target : La somme requise de tous les lancers.

Sortie

Retournez le nombre de séquences modulo 1 000 000 007.

Contraintes

1 ≤ target ≤ 1 000 000. Prendre un compte modulo 1 000 000 007 signifie retourner son reste après division par ce nombre.

Exemples

Exemple 1
Entrée :
target = 2

Sortie attendue :
expected = 2
Entrée :
long long target = 2;

Sortie attendue :
long long expected = 2;
Entrée :
long target = 2;

Sortie attendue :
long expected = 2;

Explication

Les deux séquences sont [2] et [1, 1].

Exemple 2
Entrée :
target = 4

Sortie attendue :
expected = 8
Entrée :
long long target = 4;

Sortie attendue :
long long expected = 8;
Entrée :
long target = 4;

Sortie attendue :
long expected = 8;

Explication

Les séquences sont [4], [1,3], [3,1], [2,2], [1,1,2], [1,2,1], [2,1,1] et [1,1,1,1].

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Considère les petites sommes comme des briques pour construire la cible.

Indice 2

Utilise un comptage courant pour chaque somme à partir des six sommes précédentes.

Indice 3

Attention à appliquer le modulo à chaque addition et à traiter séparément les sommes inférieures à 1.

Complexité attendue

temps O(target), espace supplémentaire O(target)

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.