Étant donné un nombre n
et une l
liste de limites supérieures, les nombres qui peuvent être créés en multipliant deux ou plusieurs nombres composés uniquement de sept de longueur n
ou moins qui sont inférieurs à l
. A161145 est proche de ce défi, cependant, vous n'incluerez PAS les 7, 77, 777, 7777, 77777, etc.
Exemples
n=anything, l<49
entraînerait:
[]
n=1, l=49
entraînerait:
7*7=49
f(1,49)=[49]
n=1, l=343
entraînerait:
7*7 =49
7*7*7 =343
f(1,343)=[49,343]
n=2,l=6000
entraînerait:
7*7 =49
7*7*7 =343
7*7*7*7=2401
7*77 =539
7*7*77 =3773
77*77 =5929
f(2,6000)=[49,343,539,2401,3773,5929]
n=3, l=604000
entraînerait:
[49, 343, 539, 2401, 3773, 5439, 5929, 16807, 26411, 38073, 41503, 59829, 117649, 184877, 266511, 290521, 418803, 456533, 603729]
Etc...
Règles
- Vous n'avez pas besoin de sortir des étapes intermédiaires, cela a été fait pour plus de clarté.
- La sortie peut être sous forme de tableau ou séparée par n'importe quel caractère (même les retours à la ligne).
- La sortie doit être dans l'ordre numérique, du plus bas au plus élevé.
- Pour que le titre soit pertinent, le plus élevé
n
qui doit être traité estn=77
(si vous ne pouvez pas gérer ce niveau, notez pourquoi - les restrictions linguistiques sont acceptables, la paresse ne l'est pas). Cette limitation est de gêner ceux qui cherchent à construire le surensemble complet en mémoire. - Si TIO ne peut pas s'exécuter
n=77
pour votre code, expliquez quelles spécifications étaient nécessaires pour atteindren=77
. - Pour qu'un produit soit valide, il doit comprendre au moins 2 chiffres.
- Il s'agit du plus petit nombre d'octets de code-golf qui sera considéré comme vainqueur.
- Vous pouvez choisir que la liste contienne des éléments inférieurs
l
ou inférieurs / égaux àl
. - BONUS : Si votre code fait exactement 77 octets, bravo à moi; sans valeur, je sais.
n
ou moins qui sont inférieurs àl
"n=77
etl=7**7**7
, par exemple?Réponses:
05AB1E , 19 octets
Essayez-le en ligne!
Explication
Très inefficace. Le lien TIO effectue des
ceil(l^(1/7))
itérations au lieu desl
itérations utilisées dans la version golfée pour tester plus facilement les grands testcases.la source
$L7ׂ˜
- a essayé d'obtenir 5 octets, n'a pas pu..p
ou.s
trop, mais même ceux-ci semblent plus longs. J'ai accidentellement frappé «rafraîchir» sur la page TIO avec mon exemple d'implémentation au lieu de l'exécuter, je l'ai supprimé d'existence. Je pense que c'était 26 cependant.Gelée ,
21201918 octetsNotez que la sortie ne correspond pas aux OP. J'ai laissé un commentaire.
Essayez-le en ligne!
Comment ça fonctionne
la source
Python 2 ,
116113 113109 octetsNotez que TIO n'a pas assez de mémoire pour le dernier cas de test.
Essayez-le en ligne!
la source
JavaScript (ES6),
103101 octetsPrend une entrée dans la syntaxe de curry
(n)(l)
.Cas de test
Le dernier cas de test peut prendre quelques secondes.
Afficher l'extrait de code
la source
PHP, 142 octets
-5 octets supprimant
$r=[];
et remplacersort($r);
par@sort($r);
Version en ligne
Étendu
Une fonction récursive fait toutes les permutations y compris la limite
PHP, 145 octets
Étendu
une boucle jusqu'à ce que la limite vérifie chaque valeur divisible par 49
Version en ligne
quelques octets de plus et un tableau associatif peut être créé en saisissant le nombre et comme valeur un tableau des sept utilisés
Version en ligne
la source
while($c=$t*$v[+$i++])$l<$c?f($c)&$r[$c]=$c;
enregistre 3 octets; mais ça devrait l'être$l<=$c
.$r?sort($r)&print_r($r):0;
au lieu d'en$r=[];
enregistre un.$z.=7;
est 5 octets plus court que$z=$z*10+7;
.@
est un autre 4 octets plus court que$r?...:0;
. (Merci @Christoph)$l<=$c
? Il semble qu'hier n'était pas mon jour pour le$z.=7
et les 2 octets supplémentaires que j'ai trouvés. Je pense d'abord à vos deux autres suggestions. Vous manquez la:
boucle in the whilethat are less than l
, dans ses exemples, ilsare less than or equal
. Selon la clarification,$c>$l||...
/$c>$l?:...
ou$c<$l&&...
sont les plus courts.Rubis,
8986 octetsUne solution récursive.
-3 octets en se souvenant que tout ce qui est 0 est 0.
Essayez-le en ligne!
la source
Pyth , 22 octets
Essayez-le en ligne!
Spécifications
l[newline]n
array containing the sorted result
la source
PHP,
128 125 130 129 129 127123 octetsfonctionnera jusqu'à 22
7
s mais arrondira des valeurs plus grandes (7 ** 23 est une virgule flottante sur une machine 64 bits).3 octets enregistrés par Jörg, 3 par moi,
5 41 ajouté pour éviter l'avertissement de résultats vides.prend l'entrée des arguments de ligne de commande; courir avec
-nr
ou essayer en ligne .panne
la source
for([,$c,$z]=$argv,$n=1+$c;$c<$z;
au lieu defor($n=1+$c=$argv[1];$c<$z=$argv[2];
@
au lieu de$r&&
pour supprimer l'avertissement?$p<$z&&$r[$p]=$p
$p>$z?:$r[$p]=$p
exemple,n=1, l=343
il est clair que celal
devrait être inclus. Par conséquent, aucune économie lors de l'utilisation de$p>$z||$r[$p]=$p
ou$p>$z?:$r[$p]=$p
.@
; sera édité lorsque l'OP répond.$p>$z||
ou$p<$z&&
. Je m'en tiendrai à la description.Brachylog , 28 octets
Il y a beaucoup de possibilités d'amélioration dans la langue elle-même, ici; pas mal de choses que j'ai écrites semblent être évidemment améliorables avec quelques changements dans la conception du langage. C'est le moyen le plus court que j'ai trouvé avec la version actuelle. Je peux très bien faire quelques suggestions pour Brachylog qui rendraient ce programme plus efficace, plus court et plus lisible.
Très, très lent; TIO expire même sur la réponse non triviale la plus simple possible, il n'y a donc pas grand intérêt à fournir un lien TIO. J'ai vérifié ce programme en l'exécutant localement.
C'est une fonction (pas un programme complet), dont la sortie est un générateur (par opposition à une liste). Ajouter
.w⊥
à la fin de la fonction si vous voulez voir toutes les sorties, plutôt que juste la première. (Notez que cela n'a pas vraiment d'importance dans la pratique, car comme le programme est trop lent pour TIO de toute façon, vous devez l'exécuter localement et l'interpréteur Brachylog local s'exécute dans un REPL qui peut décrire très bien un générateur.)Explication
la source
Utilitaires Bash + GNU, 108
Essayez-le en ligne . TIO prend environ une minute pour le dernier testcase. Mes résultats correspondent à ceux de Dennis.
la source
Pyth -
57514942 octetsEssayez-le
la source
7
et77
pour votre entrée actuelle.m
place deF
ouV
etc. (programmation fonctionnelle vs contrôle d'exécution); en utilisanthQ
au lieu de@Q0
; en utilisanteQ
au lieu de@Q1
; en utilisanti*hQ]7T
au lieu de la longue boucle for pour générer777...7
.