Au 13/03/2018 16:45 UTC, le gagnant est la réponse n ° 345 , de Scrooble . Cela signifie que le concours est officiellement terminé, mais n'hésitez pas à continuer à poster des réponses, du moment que les règles sont respectées.
De plus, un petit mot aux trois principaux intervenants en termes de nombre de réponses:
1. NieDzejkob - 41 réponses
2. KSmarts - 30 réponses
3. Hyper Neutrino - 26 réponses
Il s'agit d'une question d'enchaînement de réponses qui utilise des séquences de OEIS et la longueur de la soumission précédente.
Cette question d'enchaînement de réponses fonctionnera de la manière suivante:
- Je vais poster la première réponse. Toutes les autres solutions doivent en découler.
- L'utilisateur suivant (appelons-le utilisateur A) trouvera la séquence OEIS dans laquelle son numéro d'index (voir ci-dessous) est identique à la longueur de mon code.
- À l'aide de la séquence, ils doivent ensuite coder, dans une langue non utilisée , un programme qui prend un entier en entrée, n, et génère le nième nombre de cette séquence.
- Ensuite, ils publient leur solution après la mienne et un nouvel utilisateur (userB) doit répéter la même chose.
Le n
ième terme d'une séquence est le terme n fois après le premier, la première valeur étant la première valeur indiquée sur sa page OEIS. Dans cette question, nous allons utiliser l' indexation 0 pour ces séquences. Par exemple, avec A000242 et n = 3
, le résultat correct serait 25 .
Pourtant!
Ce n'est pas un code-golf , donc le code le plus court n'a pas d'importance. Mais la longueur de votre code a toujours un impact. Pour éviter la duplication de séquences, votre décompte de tiers doit être unique . Cela signifie qu'aucun autre programme soumis ici ne peut avoir la même longueur en octets que le vôtre.
S'il n'y a pas de séquence pour alors la longueur du dernier message, la séquence de votre message est la séquence inutilisée la plus basse. Cela signifie que les séquences utilisées doivent également être uniques, et que la séquence ne peut pas être identique à votre décompte.
Après qu'une réponse ait été postée et qu'aucune nouvelle réponse n'ait été postée pendant plus d'une semaine, la réponse précédant la dernière réponse postée (celle qui n'a pas rompu la chaîne) l'emporte.
Entrée et sortie
Les règles d'entrée et de sortie génériques s'appliquent. L'entrée doit être un entier ou une chaîne représentant un entier et la sortie doit correspondre à la valeur correcte de la séquence.
Mise en page
Comme pour la plupart des questions d’enchaînement de réponses, veuillez formater votre réponse de la manière suivante
# N. language, length, [sequence](link)
`code`
[next sequence](link)
*anything else*
Règles
- Vous devez attendre au moins 1 heure avant de poster une réponse, après avoir posté.
- Vous ne pouvez pas poster deux (ou plus) de suite.
- Le numéro d'index d'une séquence est le numéro qui suit la
A
partie et les zéros de gauche sont supprimés (par exemple,A000040
le numéro d'index est 40). - Vous pouvez supposer que ni l'entrée ni la sortie requise ne seront en dehors de la plage numérique de votre langue, mais veuillez ne pas en abuser en choisissant une langue ne pouvant utiliser que le chiffre 1, par exemple.
- Si la longueur de votre soumission dépasse 65 536 caractères, indiquez un lien permettant d'accéder au code (par exemple, pastebin).
n
ne sera jamais supérieur à 1 000 ou ne sera pas interdit pour la séquence, simplement pour éviter que les écarts de précision empêchent une langue de se faire concurrence.- Toutes les 150 réponses (valides), le nombre d'utilisations d'une langue augmente. Ainsi, après l'affichage de 150 solutions, chaque langue peut être utilisée deux fois (avec toutes les réponses précédentes comptant pour cela). Par exemple, lorsque 150 réponses ont été postées, Python 3 peut être utilisé deux fois, mais comme il a déjà été utilisé une fois, cela signifie qu'il ne peut être utilisé qu'une seule fois jusqu'à ce que 300 réponses aient été postées.
- S'il vous plaît être utile et poster un lien vers la prochaine séquence à utiliser. Ce n'est pas obligatoire, mais c'est une recommandation.
- Différentes versions de langages, par exemple Python 2 et Python 3, sont des langages différents . En règle générale, si les différentes versions sont disponibles sur Try It Online, il s'agit de langues différentes, mais gardez à l'esprit qu'il s'agit d'une règle générale et non d'une réponse rigide.
- Ce n'est pas interdit, mais essayez de ne pas copier le code de la page OEIS et essayez de le résoudre.
- Le codage en dur n'est autorisé que si la séquence est finie. Veuillez noter que la réponse à l'origine de cette question ( # 40 ) constitue l'exception à la règle. Quelques réponses au début de la chaîne, mais elles peuvent être ignorées, car il n’est pas utile de supprimer la chaîne jusqu’à 100, disons.
Extrait de chaîne de réponse
la source
float
/ intégrédouble
afin de produire des valeurs pour des valeurs plus grandesn
?Réponses:
345. brainfuck , 162 octets, A000301
Essayez-le en ligne!
Séquence suivante!
Ceci prend en entrée le caractère avec un point de code
n
(selon les spécifications de BF) et sort de la même manière. Pour voir les chiffres, je suggère d'utiliser EsotericIDE de @ Timwi .Explication:
Etant donné que cela stocke tous les numéros de Fibonacci jusqu’à l’important, il échouera pour une entrée VRAIMENT importante sur une bande liée.
Cela pourrait être raccourci de manière significative en codant en dur la base (2), mais golfiness n'est pas un problème du tout.
la source
22. FiM ++ , 982 octets, A000024
Séquence suivante
la source
1. triangulaire , 10 octets, A000217
Essayez-le en ligne!
Séquence suivante
Comment ça fonctionne
Le code est formaté dans ce triangle
avec l’IP commençant au
$
sud-est et se déplaçant vers le sud-est (SE, heh), fonctionne comme suit:la source
A000217 Triangular numbers
...73. étoilé , 363 octets, A000252
Essayez-le en ligne!
Séquence suivante
Utilise la formule "
a(n) = n^4 * product p^(-3)(p^2 - 1)*(p - 1)
où le produit est sur tous les nombres premiers p qui divisent n" à partir d'OEIS.La lune est un non-op, mais bon, ce n'est pas du code-golf.
la source
97. Python 3 (PyPy) , 1772 octets, A000236
Tout d’abord, merci au Dr Max Alekseyev d’avoir été patient avec moi. Je suis très chanceux d'avoir pu le contacter par courrier électronique pour comprendre ce défi. Sa réponse Math.SE ici m'a beaucoup aidé. Merci à Wheat Wizard de m'avoir aidé également. :)
Essayez-le en ligne!
Si cela donne un résultat erroné, augmentez simplement le 100 à quelque chose de plus grand. Je pense que 10000 fonctionnera pour 4 mais je laisserai mon ordinateur en marche toute la nuit pour le confirmer. cela peut prendre quelques heures.
Notez que la partie (PyPy) est juste pour que je puisse utiliser à nouveau Python. Je ne connais vraiment pas beaucoup d'autres langues et je ne vais pas essayer de porter cela en Java et risquer de ne pas finir à temps.
Séquence suivante (Merci également de ne pas faire plus de trucs de maths loufoques; je n'ai plus de version Python, alors quelqu'un d'autre devra sauvegarder ce défi D :)
la source
107. TrumpScript , 1589 octets, A000047
Essayez-le en ligne!
Première programmation en TrumpScript, il est possible que je réinvente la roue plusieurs fois - 4 lignes sont dédiées au calcul de 2 ^ n. J'ai essayé de faire en sorte que cela ressemble à quelque chose que Trump pourrait dire. En prime, voici un script Python que j'ai écrit pour vérifier que tout se passe bien. Le programme ci-dessus présente quelques différences, mais une grande partie est directement équivalente.
Séquence suivante!
la source
I will make cat feel good
O_OI will make Business Cat feel good
cela ne fonctionnera pas ...30. Python 1 , 1112 octets, A000046
Essayez-le en ligne!
Même pas la peine de jouer au golf avec ça. Hé, ce n'est pas ma plus longue réponse en Python sur ce site!
Séquence suivante
la source
_
n'est pas pertinente; il nous faut juste répéter cela plusieurs fois2. Haskell, 44 octets, A000010
Essayez-le en ligne!
Séquence suivante
la source
9. Pyth , 19 octets, A000025
Suite de test .
Séquence suivante
la source
>Q0
place deQ
, vous savez, pour que la séquence suivante soit A000019.Keywords: easy,nice
8. Mathematica (10.1), 25 octets, A000070
Séquence suivante
la source
206. Proton , 3275 octets, A000109
Essayez-le en ligne!
Séquence suivante
la source
308. ENIAC (simulateur) , 3025 octets, A006060
Pseudocode:
Pas de simulateur en ligne, résultat d'exécution:
Registres et constantes:
Flux du signal du programme et des données:
Complétez le "code" sur pastebin ou dans les commentaires HTML dans le balisage de cette réponse, afin d’empêcher linkrot et une réponse assez longue à faire défiler simultanément. C'est marrant!
Séquence suivante
la source
15. CJam, 85 octets, A000060
Démo en ligne
Séquence suivante
Dissection
OEIS donne
où
la source
67. LOLCODE , 837 octets, A000043
Ma touche majuscule est vouée à s’échapper, j’ai donc écrit tout ça en maintenant la touche shift
Essayez-le en ligne!
Séquence suivante
la source
PRAIME
upper
le serait -.-gggUG
dans vim où je l'ai écrit, mais je ne suis pas si malin10. Magma, 65 octets, A000019
Essayez-le ici
lol intégré
Séquence suivante
la source
24. Julia 0.5 , 33 bytes, A000023
Expansion de egf exp (−2 * x) / (1 − x).
Essayez-le en ligne!
Séquence suivante.
la source
121. Pip , 525 octets, A000022
Démo en ligne
Séquence suivante
Anecdote: lorsque le défi a été publié pour la première fois, j'ai dressé une liste de petits numéros de séquence désagréables que je voulais viser avec CJam, et A000022 était en haut de la liste.
Ceci implémente la fonction génératrice décrite dans EM Rains et NJA Sloane, Enumeration of Alkanes ( Sur Cayley), ou 4-Valent Trees , Journal of Integer Sequences, Vol. 2 (1999), en prenant la somme pour autant de termes qu'il est nécessaire pour fixer le coefficient e et en télescopant les trois quarts de la somme. En particulier, le fait de télescoper la première moitié signifie que l'indice de cycle de ne doit être appliqué qu'à l'un d'entre eux plutôt qu'à tous.
Ck
n
S4
Th
Le code se décompose en
Notez que ceci est mon tout premier programme Pip, ce n’est donc probablement pas très idiomatique.
la source
156. C # (Mono), 2466 octets, A000083
Remarque: le score est de 2439 octets pour le code et de 27 pour le drapeau du compilateur
-reference:System.Numerics
.Démo en ligne . C'est un programme complet qui prend des entrées à partir de la ligne de commande.
Séquence suivante
Dissection
Je suis le commentaire de Bowen dans OEIS selon lequel la fonction génératrice, dans
A000083(x) = A000237(x) + A035349(x) - A000237(x) * A035350(x)
laquelle les fonctions génératrices de composant sont liées parA000237(x) = x EULER(A035350(x))
A035350(x) = BIK(A000237(x))
A035349(x) = DIK(A000237(x))
J'utilise les définitions de
BIK
etDIK
de https://oeis.org/transforms2.html mais les formules semblent comporter un certain nombre de fautes de frappe. J'ai corrigéLPAL
sans trop de difficulté et dérivé indépendamment une formuleDIK
basée sur l'application de l'énumération de Pólya à l' indice de cycle du groupe dièdre . Entre les numéros 121 et 156, j'apprends beaucoup sur l'énumération de Pólya. J'ai soumis des errata , qui pourraient s'avérer utiles pour d'autres personnes si ces transformations se répètent dans la chaîne.la source
3. JavaScript (ES6), 38 octets, A000044
Essayez-le en ligne!
Prochaine séquence (devrait être facile: P)
la source
13. VB.NET (.NET 4.5), 1246 octets, A000131
A001246
Essayez-le en ligne!
la source
91. Python 2 (PyPy) , 1733 octets, A000066
Essayez-le en ligne!
J'espère que l'utilisation de Python 2 PyPy compte comme une autre version majeure. Si quelqu'un pouvait me procurer un interprète Python 0, je pourrais aussi l'utiliser, mais j'espère que cela est valide.
Cela commence à 1 sommet et fonctionne, créant ainsi la représentation de la matrice d'adjacence de tous les graphes non dirigés possibles avec autant de sommets. S'il est trivalent, il examinera la puissance des bords, qui seront triés par longueur. Si le premier cycle trouvé est trop court, il passera à autre chose. Si le premier cycle trouvé correspond à l'entrée (décalage de 3), il génère le nombre de sommets correct et se termine.
Prochaine séquence <- ayez un facile comme une pause de tout ce non-sens mathématique: D
EDIT : J'ai ajouté quelques optimisations pour accélérer un peu (je ne peux toujours pas calculer le troisième terme dans la limite de 60 secondes de TIO) sans changer le nombre de bytec.
la source
232. Funky ,
326330332 octets, A000938Essayez-le en ligne!
Polyglot avec Javascript. Essayez-le en ligne!
Séquence suivante .
Utilisez la formule sur la page OEIS pour la
O(n^2 log n)
complexité, au lieu de la naïveO(n^6)
.Explication rapide:
a[n_] := 2*Sum[(n - k + 1)*(n - m + 1)*GCD[k - 1, m - 1], {m, 2, n}, {k, 2, n}] - n^2*((n^2 - 1)/6)
décrite dans la section Code de Mathematica.Preuve de formule:
La formule est équivalente à ceci .
Laisser la taille de la boîte englobante de trois points être
m * k
. Considérons 2 cas:k != 0
etm != 0
: Il existe 2 manières de choisir l'orientation des trois points (\
ou/
), lesgcd(k-1, m-1)-1
manières de choisir le point se situent entre les 2 autres points et les(n - k) × (n - m)
manières de choisir la position du cadre de sélection.k == 0
oum == 0
: Il existe deux manières de choisir l'orientation (|
ou-
), lesn
manières de choisir la ligne / colonne sur laquelle se trouvent les points et lesBinomial[n, 3] == (n*(n-1)*(n-2)) / 6
manières de choisir les points sur cette ligne / colonne.Quelques notes polyglottes:
return
. Cependant, comme l' explique ATaco , [Funky] pense qu'ilreturn
s'agit d'une variable. Donc, il s'agit d'analyser cette expression, qui ne fait rien commodément, puis analyse l'expression suivante. Et ceci est utilisé comme sortie.^
bitor xor, contrairement à Funky qui utilise^
comme exponentiation. Donc,n*n
doivent être utilisés à la place den^2
pour assurer la compatibilité Javascript.+
,-
,*
, etc.) ont la même priorité et le droit associatif, donc les expressions doivent être correctement parenthésée.la source
11. Pari / GP, 64 octets, A000065
Essayez-le en ligne!
Séquence suivante
la source
;_; I solved A000064 and you changed it. Downvoted.
281. Java 5, 11628 octets, A000947
Essayez-le en ligne!
Note de côté:
Cela peut briser la chaîne.Nouveau record sur un grand nombre!Parce que j'utilise (à tort?) Des espaces au lieu de tabulations, le nombre de tours est plus grand que nécessaire. Sur ma machine, c'est 9550 octets. (au moment de la rédaction de cette révision)20
dansfor (int i = 0; i < 20; ++i)
à1000
)Yay! Cela peut calculer plus de termes que ceux énumérés sur la page OEIS! (pour la première fois, pour un défi, j’ai besoin d’utiliser Java) à moins que OEIS ait plus de termes quelque part ...
Explication rapide
Explication de la description de la séquence.
La séquence demande le nombre de polyénoïdes non plans libres avec groupe de symétrie C 2v , où:
Par exemple, considérons les arbres
Le premier ne peut pas être intégré dans le réseau hexagonal, alors que le second le peut. Cette intégration particulière est considérée comme différente du troisième arbre.
(2)
et l'(3)
arbre ci-dessus sont planes. Celui-ci, cependant, est non plan:(il y a 7 sommets et 6 arêtes)
Par exemple, le seul polyénoïde à 2 sommets
a 3 plans de réflexion: l’horizontal
-
, le vertical|
et l’autre parallèle à l’écran de l’ordinateur■
. C'est trop.D'autre part, celui-ci
a 2 plans de réflexion:
/
et■
.Explication de la méthode
Et maintenant, l'approche sur la façon de compter le nombre.
Premièrement, je prends la formule
a(n) = A000063(n + 2) - A000936(n)
(listée sur la page OEIS) pour acquise. Je n'ai pas lu l'explication dans le journal.[TODO réparer cette partie]
Bien sûr, compter en plan est plus facile que de compter en plan. C'est ce que le papier fait aussi.
Alors ... le programme compte le nombre de polyénoïde plan et le soustrait du total.
Parce que l’arbre est quand même planaire, il a évidemment le
■
plan de réflexion. La condition se résume donc à "compter le nombre d’arbres avec un axe de réflexion dans sa représentation 2D".La manière naïve serait de générer tous les arbres avec des
n
noeuds et de vérifier la symétrie correcte. Cependant, comme nous voulons seulement trouver le nombre d’arbres avec un axe de réflexion, nous pouvons simplement générer tous les demi-arbres possibles sur une moitié, les refléter sur l’axe, puis vérifier la symétrie correcte. De plus, comme les polyénoïdes générés sont des arbres (plans), il doit toucher l’axe de réflexion exactement une fois.La fonction
public static Graph[] expand(Graph[] graphs, Point.Predicate fn)
prend un tableau de graphes, chacun ayant desn
nœuds, et génère un tableau de graphes, chacun ayant desn+1
nœuds non égaux les uns des autres (en translation) - de sorte que le nœud ajouté doit satisfaire le prédicatfn
.Considérez 2 axes de réflexion possibles: un qui passe par un sommet et qui coïncide avec des arêtes (
x = 0
) et un qui est la bissectrice perpendiculaire d’une arête (2x = y
). Nous ne pouvons en prendre qu'un seul car les graphes générés sont de toute façon isomorphes.Ainsi, pour le premier axe
x = 0
, nous partons du graphe de base constitué d'un seul nœud(1, 0)
(dans le cas où iln
est impair) ou de deux nœuds avec un bord entre(1, 0) - (2, 0)
(dans le cas où iln
est pair), puis nous développons les nœuds de cette manièrey > 0
. Cela se fait par la section "Type de réflexion 1" du programme, puis pour chaque graphe généré, se reflète (se reflète) sur l'axe Xx = 0
(g.reflectSelfX()
), puis vérifie si sa symétrie est correcte.Cependant, notez que si
n
est divisible par 2, nous avons ainsi compté chaque graphe deux fois, car nous générons également son image miroir par l’axe2x = y + 3
.(notez les 2 orange)
Similaire pour l'axe
2x = y
, si (et seulement si)n
est pair, nous partons du point(1, 1)
, générons des graphes tels que2*x > y
, et reflétons chacun d'eux sur l'2x = y
axe (g.reflectSelfType2()
), nous connectons(1, 0)
avec(1, 1)
, et vérifions s'ils ont la symétrie correcte. N'oubliez pas de diviser par 2, aussi.la source
6. R , 71 octets, A000072
Essayez-le en ligne!
Séquence suivante
la source
the answer before the last posted (the one who didn't break the chain) will win
14. Python 2 , 60 octets, A001246
Essayez-le en ligne!
Séquence suivante.
la source
26. TI-BASIC, 274 octets , A000183
Evalue la formule récursive trouvée sur le lien OEIS.
Séquence suivante
la source
34. Prolog (SWI) , 168 octets, A000073
Essayez-le en ligne!
Séquence suivante
la source
49. SageMath , 74 octets, A000003
Essayez-le en ligne!
Séquence suivante
la source
76. Pygmée , 4147 octets, A000036
Séquence suivante
Vous pouvez exécuter le code sur cette page . Par exemple, vous pouvez obtenir le 10ème numéro de la séquence en copiant le code ci-dessus et en ajoutant:
la source