Exercice 5 qualification 2021: entiers trop grands pour Rust

1 nov. 2020 à 11:00:30 Modifié le 1 nov. 2020 à 11:00:43

Bonjour, j'ai un algorithme qui résout l'exercice 5, mais à partir du cas n=19, les entiers avec lesquels je travaille font des overflow même en utilisant des u128 (ce qui est, à ma connaissance, le plus grand entier disponible sur Rust), pour la première partie de l'énoncé.

Bien entendu, je pourrais implémenter des entiers à taille arbitrairement grande (ou, plus rapidement, copier l'implémentation de quelqu'un d'autre), mais je pense que ce n'est pas ce qui est attendu.

Par ailleurs, je ne pense pas qu'il existe de meilleurs algorithme (comme quoi l'oeis donne de bons algorithmes ^,^). Que suis-je sensé faire?

Bonjour,

C'est possible de passer tous les tests avec chaque langage proposé. C'est à toi de décider comment représenter des entiers plus grands que ça. Même si c'est certainement un bon réflexe de regarder ce que oeis te donne, les ressources sur oeis sont plus mathématiques et moins algorithmiques, et ne te permettront pas forcément toujours de résoudre le problème.

Comme il s'agit d'un problème difficile qui ne sera très probablement pas nécéssaire pour se qualifier, je ne veux pas trop t'en dire plus pour éviter de spoil le problème.

Bon courage et bonnes recherches !

1 nov. 2020 à 17:48:12 Modifié le 1 nov. 2020 à 17:56:42

Bonjour,

je voulais plutôt savoir en fait si ça faisait parti du problème de manipuler des gros nombres (au quel cas je comptais chercher par moi-même), ou si ce n'est pas du tout le propos (soit ma solution n'est pas la bonne, soit je peux juste passer en python par exemple où ce genre d'opération est déjà prise en charge).

J'insiste parce que pour la première partie de l'exo, j'ai vraiment l'impression que faire autrement (autrement dit, une solution algorithmique) est clairement beaucoup moins efficace que l'approche oeis (pour info, sur ma machine, pas particulièrement puissante avec d'autres logiciels ouverts en python avec une implémentation des factorielles récursive donc lente, le calcul pour n=28 prend à peine quelques dixièmes de milliseconde, sachant que le temps de base pour l'exo est de 5 secondes!!!!).

Manipuler des grands nombres ne fait pas parti du problème, tu peux copier l'implémentation de quelqu'un d'autre tant que tu le marques clairement en commentaire lors de ta soumission.

Bonne soirée !

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.