Inspiré par Bake a slice of Pi
Défi
Étant donné l'entrée 3 <= n <= 100
et 3 <= y <= n
, construisez une n x n
matrice de la partie décimale de pi
( 14159...
), en commençant en haut à gauche. Ensuite, prenez le triangle de taille supérieur droit y x y
et concaténez-le ensemble. Sortez le nombre résultant.
Par exemple, pour l' entrée n = 5
, y = 3
la matrice suivante est construit
14159
26535
89793
23846
26433
Ensuite, le 3 x 3
triangle supérieur droit serait
159
35
3
tout 159353
comme la sortie.
Contribution
Deux entiers - n
représentant la taille de la matrice carrée des chiffres de pi, et y
représentant le triangle supérieur droit - dans n'importe quel format pratique .
Production
- Le numéro en tranches et concaténé résultant, soit imprimé / affiché à l'écran, retourné sous forme de chaîne, etc.
- Les espaces de fin / de début sont facultatifs, tant qu'il n'y a pas d'espaces dans la sortie (c.-à-d.,
159 35 3
Ou similaire ne serait pas valide). - Notez que puisque nous recherchons explicitement les chiffres de
pi
, et non une approximation ou un calcul mathématique, les réponses ne doivent pas arrondir le dernier chiffre de la matrice.
Règles
- Il s'agit de code-golf, donc toutes les règles habituelles pour le golf s'appliquent et le code le plus court (en octets) l'emporte.
- Un programme ou une fonction complète sont acceptables.
- Les failles standard sont interdites.
Exemples
n y output
-------------
3 3 141923
5 3 159353
6 4 1592589383
6 6 141592535893238643794
20 12 358979323846950288419715820974944628620899211706792306647223172745025559196615
Réponses:
05AB1E , 19 octets
Utilise l' encodage CP-1252 .
Essayez-le en ligne!
Explication
n=5, y=3
utilisé par exemplela source
Python 2 (avec sympy), 100 octets
Pas de sympy,
260 246 244 233 231218 octetsCelui-ci utilise "l'algorithme de robinet pour Pi" de Stanley Rabinowitz et Stan Wagon.
Les arguments standard seraient
a,b,c,d,e,f=0,1,1,1,3,3
de produire le premier chiffre de pi,3
car cela n'est pas requis, l'algorithme est initialisé au point précédent1
, ce qui économise deux octets mêmea
etb
est plus long car le résultat ne nécessite pas de découpage eti
peut commencer à0
plutôt que-1
.Hits limite de récursivité par défaut pour le dernier cas de test
Utilise
//
pour la première des divisions afin qu'ilstr(v)
puisse être remplacé par`v`
(sinon il se termineraitL
pour longtemps).repl.it
Une version non récursive pour 232 octets qui évalue également le dernier cas de test:
repl.it (le premier retrait est un espace, le deuxième retrait est un onglet)
la source
Mathematica, 82 octets
la source
#&@@
place de[[1]]
.1415926535979323846433832798841971937510749448164899259
; le dernier9
est le 100e chiffre de pi, et le 101e chiffre est8
- pas d'arrondi)MATL,
232227 octets1 octet sauvé grâce à @Luis
Essayez-le en ligne
Explication
la source
Perl, 67 octets
Nécessite l'option de ligne de commande
-nMbignum=bpi
, comptée comme 12. L'entrée provient de stdin.Exemple d'utilisation
la source
C #,
232 octets268 octetsÉditer:
J'ai utilisé à l'origine une chaîne constante pour Pi en dehors de la méthode, mais il semble que ce soit de la triche. J'ai dû utiliser la valeur C # Math.PI, qui n'a que 14 décimales, donc la
m
valeur la plus élevée que je peux utiliser est 3. Retour à la planche à dessin ...Golfé:
Non golfé:
Pas la réponse la plus courte, mais j'étais simplement contente d'avoir résolu celle-ci ...
Sortie de test:
5 3 1593536 4 15925893836 6 14159253589323864379420 12 358979323846950288419715820974944628620899211706792306647223172745025559196615la source
p
et que ce n'est pas un langage intégré (ce que je suis sûr que ce n'est pas le cas), vous devrez l'inclure dans votre score d'octets.