Ułamka z szeregu n
jest ułamkiem w następującej postaci:
zbieżny do n
.
Sekwencja a
w ciągłej części jest zazwyczaj zapisywana jako: [a 0 ; a 1 , a 2 , a 3 , ... a n ].
Napiszemy nasz w ten sam sposób, ale z powtarzającą się częścią między średnikami.
Twoim celem jest zwrócenie ciągłej części pierwiastka kwadratowego z n
.
Wejście: Liczba całkowita, n
. n
nigdy nie będzie idealnym kwadratem. Wynik
: ciągły ułamek sqrt(n)
.
Przypadki testowe:
2 -> [1; 2;]
3 -> [1; 1, 2;]
19 -> [4; 2, 1, 3, 1, 2, 8;]
Najkrótszy kod wygrywa. Powodzenia!
Odpowiedzi:
GolfScript (
6660 znaków)Ostrzeżenie: większość
?
tam jest zmienną reprezentującąfloor(sqrt(input))
raczej niż wbudowaną. Ale pierwszy to wbudowany.Pobiera dane wejściowe na standardowe wejście i wyjścia na standardowe wyjście.
Psuedokod algorytmu (dowód poprawności pozostawiony jako ćwiczenie dla czytelnika):
Po raz kolejny potrzebuję jednego operatora, który bierze
a b
stos i pozostawiaa/b a%b
na stosie.źródło
Python, 95
97(ale poprawne ...)Wykorzystuje tylko arytmetykę całkowitą i podział na piętra. To da poprawne wyniki dla wszystkich dodatnich liczb całkowitych, chociaż jeśli ktoś chce użyć długiej, musiałby dodać znak; na przykład
m=a=0L
. I oczywiście ... poczekaj milion lat, aż podłoga mojego biednego mężczyzny się skończy.Wynik:
edycja: teraz za pomocą algorytmu Petera Taylora. To
do...while
było fajne.źródło
*(c*c-n)
?Python,
878280Pobiera jedną liczbę całkowitą i daje dane wyjściowe takie jak:
źródło
x-int(x) -> x%1
. Jestem pod wrażeniem :)Mathematica
3331Dane wyjściowe mają format listy, który jest bardziej odpowiedni dla Mathematica. Przykłady:
źródło
ContinuedFraction@Sqrt@#&
Python (
136 13396)Standardowa metoda ciągłych frakcji, bardzo golfa.
źródło
while 1:
. Możesz także umieścić większość instrukcji w pętli while w jednym wierszu.8 ;1;
dla 74 i 75; to nie wydaje się właściwe. Wisi na 76.C, 137
Łącznie z nową linią, zakładając, że nie muszę wyrzucać własnego pierwiastka kwadratowego.
Łamie się dla sqrt (139) i zawiera sporadyczne dodatkowe średniki w danych wyjściowych, ale jestem zbyt zmęczony, aby pracować nad tym jeszcze dziś wieczorem :)
źródło
Perl, 99 znaków
Czy nie zepsuć na 139, 151, itd. Testowane z numerem od 1 do 9 cyfr.
Uwaga:
$%
,$=
, i$-
są wszystkie zmienne całkowite wymuszeniem.źródło
APL (NARS), 111 znaków, 222 bajty
Funkcja f jest oparta na algorytmie znalezionym na stronie http://mathworld.wolfram.com/PellEquation.html w celu rozwiązania równania Pell. Ta funkcja f ma na wejściu wszystkie liczby nieujemne (również ułamek typu). Możliwe, że coś poszło nie tak, pamiętam, że √ ma, jak widzę, problem dla dużych liczb ułamkowych, ponieważ
więc byłaby jedna funkcja sqrti (). Z tego powodu ułamek wejściowy (i całkowity) musi być <10 ^ 15. test:
jeśli argument jest kwadratem liczby, zwróci jedną listę tylko jednego elementu, sqrt tej liczby
Gdyby to zależało ode mnie, w jednym ćwiczeniu bez „codegolf” wolałbym poprzednią edycję, która używa funkcji sqrti () ...
źródło
fq
ia0
. także:(a×Q)-P
->P-⍨a×Q
Q←Q÷⍨
- czy Nars obsługujeQ÷⍨←
?