Zainspirowany przez Bake a kawałek Pi
Wyzwanie
Biorąc pod uwagę dane wejściowe 3 <= n <= 100
i 3 <= y <= n
konstruuj n x n
macierz części dziesiętnej pi
( 14159...
), zaczynając od lewego górnego rogu. Następnie weź prawy górny trójkąt wielkości y x y
i połącz go razem. Podaj wynikową liczbę.
Na przykład, do wprowadzania n = 5
, y = 3
następujący matryca jest wykonana
14159
26535
89793
23846
26433
Wówczas prawy górny 3 x 3
trójkąt byłby
159
35
3
podobnie 159353
jak wynik.
Wkład
Dwie liczby całkowite - n
reprezentujące rozmiar kwadratowej matrycy cyfr pi i y
reprezentujące prawy górny trójkąt - w dowolnym dogodnym formacie .
Wydajność
- Wynikowa pocięta i połączona liczba, wydrukowana / wyświetlona na ekranie, zwrócona jako ciąg znaków itp.
- Doczepiany / wiodącym spacje nie jest obowiązkowe, tak długo jak nie ma spacji w wyjściu (to znaczy,
159 35 3
czy tym podobne byłyby nieważne). - Zauważ, że ponieważ wyraźnie szukamy cyfr
pi
, a nie przybliżenia lub obliczeń matematycznych, odpowiedzi nie powinny zaokrąglać ostatniej cyfry macierzy.
Zasady
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
- Dopuszczalny jest pełny program lub funkcja.
- Standardowe luki są zabronione.
Przykłady
n y output
-------------
3 3 141923
5 3 159353
6 4 1592589383
6 6 141592535893238643794
20 12 358979323846950288419715820974944628620899211706792306647223172745025559196615
Odpowiedzi:
05AB1E , 19 bajtów
Wykorzystuje kodowanie CP-1252 .
Wypróbuj online!
Wyjaśnienie
n=5, y=3
używane na przykładźródło
Python 2 (z sympią), 100 bajtów
Brak sympii,
260 246 244 233 231218 bajtówWykorzystuje to „The Spigot Algorytm For Pi” Stanleya Rabinowitza i Stan Wagon.
Standardowymi argumentami byłoby
a,b,c,d,e,f=0,1,1,1,3,3
uzyskanie pierwszej cyfry pi,3
ponieważ nie jest to wymagane, algorytm jest inicjalizowany do punktu przed1
uzyskaniem, co oszczędza dwa bajtya
ib
jest dłuższy, ponieważ wynik nie wymaga krojenia ii
może zaczynać się od0
raczej niż-1
.Trafia w domyślny limit rekurencji dla ostatniego przypadku testowego.
Używa
//
pierwszego z działów, abystr(v)
można je było zastąpić`v`
(w przeciwnym razie trwałobyL
to długo).repl.it
Nierekurencyjna wersja dla 232 bajtów, która ocenia również ostatni przypadek testowy:
repl.it (pierwsze wcięcie to jedna spacja, drugie wcięcie to jedna tabulacja)
źródło
Mathematica, 82 bajty
źródło
#&@@
zamiast[[1]]
.1415926535979323846433832798841971937510749448164899259
; ostatnia9
to setna cyfra pi, a 101 cyfra to8
- bez zaokrąglania)MATL,
232227 bajtów1 bajt zapisany dzięki @Luis
Wypróbuj online
Wyjaśnienie
źródło
Perl, 67 bajtów
Wymaga opcji wiersza poleceń
-nMbignum=bpi
, liczonej jako 12. Dane wejściowe są pobierane ze standardowego wejścia.Przykładowe użycie
źródło
C #,
232 bajty268 bajtówEdytować:
Pierwotnie użyłem stałego ciągu dla Pi poza metodą, ale wygląda na to, że to oszustwo. Musiałem użyć wartości C # Math.PI, która ma tylko 14 miejsc po przecinku, więc najwyższą
m
wartością, której mogę użyć, jest 3. Powrót do tablicy kreślarskiej ...Gra w golfa:
Nie golfowany:
Nie jest to najkrótsza odpowiedź, ale byłam szczęśliwa, że rozwiązałam tę ...
Wyjście testowe:
5 3 1593536 4 15925893836 6 14159253589323864379420 12 358979323846950288419715820974944628620899211706792306647223172745025559196615źródło
p
i nie jest to wbudowane w język (czego jestem pewien, że tak nie jest), musisz uwzględnić to w wyniku bajtu.