W oparciu o to wyzwanie.
W grze rytmicznej osu! , modyfikator trudności „Podwójny czas” faktycznie zwiększa prędkość tylko o 50%.
Twoim zadaniem jest napisanie programu, który wyświetli dodatnią parzystą liczbę całkowitą (większą niż 0), a gdy każdy bajt / znak (twój wybór) w kodzie źródłowym zostanie zduplikowany, powinien wypisać liczbę pomnożoną przez 1,5.
Na przykład, jeśli twój kod źródłowy to ABC
i daje wynik 6, to AABBCC
powinien wypisać wynik 9.
Zgodnie z pierwotnymi zasadami wyzwania:
Zasady
- Musisz zbudować pełny program.
- Początkowe źródło musi mieć co najmniej 1 bajt.
- Obie liczby całkowite muszą znajdować się w bazie 10 (wyprowadzanie ich w jakiejkolwiek innej bazie lub z notacją naukową jest zabronione).
- Twój program nie może pobierać danych wejściowych (lub mieć nieużywane, puste dane wejściowe) i nie może generować błędów (ostrzeżenia kompilatora nie są uważane za błędy).
- Wyprowadzanie liczb całkowitych ze spacjami końcowymi / wiodącymi jest dozwolone.
- Nie możesz zakładać nowego wiersza między kopiami swojego źródła.
- To jest golf golfowy , więc wygrywa najmniej bajtów w każdym języku !
- Obowiązują domyślne luki .
Wyobrażam sobie, że będzie to o wiele mniej trywialne niż oryginalne wyzwanie, ale mam nadzieję, że zobaczymy kilka kreatywnych i unikalnych odpowiedzi!
code-golf
source-layout
Skidsdev
źródło
źródło
write a program that outputs a positive even integer
Yes will will. Każdą liczbę parzystą można pomnożyć przez 1,5, aby uzyskać całkowitą liczbę całkowitąfull program
. Trudno sobie wyobrazić, że zduplikowany program nadal ma prawidłowy punkt wejścia / funkcję.Odpowiedzi:
Pylony ,
754 bajtówWybrałem losowy język w TIO
Wyjaśnienie:
Wypróbuj online!
Podwojony:
Zaoszczędź 2 bajty dzięki Officialaimm
Zaoszczędzono 1 bajt dzięki Veedrac
źródło
4/6vt
działa ...46vt
zrobiłby tego samego?Galareta , 2 bajty
Wypróbuj online!
Wyjaśnienie:
Wersja podwójna:
Wypróbuj online!
Wyjaśnienie:
źródło
LibreOffice Calc, 8 bajtów
Zapisz go jako
*.csv
i otwórz w LibreOffice Calc. Otrzymasz 22 w A1.Podwój je:
Otrzymasz 33 w A1
źródło
MATL , 3 bajty
Wypróbuj online! Lub wersja podwójna .
Wyjaśnienie
W MATL wartość skalarna (liczba, char, wartość logiczna) jest taka sama jak tablica 1 × 1 zawierająca tę wartość.
Wersja normalna:
Wersja podwójna:
źródło
:)
[czasami używamy tego, aby uzyskać pierwszen
elementy z tablicy ...]vim, 5
Bez podwajania:
Z podwojeniem:
źródło
Nie jestem pewien, czy ta odpowiedź jest prawidłowa. Po prostu opublikuj tutaj, na wypadek gdyby ktoś wpadł na jakieś pomysły.
Node.js z flagą -p, 7 bajtów
Autorstwa Alex Varga :
Node.js z flagą -p, 11 bajtów
Stary:
Wyjście 22 i 33.
źródło
-p
flagi do wyprowadzenia wartości wyrażeniaPython 2 REPL, 11 bajtów
To po prostu daje wynik 3 * 2 = 6. To jest zduplikowane
co daje 3 ** 2, czyli 3 do potęgi 2 lub 9.
źródło
APL, 7 bajtów
Wydruki
2
.Wydruki
3
.Wypróbuj online!
Waaat?
Pojedynczy:
Podwójnie:
źródło
Właściwie 3 bajty
Wypróbuj online!
Wyjaśnienie:
Wersja podwójna:
Wypróbuj online!
Wyjaśnienie:
źródło
CJam , 4 bajty
Spróbuj normalnie!
Spróbuj dwukrotnie!
Wyjaśnienie
Normalna:
Podwójnie:
źródło
AB],
działa również.05AB1E , 2 bajty
Wypróbuj online!
Wyjaśnienie:
Wersja podwójna:
Wypróbuj online!
Wyjaśnienie:
źródło
Neim , 2 bajty
Wypróbuj online!
Wyjaśnienie:
Wersja podwójna:
Wypróbuj online!
źródło
Pyth, 3 bajty
Wypróbuj tutaj.
Wyjaśnienie:
Wersja podwójna:
Wypróbuj tutaj.
Wyjaśnienie:
źródło
R 11 bajtów
Wypróbuj online!
!
jest negacją i**
jest potęgowaniem (alias dla^
). Liczby są konwertowane na logiczne:0
naFALSE
, wszystkie inne naTRUE
. Wartości logiczne przekonwertowane na liczby całkowite:FALSE
do0
,TRUE
do1
, tak!0==1
,!1==0
,!!00==0
i!!11==1
.W ten sposób obliczana jest pojedyncza wersja8 × 1 + 1 × 0 = 8 , a wersja podwójna jest obliczana 880+ 111= 12 .
źródło
*
i**
, ale pobiłeś mnie!!0
jest denerwująca). Może być coś krótszego-
i*
, ale nie znalazłem jeszcze takiego rozwiązania ...Cubix , 6 bajtów
Wydruki
2
.Przesuwa
1
,)
inkrementuje,W
przeskakuje w lewo doO
których wyjść2
i@
kończy program.Podwojone, oczywiście
OO..11))WW@@
, że na kostce jest:Popycha
1
dwa razy,)
dwukrotnie zwiększa,W
ponownie skacze w lewo, co umieszcza go po prawej stronieO
na północ, który wyprowadza3
, a następnie następna komenda@
kończy działanie programu.Wypróbuj online!
Podwojony online!
źródło
Klein ,
86 bajtówPojedyncze , podwójne
Wyjaśnienie
W przypadku singla program podąża dość prostą ścieżką. Pierwsze lustro odchyla je do drugiego, które odchyla je przez
4
do końca programu.Podwójny jest trochę bardziej złożony. Oto on:
Pierwsze dwa zwierciadła działają tak samo, jednak istnieje nowe zwierciadło ze względu na podwojenie, które odchyla ip z powrotem do początku, jest łapane przez duplikat pierwszego zwierciadła i odchylane w kierunku końca. Wszystko, co jest uruchamiane, to to,
33++
które ocenia na 6.źródło
TI-Basic, 3 bajty
Pojedynczy:
Ostatnie wyrażenie jest domyślnie zwracane / drukowane w TI-Basic, więc jest drukowane
2
Podwojony:
Zwraca / drukuje 3
TI-Basic to tokenizowany język ;
int(
,√(
i8
każdy z nich ma w pamięci jeden bajt.źródło
Rubinowy REPL, 8 bajtów
REPL drukuje tylko ostatnią wartość oceniana:
22
.Podwojony:
Ten czas
33
jest ostatnią ocenianą wartością. Ciąg jest odrzucany ponownie, a a#
rozpoczyna komentarz.źródło
> <>,
198 bajtówWydruki
22
Wypróbuj online!
Wyjaśnienie:
Podwojony:
Wydruki
33
Wypróbuj online!
Wyjaśnienie:
Stara wersja:
Normal:Wydruki
2
Wypróbuj online!
Wyjaśnienie:
Podwojony:
Wydruki
3
Wypróbuj online!
Wyjaśnienie:
źródło
Zsh , 14 bajtów
Wypróbuj online!
Przygotowanie pełnego programu w języku innym niż golfowy do drukowania czegokolwiek ze zduplikowanym kodem źródłowym jest wyzwaniem. Zsh jest bardzo przydatny do tego, ponieważ pliki i heredoki są domyślnie przekazywane do
cat
. Spójrzmy na pierwszą linię w obu przypadkach:Dopóki
3
nie jest to program, pierwszy program będzie drukował tylko22
. Drugi program wydrukuje w33
otoczeniu dodatkowych znaków nowej linii (z powodu duplikacji).Jeśli
3
jest funkcją / programem / aliasem, to 18-bajtowe rozwiązanie nadal będzie działać!Wypróbuj online!
Ostatnim
\
jest kontynuacja linii, więc nowa linia jest odrzucana, skutecznie tworząc polecenie echoecho '22\c3'
. Do\c
przyczyn echo zatrzymać po drukowaniu22
(co także tłumić przełamane).źródło
Perl 6 , 14 bajtów
Wypróbuj online! Spróbuj dwukrotnie!
Korzysta z wygodnie nazwanej funkcji debugowania,
dd
aby wyprowadzić podwójny program do STDERR. Aby oddzielić logikę, umieszczamy podwójny program w cudzysłowach, które następnie się znoszą, gdy są podwojone, wraz ze znakiem komentarza,#
aby skomentować nieprawidłowy program normalny.źródło
Stax , 3 bajty
Uruchom i debuguj
Uruchom i debuguj zdublowany
U
popycha -1.J
kwadraty.^
przyrosty.źródło
MathGolf , 2 bajty
Wypróbuj online! Spróbuj dwukrotnie
Podobnie do innych odpowiedzi, ponieważ pierwsza instrukcja daje
1
parzystą, gdy jest podwojona, a druga zwiększa ją. W tym przypadku użyłem odwrotnego potęgowania (0**0 = 0**0**0 = 1
), ale mogła to być także dowolna z!£≤°
instrukcji, a może nawet więcej.źródło
Japt , 2 bajty
Kolejne rozwiązanie „czynnikowe + 1”.
Sprawdź to
Sprawdź to
źródło