Le nombre de partitions d'un entier est le nombre de façons dont cet entier peut être représenté comme une somme d'entiers positifs.
Par exemple:
5
4 + 1
3 + 2
3 + 1 + 1
2 + 2 + 1
2 + 1 + 1 + 1
1 + 1 + 1 + 1 + 1
Il existe 7 façons de représenter le nombre 5, donc 7 est le numéro de partition correspondant au nombre 5.
Numéros de partition: OEIS: # A000041
instructions
Écrivez un programme qui prend un entier positif en entrée et génère les deux nombres qui génèrent les deux numéros de partition les plus proches du numéro d'entrée.
- L'entrée doit être un entier positif.
- Si l'entrée n'est pas un numéro de partition, la sortie doit être les 2 entiers positifs différents qui génèrent les deux numéros de partition les plus proches du numéro d'entrée. (Si deux numéros de partition sont des candidats égaux pour l'un des numéros de sortie, peu importe celui que vous choisissez.)
- Si l'entrée est un numéro de partition, la sortie doit être un entier positif qui génère le numéro d'entrée.
- L'entrée et la sortie peuvent être dans n'importe quel format raisonnable.
- Vous pouvez supposer que l'entrée ne dépassera pas 100 millions (par exemple, la sortie ne sera jamais supérieure à 95).
- Les fonctions intégrées pour calculer les numéros de partition ne sont pas autorisées, ainsi que d'autres failles standard .
- Il s'agit de code-golf , donc le moins d'octets gagne.
Numéros de partition: OEIS: # A000041
Exemples
Input: 66
Output: 11, 12
(Les numéros de partition qui correspondent aux numéros 11 et 12 sont 56 et 77, qui sont les deux numéros de partition les plus proches de 66.)
Input: 42
Output: 10
(Le numéro 42 est déjà un numéro de partition, il suffit donc de sortir le numéro qui correspond au numéro de partition.)
Input: 136
Output: 13, 14
(Les deux numéros de partition les plus proches de 136 sont en fait MOINS de 136 (par exemple 101 et 135), par conséquent, la sortie est 13 et 14 par opposition à 14 et 15.)
Input: 1
Output: 0 or 1
(Les deux 0 et 1 sont des sorties valides dans ce cas spécial.)
Input: 2484
Output: 26, 25 or 26, 27
(Ces deux sorties sont valides, parce que 2484 est égal d i la position de 1958 et 3010.)
Input: 4
Output: 3, 4
(Ouaip)
5
est en haut. (J'ajouterai une clarification si vous pensez que ce n'est pas assez clair.)Réponses:
Pyth , 53
Explication et plus de golf à suivre.
la source
Python 2, 179 octets
Utilise la formule récursive du théorème pentagonal d' Euler .
Appelez avec
f(2484)
. La sortie est un tuple avec un ou deux nombres.la source
Mathematica,
124123 octetsFormule pour les numéros de partition tirée de la page OEIS . (Peut ou peut ne pas tricher ... je ne pouvais pas décider.)
Usage:
Je ne réponds pas pour gagner. Et je suis sûr que cela pourrait être approfondi.
la source