Wkład
- Lista od 1 do 255 dodatnich liczb całkowitych (włącznie), każda w zakresie od 1 do 2 32 - 1 (włącznie).
- Twój format wejściowy nie musi być identyczny z przypadkami testowymi.
- Podanie danych bez zer wiodących musi zostać zaakceptowane.
- Podanie z wiodącymi zerami nie jest akceptowane.
- Między liczbami całkowitymi możesz użyć dowolnego ogranicznika.
- Liczba całkowita może być reprezentowana przez ciąg, ale poszczególne cyfry określonej liczby całkowitej muszą być ciągłe.
- Możesz wybrać dowolną bazę danych wejściowych (w tym binarną i jednoargumentową), pod warunkiem, że dane wyjściowe również znajdują się w tej bazie.
Wydajność
- Jedna liczba całkowita.
- Dane wyjściowe nie mogą mieć zer wiodących.
- Dane wyjściowe muszą być w tej samej bazie co dane wejściowe.
- Wynik można obliczyć w dowolny sposób, ale musi on pasować do wyniku następującego obliczenia:
Obliczanie biplex
- Bity reprezentacji binarnej są ponumerowane od prawej strony, zaczynając od zera, więc bit i znajduje się w kolumnie reprezentującej 2 i .
- I th bitsum jest sumą í th bitów binarnych reprezentacji każdego z numerów wejściowych.
- Bitsum maksymalna jest najwyższą wartością podjęte przez bitsums.
- Minimum bitsum jest najniższy niezerową wartość podjęte przez bitsums.
- I th cyfra binarna reprezentacja wyjścia jest:
- 1, jeżeli i- ty bitum jest równy maksimum bitowemu lub minimum bitowemu.
- 0 w przeciwnym razie.
Przykład działał
W tym przykładzie zastosowano dane binarne dla danych wejściowych i wyjściowych.
Input: 100110
1101110
1100101
_______
Bitsums: 2301321
Output: 101101
Maksymalna wartość bitowa wynosi 3, a minimalna wartość bitowa wynosi 1, więc wyjście ma 1s wszędzie, że bitsum to 3 lub 1, a 0 wszędzie indziej.
Przypadki testowe
Przypadki testowe mają postać:
Input => Output
Przypadki testowe w formacie binarnym:
[1] => 1
[10] => 10
[1, 10, 101] => 111
[11111111111111111111111111111111] => 11111111111111111111111111111111
[10010010010010010010010010010010, 10101010101010101010101010101010, 11011011011011011011011011011011] => 11100011100011100011100011100011
[10001011100010100110100101001001, 10110000111110010000111110111010, 1101110001101101011010010100101, 1010101010001011101001001010101] => 11
Te same przypadki testowe w systemie dziesiętnym:
[1] => 1
[2] => 2
[1, 2, 5] => 7
[4294967295] => 4294967295
[2454267026, 2863311530, 3681400539] => 3817748707
[2341103945, 2969112506, 1849078949, 1430639189] => 3
Tabela liderów
Dzięki fragmentowi tablicy wyników Martina
Operator został nazwany biplex, skrót od binarnego ekstremum samolotu, po dyskusji na czacie .
code-golf
base-conversion
binary
trichopaks
źródło
źródło
You may choose to use any base for input and output (including binary and unary), provided they are both in the same base
. Więc tak, idź na to :)Odpowiedzi:
Galaretka, niekonkurująca
14 bajtów Ta odpowiedź nie konkuruje, ponieważ wyzwanie poprzedza powstanie galaretki.
Wypróbuj online!
Jak to działa
źródło
Pyth,
2625 bajtówWypróbuj online: pakiet demonstracyjny lub testowy
Wyjaśnienie
źródło
_B
Stosowanie jest genialnyJ,
3130242321 bajtówJest to milczący, monadyczny czasownik, który pobiera listę liczb całkowitych dziesiętnych i zwraca ich dziesiętny bipleks.
Dzięki @Zgarb za sugestie, które pozwoliły zaoszczędzić 4 bajty bezpośrednio i utorowały drogę dla 2 kolejnych!
Dzięki @randomra za grę w golfa jeszcze 2 bajty!
Przypadki testowe
Jak to działa
źródło
Minkolang 0.10 ,
10979 bajtówDane wejściowe i wyjściowe są dziesiętne. Wypróbuj tutaj.
Wyjaśnienie
Stara wersja:
Wypróbuj tutaj!
Wyjaśnienie
Chodzi o to, że funkcja tablicowa jest intensywnie używana (
a A
) do przechowywania bitów, z których można znaleźć minimum i maksimum, a następnie1
s i0
s są odpowiednio wyprowadzane, z zrzutem wiodących0
s w dwóch miejscach.źródło
Brainfuck , 619 bajtów
Pierwsza odpowiedź tutaj za długo, więc pomyślałem, że zrobię dobrą!
Czy ... Czy wygrałem?
Ten program oczekuje znaku nowej linii (ASCII
10
) po każdej liczbie binarnej i wymaga spacji (ASCII32
) na końcu.Przebiegi testowe:
(Nowe linie dodawane po każdym przypadku z
++++++++++.
dodawane na końcu programu)Wyjaśnienie
Wciąż trwają prace, ale powolne. Z braku czasu właśnie skopiowałem notatki, które zrobiłem podczas pisania tego programu, które na razie wystarczą na wyjaśnienie:
źródło
CJam, 27 bajtów
Pobiera dane wejściowe jako listę bazową w stylu CJam-10. Sprawdź to tutaj. Alternatywnie uruchom wszystkie przypadki testowe (skrypt odrzuca oczekiwane dane wyjściowe i konwertuje format wejściowy w razie potrzeby).
Wyjaśnienie
źródło
1
s w tych bitach, które odpowiadają płaszczyznom bitów, w których wystąpiły minima i maksima.JavaScript (ES6),
215185176 bajtówStosowanie
Wyjaśnienie
źródło
f=(a)=>{}
=f=a=>{}
2) Możesz zamienić swojefor...in
pętle wfor...of
pętle, oszczędzając kilka bajtów:for(i in a)for(b=a[i]...
=for(i of a)for(b=i...
,for(i in s)r=s[i],d=...
=for(r of s)d=...
3) Bitowe LUB|
automatycznie zmienia wartość true na 1 i false na 0, więco+=r==q|r==d?1:0;
to samo coo+=r==q|r==d;
.return parseInt(o,2)
do:return+('0b'+o)
s[l-d-1]=(s[l-d-1]|0)
zs[T=l-d-1]=(s[T]|0)
. Golić więcej 2, wymienićb=i.toString(2),l=b.length,d=l
zd=l=(b=i.toString(2)).length
.Julia, 141 bajtów
Nie golfowany:
źródło
Simplex v.0.7 , 38 bajtów
Uproszczone komentarze. Wejście w formacie binarnym, w tej chwili nie działa interpreter. Mam nadzieję, że komentarze są wystarczające.
źródło
Oktawa, 50 bajtów
Przykład:
źródło
@(a)
definiuje anonimową funkcję, która przyjmuje wektor wejściowya
.[""
zmusza dane wyjściowe do ciągu (tak mi się wydaje).(b=sum(a-48))
definiujeb
się jako wektor zawierający bitów.b==max(b)
będzie wektorem mającym1
w danym miejscu, jeśli bit jest tam maksimum, a0
inaczej.b(b>0)
jest wektorem każdego elementub
większego niż0
, więcb==min(b(b>0))
jest wektorem zawierającym,1
gdy bitsum jest minimum, i w0
przeciwnym razie. Potem jest OR razem i+48
dla ASCII.function o=b(i)
(newline)r=sum(i>48);o=['' (r==max(r)|r==min(r))+48];
JavaScript (ES6), 158
Funkcja z parametrem tablicy numerycznej zwracająca liczbę. Przy tej samej liczbie bajtów może uzyskać parametr tablicy ciągów (zawierający prezentacje bazy 2) i zwrócić ciąg bazy 2 - wystarczy przesunąć
.toString(2)
koniec na końcu por
.źródło
Haskell,
198182178161 znakówNadal jestem początkującym golfistą. Tylko 80 reputacji pochodzi z odpowiedzi.
Jak to działa.
Zamiast wypełniania odwracam tablicę, a następnie dodaję, używając zdefiniowanego przez użytkownika (&). Nie używam foldl1 (zipWith (+)), który jest krótszy, ponieważ zipWith usunie zbędny element. Następnie znajduję maksimum i niezerowe minimum, które również wymaga funkcji zdefiniowanej przez użytkownika. Następnie dopasowuję element do maksimum i niezerowego minimum, 1 jeśli pasuje, 0 jeśli nie pasuje. Następnie odwracamy i zamieniamy go na liczbę binarną.
DO ZROBIENIA:
Data.List
źródło
k
,c
jest używany tylko raz, więc nie trzeba go umieszczać wwhere
klauzuli. Użyj go bezpośrednio:...||(x==a#b)...
. Dlaczego nawiasy klamrowe? Wl
:concat.map show
jestconcatMap show
albo jeszcze lepiej>>=
:l=(>>=show).v...
. (Uwaga: jest też to,=<<
co robi to samo, ale z odwróconymi argumentami:)(show=<<).v...
.>>=
i=<<
pracuj tutaj w kontekście listy i rób różne rzeczy w funkcji lub w innych kontekstach.[]
w ciągu ostatnich przypadkach&
oraz#
z_
:b&_=b
a_#l=l
.(x==b)||(x==c)
(lub(x==b)||(x==a#b)
po usunięciuc
) można zastąpić przezelem x[b,c]
(odpowiednio:)elem x[b,a#b]
.u=maximum
ik a=m(\x->fromEnum$elem x[u a,a#u a])a
powinien działać._&a=a
, musi pozostać[]&a=a
, w przeciwnym razie pierwsza lista zostanie utracona, jeśli druga będzie pusta. Używaj_
tylko w ostatnim przypadku - może to jest twój błąd.Python 3,
181126122 bajtów( Wyjąłem większość ukośników z liczby bajtów, ponieważ robiło się to trochę śmieszne). 21 bajtów off dzięki Sp3000 !
Nieco mniej golfa:
Dane wejściowe są oczekiwane w postaci binarnej, przy czym tylko spacje oddzielają liczby. Dane wyjściowe są również binarne.
źródło
JavaScript,
154150 bajtówDzięki za metodę edc65 do obliczeń min./maks. Skróciłem mój kod o 4 bajty.
Wyjaśnienie
źródło
f=i=>(m=0,r=[],i.map(n=>{for(k=32;k--;n=n/2|0)r[k]=~~r[k]+n%2}),r.map(n=>m+=m+(n==Math.min(...r.filter(x=>x))|n==Math.max(...r))),m)
ShapeScript , 186 bajtów
Ważny, bezużyteczny język dla ważnego, bezużytecznego operatora.
I / O jest w formacie binarnym. Program oczekuje każdej liczby w osobnej linii, z których każda kończy się na linii.
Wypróbuj online!
Przypadki testowe
źródło
APL, 27 bajtów
Jest to funkcja monadyczna, która pobiera listę liczb całkowitych dziesiętnych i zwraca ich bipleks dziesiętny.
Wypróbuj online w wersji demonstracyjnej ngn / apl .
Jak to działa
źródło
Wolfram Language, 113 bajtów
Ta wersja pobiera dane z wyskakującego okna, przy czym liczby są wprowadzane w postaci „{x, y, z, ...}”, (bez cudzysłowów).
Wkład:
Wydajność:
Pobiera dane wejściowe w dynamicznym manipulatorze jako ciąg w postaci „{x, y, z}”, gdzie x, y i z są podstawowymi liczbami całkowitymi 10 (z zerami wiodącymi lub bez). Dane wyjściowe znajdują się również w bazie 10.
Istnieją inne sposoby wprowadzania tego w sposób, który pozwoliłby zaoszczędzić na liczbie znaków, ale myślę, że to rozwiązanie jest eleganckim zastosowaniem dynamicznego GUI, który wykonuje obliczenia
Jeśli chcesz uruchomić to w chmurze, możemy użyć CloudDeploy:
Wdrożenie w chmurze zwiększa liczbę znaków do 256, jednak ...
Dane wejściowe do strony FormPage są także ciągiem znaków w postaci „{x, y, z}”, gdzie x, yiz stanowią 10 liczb całkowitych podstawowych.
Sam to wdrożyłem w chmurze i możesz to wypróbować na https://www.wolframcloud.com/objects/97b512df-64f8-4cae-979b-dba6d9622781
źródło
Python 3, 197
Zajmuje liczby binarne rozdzielane spacjami.
Wersja bez golfa:
źródło
C #, 255
Kompletny program, wprowadzany jako argumenty wiersza poleceń - oddzielone spacją - dziesiętnie.
Bardziej czytelny:
źródło
Rubin, 127 bajtów
Pobiera tablicę jako dane wejściowe.
źródło
CoffeeScript, 194 bajty
Pobiera dane wejściowe jako liczby binarne oddzielone przecinkami, dane wyjściowe w postaci binarnej.
Spróbuj.
źródło
GolfScript, 46 bajtów
Wypróbuj online na Web GolfScript .
Przypadki testowe
źródło
C ++, 192 bajty
Akceptuje wprowadzanie 32-bitowej tablicy liczb całkowitych bez znaku oraz liczbę elementów w tej tablicy.
Nie golfowany:
źródło