Zdefiniowane rozmiary papieru ISO:
Rozmiary papieru w serii A są określone przez następujące wymagania:
The length divided by the width is the square root of 2.
The A0 size has an area of 1 unit.
Each subsequent size A(n) is defined as A(n-1) cut in half parallel to its shorter sides.
Zadanie:
podany sygnał f[n]
wyjściowy A0 podzielony na n
podrejony.
Przypadki testowe:
f[1]
do f[12]
:
Tutaj podaje się A0 f[1]
, ale indeksowanie nie jest konieczne.
Kryteria wygranej:
Najkrótszy kod w bajtach wygrywa.
code-golf
graphical-output
recursion
jaskółka oknówka
źródło
źródło
f[2]
byćA0
linia pozioma, która ją dzieli? tzn.f[2]
czy tak naprawdę nie jest w przypadku testowymf[3]
?Odpowiedzi:
BBC BASIC 49 znaków ASCII
Tokenizowany rozmiar pliku 44 bajty
Znacznie krótszy niż wcześniej! Zawsze zapominam o operacjach bitshift w BBC BASIC dla Windows, ponieważ nie były one dostępne na moim starym komputerze w tamtych czasach.
BBC BASIC 63 znaki ASCII
Tokenizowany rozmiar pliku 58 bajtów
Pobierz tłumacza na http://www.bbcbasic.co.uk/bbcwin/download.html
Korzysta z indeksowania zerowego, co wolę. Zatem 0 wysyła papier dla A0, 1 wyjścia A0 podzielone na parę A1s itp.
Konieczne jest przełączanie między połówkami współrzędnych X i Y, ale zrobienie tego w tablicy kosztowałoby zbyt wiele bajtów. Zamiast tego wykorzystuję fakt, że BBC basic ma blok statycznych zmiennych całkowitych o
A%..Z%
wielkości 4 bajtów, każdy przechowywany w ciągłej pamięci. Przechowuję wartości X i Y wA%
iC%
uzyskuję dostęp za pomocą wskaźnika do%B
modyfikacji wartością d, która zmienia się na przemian między4
i-4
.Nie golfił
Wynik
źródło
JavaScript (ES6) + HTML,
9694 + 34 =130128 bajtówźródło
Mathematica,
8785 bajtówDzięki @martin za 1 bajt.
źródło
EdgeForm@Thin
: -1 bajtJavaScript (ES6) / SVG (HTML5), 170 bajtów
Wykorzystuje indeksowanie 1.
źródło