Dans ce défi, vous devez résoudre 4 tâches différentes en utilisant le même jeu de caractères. Vous pouvez réorganiser les caractères, mais vous ne pouvez pas ajouter ou supprimer des caractères.
Le gagnant sera la soumission qui résoudra toutes les tâches en utilisant le plus petit nombre de caractères. Toutes les tâches doivent être résolues dans la même langue.
Notez que c'est le plus petit nombre de caractères, pas le plus petit nombre de caractères uniques .
Tache 1:
Affiche les premiers N
nombres de chaque troisième nombre composé . Le bloc de code ci-dessous montre les 19 premiers nombres composés de la première ligne et tous les trois nombres composés de la ligne ci-dessous.
4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30
4, 9, 14, 18, 22, 26, 30
Si N=5
alors la sortie devrait être 4, 9, 14, 18, 22
. Vous devez soutenir 1<=N<=50
.
Les nombres composés sont des nombres positifs qui ne sont ni des nombres premiers ni 1.
Le résultat pour N=50
est:
4, 9, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 57, 62, 65, 69, 74, 77, 81, 85, 88, 92, 95, 99, 104, 108, 112, 116, 119, 122, 125, 129, 133, 136, 141, 144, 147, 152, 155, 159, 162, 166, 170, 174, 177, 182, 185, 188, 192
Tâche 2:
Sort une N-by-N
table de multiplication. Vous devez soutenir1<=N<=20
Exemple:
N = 4
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
Le format de sortie est facultatif, voici une sortie acceptable [[1,2,3,4],[2,4,6,8],[3,6,9,12],[4,8,12,16]]
.
Tâche 3:
Déterminez si un nombre est un nombre de Fibonacci . Vous devez prendre en charge positif N
jusqu'à la limite entière par défaut de votre langue. S'il existe à la fois des entiers 32 bits et des entiers 64 bits, vous pouvez choisir d'utiliser celui qui requiert le code le plus court. Par exemple, utilisez int
plutôt que long int
si vous avez le choix. Vous ne pouvez pas choisir un nombre entier inférieur à 32 bits, à moins que ce soit la valeur par défaut (vous ne pouvez pas utiliser d'entiers 8 bits si 32 bits est la valeur par défaut).
true/false
, false/true
, 1/0
, 1/-1
, a/b
Sont toutes les sorties acceptables tant qu'il est cohérent.
Tâche 4:
Prendre N
en entrée et en sortie le résultat de 1^1+2^2+3^3+...N^N
. Vous devez soutenir 1<=N<=10
.
Les 10 résultats différents sont:
1, 5, 32, 288, 3413, 50069, 873612, 17650828, 405071317, 10405071317
C'est du code-golf , donc la soumission la plus courte dans chaque langue gagne!
Cet extrait de pile aidera à vérifier votre solution. Il mesure le nombre minimum de caractères requis pour inclure les quatre solutions et affiche les caractères restants.
la source
Réponses:
Python,
8887 octetsNe pas avoir mis trop d’efforts à partager des personnages ou les golfs eux-mêmes, ce sera sûrement battu.
la source
range(11*n)
toujours assez de composites?5*n
est suffisant.Jelly ,
191817 caractèresTache 1
Essayez-le en ligne!
Tâche 2
Essayez-le en ligne!
Tâche 3
Essayez-le en ligne!
Tâche 4
Essayez-le en ligne!
Comment ça marche
Chaque ligne d'un programme Jelly définit un lien séparé (fonction). Le dernier est le lien principal et est appelé automatiquement lorsque le programme est exécuté. À moins que ce lien principal ne se réfère d'une manière ou d'une autre aux autres, ils n'ont aucun effet. Notez que même les liens non appelés peuvent ne pas contenir d’erreurs d’analyseur.
Tache 1
Tâche 2
Celui-ci est trivial:
×
c'est l'atome de multiplication, et le quickþ
(tableau) s'applique×
à chaque combinaison d'éléments dans les arguments gauche et droit. Si les arguments sont des entiers (ce qu'ils sont ici), cela les renvoie également en premier.Tâche 3
Tâche 4
la source
ÆḞ
se révèle déjà utile!Mathematica, 60 caractères
Tâche 1: composites
Tâche 2: Table de multiplication
Tâche 3: Fibonacci
Tâche 4: somme des pouvoirs
Chaque soumission est un ensemble d'expressions ignorées, suivies d'une fonction non nommée qui implémente la tâche donnée.
J'ai écrit un script simple CJam qui combine "de manière optimale" des solutions brutes en ajoutant un commentaire. J'ai fini par économiser trois octets en supprimant manuellement chaque commentaire (ce qui nécessitait un réarrangement pour obtenir une syntaxe valide dans chaque cas). Le script a beaucoup facilité l’essai de variantes simples des solutions pour voir si elles réduiraient le score global. N'hésitez pas à utiliser le script vous-même.
la source
ab
et enba
tant que scripts, il me donnera(**)ab
et(**)ba
, au lieu deab
etba
.(**)
lui - même pourrait être utilisé pour couvrir certains caractères s’ils étaient utilisés dans n’importe quel autre programme.MATL ,
292826 caractèresTâche 1 (chaque troisième nombre composé)
Essayez-le en ligne!
Tâche 2 (table de multiplication)
Essayez-le en ligne!
Tâche 3 (détecteur de Fibonacci)
Cela affiche
1
/0
pour Fibonacci / non-Fibonacci respectivement.Essayez-le en ligne!
Tâche 4 (somme des pouvoirs)
Essayez-le en ligne!
Vérifier
Ce programme les quatre chaînes et les affiche triées afin de vérifier visuellement qu’elles utilisent les mêmes caractères.
Des explications
%
est le symbole de commentaire. Tout à sa droite est ignoré.Tâche 1 (chaque troisième nombre composé)
Tâche 2 (table de multiplication)
Tâche 3 (détecteur de Fibonacci)
Tâche 4 (somme des pouvoirs)
la source
Hey MATL would be perfect for this!
tu m'y battais. +1Perl 6 , 61 octets
Le second revient
((1,2,3,4),(2,4,6,8),(3,6,9,12),(4,8,12,16))
quand donné4
Perl 6 n’a pas vraiment d’entier maximum, mais le troisième fonctionne instantanément avec une entrée de
15156039800290547036315704478931467953361427680642
. Les seuls facteurs limitants seraient la mémoire et le temps.Sinon, ils fonctionneront tous "instantanément" pour des entrées bien au-delà de ce qui est nécessaire.
Essayez-le en ligne
la source
JavaScript (ES6),
101100959391 octetsÉditer: 1 octet enregistré en ne prenant pas en charge
0
le nombre de Fibonacci. 5 octets enregistrés plus 2 octets supplémentaires (1 grâce à @Arnauld) en renommant les variables. 2 octets enregistrés en passant entre+1
,++
et+=1
.la source
c
variable parA
devrait sauvegarder un octet.d
pary
, maisd
n'est pas défini dans la version actuelle, vous voudrez probablement résoudre ce problème en premier)a
àm
.MATL , 30 caractères
Le jeu de caractères avec lequel je suis allé est:
Je ne pouvais pas oublier que l'autre MATL répondait, mais je me suis amusé à proposer cette solution.
Tache 1:
Troisièmes nombres composés.
Essayez-le en ligne!
Tâche 2:
Table de multiplication. Certainement la tâche la plus facile, en raison du fonctionnement de MATL
Essayez-le en ligne!
Tâche 3:
Testeur de Fibonacci. Imprime un entier positif (1 ou 2) pour les entrées de vérité et 0 pour les entrées de fausseté.
Essayez-le en ligne!
Tâche 4:
Somme des pouvoirs
Essayez-le en ligne!
Je posterai une explication plus complète plus tard, mais pour l'instant, notez que
%
c'est le caractère de commentaire, donc les programmes sont vraiment:la source
PowerShell ,
95 à94 octets( TimmyD savin 'mon bacon encore une fois)
Tache 1:
Essayez-le en ligne!
Tâche 2:
Essayez-le en ligne!
Tâche 3:
Essayez-le en ligne!
Tâche 4:
Essayez-le en ligne!
la source
"$args"
au lieu de$args[0]
est brillante. Je vais l'utiliser à partir de maintenant.;
problème de la tâche 4 en manipulant le calcul avec("$args"..1|%{$s+="$_*"*$_+1|iex})-(-$s)
pour enregistrer un autre octet global.Haskell ,
7776 caractèresEssayez-le en ligne!
--
commence un commentaire de ligne, donc les quatre programmes sont de la forme<program>--<unused chars>
.Tache 1:
Le programme le plus long.
[x|x<-[1..],2/=sum[1|0<-mod x<$>[1..x]]]
donne une liste infinie de nombres composés plus un début1
corrigeant l'indexation 0. Usage:Tâche 2:
Usage:
Tâche 3:
Retour
[0]
pour la vérité et[]
pour la fausseté. Usage:Tâche 4:
Usage:
la source
05AB1E , 21 octets
Tache 1
Essayez-le en ligne!
Tâche 2
Essayez-le en ligne!
Tâche 3
Essayez-le en ligne!
Tâche 4
Essayez-le en ligne!
Des explications
Pour toutes les tâches, le
q
programme se termine afin que le code qui suit ne soit jamais exécuté.Tache 1
C'est le plus gros porc byte. Une petite amélioration ici pourrait aller très loin.
Tâche 2
Tâche 3
Tâche 4
la source
Ruby,
83 82 8078 caractèresRemarque: Le détecteur de nombres de Fibonacci utilise la méthode du carré parfait décrite sur Wikipedia: https://en.wikipedia.org/wiki/Fibonacci_number#Recognizing_Fibonacci_numbers
la source
'';
vs#