Ok, ostatnio miałem trochę kopnięcia w trójkąt, więc oto kolejny.
Trójkąt Clarka to trójkąt, w którym skrajnie lewy wpis każdego rzędu wynosi 1, a skrajne prawe wpisy składają się z wielokrotności 6, które rosną wraz ze wzrostem liczby wierszy. Oto wizualizacja
1 6
1 . 12
1 . . 18
1 . . . 24
1 . . . . 30
1 . . . . . 36
Podobnie jak Trójkąt Pascala, wszystkie inne wpisy są sumą liczb w ich prawym górnym i lewym górnym rogu.
Oto kilka pierwszych wypełnionych wierszy
1 6
1 7 12
1 8 19 18
1 9 27 37 24
1 10 36 64 61 30
1 11 46 100 125 91 36
Zadanie
Podany numer wiersza (zaczynając od góry) i numer kolumny (zaczynając od pierwszego niezerowego elementu w tym wierszu) wyprowadza wartość w tej konkretnej komórce. Oba wejścia mogą być indeksowane 1 lub 0 (możesz miksować i dopasowywać, jeśli chcesz). Poza granicami trójkąta jest niezdefiniowana i możesz zrobić, co chcesz, gdy będziesz pytany o te wartości.
To jest golf golfowy , celem jest zminimalizowanie liczby bajtów w twoim rozwiązaniu.
Odpowiedzi:
MATL , 15 bajtów
Pierwsze wejście to wiersz oparty na 0; druga to kolumna oparta na 1.
Wypróbuj online!
Wyjaśnienie
źródło
Pascal , 132 bajty
Wypróbuj online!
1-indeksowany.
źródło
CJam ,
2218 bajtów-4 bajty dzięki Martinowi Enderowi
Dane wejściowe to
(0-based row) (0-based column)
Wypróbuj online!
Wyjaśnienie
źródło
.+
. Zwykle ma to problem polegający na tym, że zachowuje element końcowy bez sumowania (co kosztuje usunięcie bajtów), ale w tym przypadku faktycznie oszczędza bajty, ponieważ wtedy nie trzeba dodawać6
znaku przy każdej iteracji. Możesz zaoszczędzić jeszcze więcej bajtów, ponieważ przesunięcie w lewo jest bezpłatne, jeśli wstawisz tylko0
jedną kopię:X6_]ri{0X$+.+}*ri=
_0\+
zamiast tego0X$+
jest taka sama liczba bajtów, jeśli wolisz.C #, 157 bajtów
Wypróbuj online
źródło
Python 2 , 67 bajtów
Wypróbuj online!
Podejście brutalnej siły, obliczyć
a
th rząd, a następnie wydrukowaćb
liczbę th, oba wejścia są oparte na 0źródło
Python 3 ,
646052 bajtówWypróbuj online!
Rozwiązanie rekurencyjne z wykorzystaniem 1-indeksowania. Zwraca „True” zamiast 1 ze względu na grę w golfa.
Dzięki:
źródło
Haskell , 41 bajtów
Wypróbuj online!
Zadzwoń, używając
n # m
gdzien
jest numerem wiersza im
numerem kolumny, oba indeksowane 1.źródło
Mathematica, 32 bajty
Wejście
źródło
JavaScript (ES6), 38 bajtów
Zawiesza się w przypadku ujemnych kolumn i zwraca wielokrotności sześciu w przypadku ujemnych wierszy lub nadmiernych kolumn.
źródło
C # (.NET Core) , 44 bajty
Pobiera kolumnę, a następnie wiersz, oba indeksowane 1. Może podjąć rząd następnie kolumny poprzez zamianę wejść:
(r,c)
. Powrócirow * 6
dla współrzędnych poza granicami po prawej (tj.column > row + 1
) I1
dla współrzędnych poza granicami po lewej (tjcolumn < 1
.).źródło
PHP , 64 bajty
funkcja rekurencyjna
wiersze 1-indeksowanie kolumny 0-indeksowanie
Dane wyjściowe dla wiersza = 0 i kolumny = 0 wynoszą 0, podobnie jak w sekwencji OEIS
Wypróbuj online!
PHP , 126 bajtów
wiersze 1-indeksowanie kolumny 0-indeksowanie
Dane wyjściowe dla wiersza = 0 i kolumny = 0 wynoszą 0, podobnie jak w sekwencji OEIS
Wypróbuj online!
źródło
R , 77 bajtów
Wymaga
zoo
biblioteki; odczytuje ze standardowego wejścia (wejścia oddzielone dwoma znakami nowej linii) i zwraca wartość, zNA
opcjami wyboru poza zakresem.Wypróbuj online!
źródło
Galaretka , 13 bajtów
Monadyczny link pobierający listę
[row, entry]
(indeksowanie 0 dla wpisów, indeksowanie 1 dla wierszy), zwracający wartość.Wypróbuj online!
W jaki sposób?
źródło