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.
MD XF
la source
... 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.

Hirsute
la source
8

Mathematica, 18 octets

en utilisant la fonction zeta

entrez la description de l'image ici

Sqrt[6Zeta@2]~N~18

Essayez-le en ligne!

J42161217
la source
7

Gelée , 9 octets

“Œı⁸Ç’÷ȷ8

Essayez-le en ligne!

Les sorties 3.14159265

Comment ça fonctionne

“Œı⁸Ç’     - The integer 314159265
      ÷    - divide
       ȷ8  - The integer 100000000
fireflame241
la source
Pi n'est pas calculé!
sergiol
5
oui, divisant 314159265 par 100000000 :-)
Florian F
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É:

remoel
la source
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
Jonathan Allan
la source
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

Python 3 , 64 octets

print("3.%d"%int("SIXW57LUPVBUA10HBQJOL57QLF54UT0U00KIN32O",36))

Essayez-le en ligne!

Leaky Nun
la source
L'équivalent Python 2 est de 60 octets print'3.%d'%int('3p3aqd50r7654t9ywkfkgsm0yx0bikcluxlhsm',36).
Jonathan Allan
@JonathanAllan python 2 en 59: tio.run/##K6gsycjPM/r/…
primo
@primo ressemble à quelqu'un pour publier si et quand ...
Jonathan Allan
1
@JonathanAllan si vous voulez dire quand il est rouvert, c'est maintenant.
MD XF
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!

ATaco
la source
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

Javascript, 16 octets

_=>Math.acos(-1)

f=
_=>Math.acos(-1)
console.log(f())

Herman L
la source
3

CJam , 5 octets

3.14F

Essayez-le en ligne!

Comment ça fonctionne

3.14   e# Push 3.14.
    F  e# Push 15.
Dennis
la source
Si seulement vous auriez pu le faire 3.E. : P, de toute façon, incroyable abus de IO.
Zacharý
J'allais poster 3'.EF, mais j'ai vu cette réponse ...
Esolanging Fruit
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!

Okx
la source
3

APL, 6 octets

10○⍟-1

Prend la partie imaginaire de ln (-1).

Essayez-le en ligne!

Uriel
la source
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.

Conor O'Brien
la source
"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!

ATaco
la source
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 ...

Urne de poulpe magique
la source
@ 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
SuperJedi224
la source
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!

B. Mehta
la source
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

Zacharý
la source
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 ...).

primo
la source
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).
Zacharý
la source
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).

Heimdall
la source
1

> <> , 16 octets

"]a:5;."3no>n<

Essayez-le en ligne!

Il y a quelques non imprimables là-dedans, le premier ayant la valeur 26 et le second 141.

Jo King
la source
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)"
Taylor Scott
la source
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.

Tau
la source