Sortie avec le même nombre de chiffres de pi que la longueur du code


9

Votre défi est d'imprimer les xchiffres de pi où xest la longueur de votre code.

Exemples:

Source code (length) -> output
foo!        (4)         3.141
foobar      (6)         3.14159
kinda long  (10)        3.141592653
+++++       (5)         3.1415
123456789   (9)         3.14159265

Vous pouvez utiliser pour déterminer le nombre de chiffres que vous devez imprimer. Notez que le point décimal ne compte pas comme un chiffre de pi - donc le code de longueur 3 devrait avoir une sortie , de longueur 4.floor(π/10 * 10code_length) / 10code_length - 13.14

Règles:

  • La longueur de votre code doit être supérieure à trois caractères.
  • Vous ne pouvez pas utiliser de failles standard.
  • Vous pouvez utiliser toutes les méthodes de sortie standard autorisées.
  • Vous ne pouvez pas lire votre source pour déterminer la longueur du code.
  • Vous ne pouvez pas utiliser une constante pi intégrée.
  • Pi doit être complètement précis et non approximé.
  • Le point décimal dans la sortie est nécessaire. Si vous choisissez de sortir via une valeur de retour, vous devez renvoyer un entier à virgule flottante.
  • Le but de ce défi est de trouver la solution la plus courte dans chaque langue, et non la langue la plus courte pour la solution. N'ayez pas peur de publier une solution dans une langue lorsqu'une solution plus courte est publiée dans la même langue tant que votre solution utilise une méthode différente.

... est-ce que cela serait valable ou non?
Jonathan Allan

(modifier ^ ce même (arrondi))
Jonathan Allan

«Longueur de code» ← en octets ou en caractères?
Lynn

@Lynn Bytes, comme d'habitude.
MD XF

Est-ce juste 3autorisé?
NoOneIsHere

Réponses:


3

Japt , 9 4 octets

Aussi court que possible :)

Comprend un caractère non imprimable (saut de ligne inversé, code de caractère 141) après le #.

3.#

Essaye-le

Dans Japt, tout caractère suivant #est converti en son code de caractère et ajouté à tous les chiffres ou décimales qui peuvent le précéder, dans ce cas le3.




6

VBA (Excel), 15 octets

MsgBox 4*Atn(1)

Sortie: 3.14159265358979

Je pense que ce n'est pas acceptable car je l'ai joué au golf juste pour s'adapter à la longueur du PI. La longueur non golfée est de 17 octets. RÉ:


1
Il semble que vous n'ayez pas encore été accueilli, alors bienvenue sur le site!
MD XF

Oh, merci monsieur! : D
remoel

N'est-ce pas Atnarctangent? Je ne sais pas si cela est autorisé ... demandant OP
JungHwan Min

Je pensais que OP se réfère uniquement à PI intégré. Ma faute.
remoel

5

Gelée , 6 octets

3;⁽4ƒṾ

Essayez-le en ligne!

Imprime 3,14159avec le permis séparateur décimal « européen », ,.

Comment?

3;⁽4ƒṾ - Main link: no arguments
3      - literal 3                3
  ⁽4ƒ  - base 250 literal 14159   14159
 ;     - concatenate              [3,14159]
     Ṿ - unevaluate               ['3', ',', '1', '4', '1', '5', '9']
       - implicit print           3,14159

1
Cette liste de chiffres semble étrange. Je pense qu'il y a un extra ,'là-dedans.
Jonathan Frech

1
Vous pouvez faire -ÆAær5et utiliser à la .place de ,, mais ce serait la même chose que ma solution Jelly.
Zacharý



4

Desmos , 130 octets

f\left(\right)=\frac{\operatorname{floor}\left(10^{128}\cdot 4\sum_{k=1}^{9^9}\frac{\left(-1\right)^{k+1}}{2k-1}\right)}{10^{128}}

Le code source pour cela (auquel on peut accéder en copiant et collant à l'intérieur et à l'extérieur de Desmos) n'est pas optimal lorsqu'il est généré à l'aide de l'éditeur Desmos, donc quelques octets d'espaces ont été parcourus si possible.

Ceci définit une fonction fqui ne prend aucun argument renvoie pi, calculé en utilisant la séquence de Gregory à k=9^9 (je ne peux pas confirmer que c'est suffisamment précis, mais je pense que c'est le cas, elle peut être rendue plus précise avec une plus grande valeur de k ), il décompose ensuite le résultat en 128décimales, ce qui 3.correspond à la longueur du code source.

Essayez-le en ligne!


Comment voit-on réellement le résultat - je vois seulement 3.14159265617, est-ce que je regarde au mauvais endroit; dois-je appuyer sur un bouton?
Jonathan Allan

Desmos n'imprime pas par défaut à autant de décimales que prévu, mais la valeur doit toujours être précise.
ATaco

1
C'est décevant car le défi est "d'imprimer ..."
Jonathan Allan

1
"Le point décimal dans la sortie est nécessaire. Si vous choisissez de sortir via une valeur de retour, vous devez renvoyer un entier à virgule flottante." ce qui rend cela valide.
ATaco

Je pense que l'intention de cette déclaration n'était pas de permettre une précision moindre mais d'assurer un séparateur décimal. Attention, je ne pense pas que votre réponse soit mauvaise.
Jonathan Allan




3

Neim , 5 octets

3FBρσ

Explication:

3      Push 3
 FB    F pushes 45, B converts it into a character code, '.'
   ρ   Push 14
    σ  Push 15
Implicitly concatenate and print stack

Essayez-le en ligne!


3

APL, 6 octets

10○⍟-1

Prend la partie imaginaire de ln (-1).

Essayez-le en ligne!


Salut, bienvenue à nouveau @Uriel! Sympa, je ne pensais pas à quelque chose comme ça (avec des journaux de nombres négatifs), beau travail!
Zacharý

@ Merci Zacharý, vient de laisser tomber une visite et n'a pas pu m'empêcher de répondre à cette question: P
Uriel

2

J , 16 octets

17j15":4*_3 o.1:

Essayez-le en ligne!

Similaire à la réponse VBA. Sorties: 3.141592653589793.


"Vous ne pouvez pas utiliser une macro ou une constante intégrée pour déterminer pi." C'est drôle, c'est ton commentaire
Leaky Nun

Votre sortie est de 17 octets, pas 16.
ATaco

1
@ATaco exactement, c'est 16 chiffres
ASCII uniquement

@LeakyNun ce n'est pas le cas. _3 o.1calcule atan (1). Comme vous le savez peut-être, je connais bien les règles.
Conor O'Brien

2

Math.JS , 17 octets.

     log(-1,e).im

C'est 5 espaces de tête

Cela calcule à 15 décimales et l'imprime implicitement.

Essayez-le en ligne!


Eh bien, techniquement, cela calcule la partie imaginaire de ln(-1), mais comme il s'agit d'un nombre purement imaginaire, cela équivaut à diviser par i.
Zacharý

2

05AB1E , 11 octets

3•∊&SK•)'.ý

Essayez-le en ligne!

COMMAND     # CURRENT STACK         | EXPLANATION
------------#-----------------------+-----------------------------------
3           # [3]                   | Push 3.
 •∊&SK•     # [3, 1415926535]       | Push compressed base-255 number 1415926535.
       )    # [[3,1415926535]]      | Wrap the 2 to an array.
        '.  # [[3,1415926535],'.']  | Push a decimal point.
          ý # ['3.1415926535']      | Join 3 and 1415926535 with a decimal point.

UTILISATION DE BUILT-INS:

05AB1E , 4 octets

žq5£

Essayez-le en ligne!


3žs ne fonctionne pas pour une raison quelconque ...


@ Zacharý ai-je raté quelque chose? Pourquoi est-ce spécial xD?
Urne de poulpe magique du

C'est dans mon nom d'utilisateur, et aussi, pouvez-vous ajouter une explication?
Zacharý

@ Zacharý HA! Mon cerveau passait par toutes les blagues liées au PPCG qui pouvaient être drôles, devenant vides. Je pense à la merde.
Urne de poulpe magique du

@ Zacharý également, a ajouté.
Urne de poulpe magique du

Si MY avait des IO implicites, il n'y aurait aucun moyen de battre E3., je suis en colère contre moi- même maintenant: p.
Zacharý

2

ForceLang , 269 octets

set S 0x5F258E476FC1B3B5571012206C637089460E41E814CB071E61431B5F0671F551D18D2C5D2D3A2565E408C6DE8D753F595B6E9979C3866D1C9965008DCFB02E3BD11D21DFFAF17978F05C8BBACF55A5ED5E90B1D8CAD8736AA4B728EB342B453F86353DB371D322B6A98613BC5CCB00AC2.mult 1e-270
io.write S.toString 268

Lien vers la langue sur github au moins.
Jonathan Allan

2

MATL , 9 8 octets

-1X;V9:)

Essayez-le en ligne!

Explication:

-1      % number literal
X;      % inverse cosine (radians), giving pi
V       % convert to string
9       % specify precision
:)      % keep first 9 characters - 8 digits of precision

Un octet enregistré grâce à Luis Mendo!


1

Gelée , 6 octets

-ÆAær5

Essayez-le en ligne!

Utilise une approche différente de celle des autres réponses de Jelly.

Comment?

-ÆAest le cosinus inverse de -1(qui est pi), ær5récupère la section nécessaire. Il a fonctionné de sorte que l'arrondi équivaut à la troncature dans ce cas



1

Perl 5, 40 octets

}{$\=$\/~(2*$_)*~$_+2for-130..-2

Nécessite l'option de ligne de commande -pMbignum, comptée comme 8.

Échantillon d'utilisation:

$ perl -pMbignum test.pl < /dev/null
3.141592653589793238462643383279502884197

Je m'excuse pour aucun lien TIO, il ne semble pas prendre en charge bignum(ou une accolade d'ouverture inégalée ...).


1

MY , 7 octets

’2ō"8↑↵

Essayez-le en ligne!

Comment?

  • , décrémenter le haut de la pile ( 0est sauté s'il est vide, ce qui rend la pile [-1]). (Même symbole que Jelly)
  • 2, poussez 2.
  • ō, puisque le haut de la pile est de deux, jetez le 2, pop n, puis poussez acos(n)(en radians, cela donne pi, ce symbole est oavec un signe négatif au-dessus. o(pour trig normal) vient d'APL).
  • ", ouvrez l'élément supérieur de la pile et poussez-le sous forme de chaîne.
  • 8, poussez 8.
  • , pop apuis b, push b[:a](Ceci est un autre symbole tiré de l'APL).
  • , sortie avec une nouvelle ligne (OUTPUT <- STACK).

Ajoutez ensuite une sortie implicite: P
MD XF

Je reste fidèle à la nature de MY, je pourrais faire une version améliorée avec la syntaxe réelle, et certainement avec une sortie implicite
Zacharý

1

RPL (HP48), 86,5 octets, 87 chiffres [Est-ce que cela compte?]

« GROB 8 43
14159265358979323846264338327950288419716939937510582097494459230781640628620899862803
→STR 9 OVER SIZE SUB 2 "." REPL »

GROB est un mot clé d'image. Les 2 nombres qui suivent sont largeur et hauteur. Les chiffres hexadécimaux qui suivent sont bitmap. Cela représente 1 octet de stockage pour 2 chiffres plus les métadonnées d'image.

Le programme vide « »prend 10 octets. Une commande prend 2,5 octets. Un flottant prend 10,5 octets, mais s'il est égal à un entier à un chiffre, il peut prendre 2,5 octets.

HP48 stocke 4 plutôt que 8 bits à chaque emplacement de mémoire, donc un octet occupe 2 emplacements consécutifs (bas de gamme). Souvent, des morceaux de 20 bits sont utilisés, et ils prennent 2,5 octets (pas 3).





0

Excel VBA, 16 octets

Fonctions de fenêtre immédiate VBE anonyme qui n'acceptent aucune entrée et sortie sur aucun des STDOUT d'Excel VBA

Chaque ligne représente une fonction distincte qui renvoie Pi de longueur 16

?Mid(4*Atn(1),1)
?Str([Acos(-1)])
Debug.?4*Atn(1);
MsgBox[Acos(-1)]
[A1]="=ACOS(-1)"



0

TI-BASIC, 7 octets

round(4tan⁻¹(1),6

round(2sin⁻¹(1),6

round(cos⁻¹(-1),6

Ces trois déclarations seront imprimées 3.141593.


Remarque: TI-BASIC est un langage à jetons. Le nombre de caractères n'est pas égal au nombre d'octets.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.