10 9 8 7 6 5 4 3 2 1… Drukuj 2016

12

Jako efekt uboczny mojego wyzwania w Puzzling , Twoim celem jest wyjście 2016.

Zasady:

  • Musisz podać liczby 10 9 8 7 6 5 4 3 2 1w tej kolejności. Można ich używać jako pojedynczych liczb całkowitych lub konkatenować razem (jak 1098), ale 10nie można ich dzielić na 1i 0- między cyframi nie może być żadnych znaków. Zauważ, że w niektórych językach 10może nie przedstawiać literału całkowitego 10, co jest dopuszczalne.
  • Twój kod nie może zawierać żadnych innych liczb ani predefiniowanych zmiennych liczbowych lub stałych (więc Tw Pyth nie jest dozwolony, ponieważ jest stałą numeryczną).
  • Musisz obliczyć 2016 za pomocą liczb. Po prostu wyprowadzanie 2016bez wykonywania jakichkolwiek operacji na wymaganych liczbach (na przykład przez dekodowanie zakodowanego łańcucha składającego się tylko z znaków alfabetycznych) jest niedozwolone. Wyprowadzanie 2016w kawałkach (np. 20Wtedy 16) również nie jest dozwolone; musisz mieć jedno wyjście składające się z wartości liczbowej 2016.
  • Prawidłowa odpowiedź z najmniejszą liczbą bajtów wygrywa.
rybo111
źródło
3
@nicael Jestem pewien, że rozwiązanie zagadki zostało zakończone. Mieliśmy kilka takich „operatorów wstawiania, aby rozwiązać równanie”, ale są wyjątkowo trudne do wyszukania.
Martin Ender
1
Poprzednia wersja (2) była bardziej interesująca. Nowością jest właśnie drukowanie łańcucha, obliczenia zostały już wykonane w zagadkowym pytaniu ...
nicael
1
Tylko kilka pytań w oparciu o to, co widzę na obecnym pytanie: 1) możemy obliczyć 20a 16i wydrukować je jeden po drugim, czy też obliczona liczba TRZEBA 2016 przed drukowaniem? 2) Czy funkcje są dozwolone? 3) Czy dozwolone jest łączenie cyfr? np. 1098(zakładam, że tak w poprzednich komentarzach, ale tylko w celu potwierdzenia) 4) Czy „obliczanie 2016 za pomocą liczb całkowitych” oznacza, że ​​nigdy nie możemy mieć liczb zmiennoprzecinkowych w kroku pośrednim? np. czy mogę uzyskać pierwiastek kwadratowy z liczby i zaokrąglić w dół?
Sp3000,
1
5) Co się stanie, jeśli mam język, w którym „10” nie jest traktowane jako liczba dziesiąta, ale raczej ten, po którym następuje zero i nie było mowy o tym? Czy taki język jest zdyskwalifikowany? (przykładowy język: Befunge) 6) Czy możemy użyć predefiniowanej zmiennej liczbowej zamiast 10, np. T987654321?
Sp3000,
@ Sp3000 1 nr 2 nr 3 Tak. 4 Pływaki są OK, o ile nie złamiesz żadnych innych zasad. 5 10musi być uwzględnione, więc musisz jakoś sobie z tym poradzić. 6 Tak długo, jak się 10pojawia wcześniej T.
rybo111

Odpowiedzi:

22

Galaretka , 17 15 14 bajtów

109876:54+3_21

Wypróbuj online!

Jak to działa

109876:54+3_21

109876            Initialize the left argument as 109876.
      :54         Perform integer division by 54, yielding 2034.
         +3       Add 3, yielding 2037.
           _21    Subtract 21, yielding 2016.
Dennis
źródło
8

Sześciokąty, 61 bajtów

Nie wygram, ale chciałem po prostu rzucić wyzwanie w Hexagony.

To używa innej metody niż inne odpowiedzi (znacznie gorzej). Uwzględnia niektóre czynniki z 2016 r. (2,3,6,7,8) i mnoży je wszystkie razem.

Zminimalizowane:

\109.8/7}_=\"6<}{>...$_5_4/*!@...../}3.."2\/="*=}<*...$1>"*"/

Unminified:

    \ 1 0 9 .
   8 / 7 } _ =
  \ " 6 < } { >
 . . . $ _ 5 _ 4
/ * ! @ . . . . .
 / } 3 . . " 2 \
  / = " * = } <
   * . . . $ 1
    > " * " /

Wyjaśnienie już wkrótce;

niebieski
źródło
5
Wyjaśnienie już wkrótce; ” Myślę, że inaczej rozumiemy „wkrótce”. ; P
Kevin Cruijssen
1
@KevinCruijssen Ups, zupełnie o tym zapomniałem. ... A teraz nie rozumiem, jak to działa. Wspaniały.
Niebieski
5

Pyth, 16 bajtów

+/109876 54-3 21

Czy dzielenie liczb całkowitych, a następnie dodaje (3-21).

Wypróbuj tutaj .

lirtosiast
źródło
4

TI-BASIC, 17 15 bajtów

int(109876/54-√(321

To używa metody @ nicael.

17 bajtów:

10+9*8-7+654*3-21

To rozwiązanie Puzzling można bezpośrednio przetłumaczyć na TI-BASIC.

lirtosiast
źródło
1
Obowiązuje również w Japt i prawdopodobnie w niektórych innych.
ETHproductions
1
Działa również w PowerShell i Mathematica (Wolfram) i wyobrażam sobie wiele, wiele innych. I prawdopodobnie działa w kilkudziesięciu innych z trywialnymi modyfikacjami.
AdmBorkBork
Cudowne
Jeśli chcesz wziąć inne języki, usunę jeden z moich wiki wiki.
Addison Crump
3

Japt, 17 16 bajtów

Â(109876/54-321q

Nienawidzę tego 17. Prawdopodobnie znajdzie inne rozwiązanie. YAYZ.

Wyjaśnienie:

  • 321q jest pierwiastkiem kwadratowym z 321.
  • ~~ liczba pięter.

Wypróbuj online!

Nicość
źródło
Â== ~~:-)
ETHproductions
109876/54-321¬fjest 15 :-D
ETHprodukcje
@Eth, ale f nie działa, nie?
nicael
To powinno zostać naprawione. Ale tłumacz jest teraz w trakcie prac konserwacyjnych, natychmiast go odzyskam.
ETHproductions
109876/54-321q)fteraz działa. Druga sugestia nie.
ETHproductions
3

Matlab / Octave, 23 bajty

(10-9+8-7)^(6-5+4)*3*21

Wypróbuj online

Luis Mendo
źródło
3

pne, 14

109876/54+3-21

Nic ekscytującego tutaj - pożycza z innych odpowiedzi.

Cyfrowa trauma
źródło
1
Odpowiednik dc 109876 54/3+21-potrzymuje 16 punktów, ale nie gwarantuje własnej odpowiedzi.
Toby Speight
2

Haskell, 31 bajtów

[10,9*8*7+const 6 5..]!!4+3*2*1

Nie najkrótszy, 10+9*8-7+654*3-21jak widać w innych odpowiedziach, działa również w Haskell, ale coś innego.

To tworzy listę zaczynającą się od 10i 9*8*7+6 = 510, więc przesunięcie dotyczy 500następujących elementów. Cała lista jest [10,510,1010,1510,2010,2510 ...]. Wybieramy 4thelement (oparty na indeksie 0), tj. 2010I dodajemy 3*2*1 = 6. Voilà.

Używam, const 6 5 = 6aby pozbyć się tego, 5co nie jest potrzebne.

nimi
źródło
2

Python 2, 20 bajtów

print 109876/54+3-21

Znów to samo nudne 2016.(740). Wykorzystuje fakt, że jeśli nie masz liczby dziesiętnej w wyrażeniu, zwraca liczbę całkowitą.

Erik the Outgolfer
źródło
1

> <> (ryba), 18 bajtów

10987**r65r4*n;321

wyjaśnienie:

mnoży 9 8 i 7 razem, aby uzyskać 504, odwraca stos i odwraca go ponownie tuż przed dodaniem 4, następnie mnoży 504 i 4, aby uzyskać 2016. Następnie drukuje liczbę i kończy program przed ostatnimi 3 liczbami (mógłbym to zrobić potem też bez różnicy, jeśli ma to zasadnicze znaczenie).

torcado
źródło
1

Matematyka ++ , 17 bajtów

_(109876/54)+3-21

Właściwie to się drukuje 2016.0. Ale tak naprawdę nie ma sposobu, aby wydrukować dokładny ciąg 2016w tym języku.

Tutaj również działałoby 17-bajtowe rozwiązanie TI-BASIC.

SuperJedi224
źródło
1

Polyglot, 17 bajtów

10+9*8-7+654*3-21

Ten kod, po raz pierwszy użyty w odpowiedzi TI-BASIC Thomasa Kwa , działa również w:

  • AppleScript (pełny program)
  • bc (pełny program)
  • Math ++ (wyrażenie lub pełny program)
  • Matematyka (funkcja, dlatego nie jest poprawna)
  • PowerShell (pełny program)
  • Japt (pełny program)
  • JavaScript (wejście konsoli, dlatego nie jest poprawne) Wymaga drugiej weryfikacji
  • Perl 5 (funkcja, dlatego nie jest poprawna). Wymaga drugiej weryfikacji
  • Haskell (funkcja, dlatego nie jest ważna)
  • Python REPL (wyrażenie, więc środowisko REPL jest potrzebne, aby uzyskać wynik)
VoteToClose
źródło
1
I o co chodzi?
nicael
@nicael Idę --- planuję (chyba, że ​​Thomas Kwa również chce dodać inne odpowiedzi do swojego), aby dodać wszystkie odpowiedzi, które dotyczą tej odpowiedzi (oprócz TI-BASIC), które mogę znaleźć. Oznaczone jako Społeczność, aby inni mogli wnieść swój wkład.
Addison Crump
1
Dlaczego „funkcja, a zatem nieprawidłowa”, zauważa? Funkcje są domyślnie dozwolone.
nimi
5
Nie znam innych języków, ale 10+9*8-7+654*3-21nie jest ani JavaScript, ani funkcją Perla.
Dennis
1
@ Sp3000: Oh te unieważniające zmiany reguł ...
nimi
1

𝔼𝕊𝕄𝕚𝕟 2, 15 znaków / 17 bajtów

109876/54+3-21⍜

Try it here (Firefox only).

Przekłada się na round(109876/54+3-21).

Dzięki @Dennis za uratowanie 2 bajtów!

Mama Fun Roll
źródło
1

Java 7, 31 bajtów

int c(){return 109876/54+3-21;}

Boring port z innymi odpowiedziami, z których wierzę @Dennis 'Jelly odpowiedź była pierwsza.

Kevin Cruijssen
źródło
1

PHP, 27 bajtów

<?=~~(109876/54+3-21);

(22 bajty) było zbyt nudne,

więc użyłem od 10 do 9 jako osobnych liczb:

<?=10*(9-8+7-6),5+4-3+2<<1;

inne rozwiązania, głównie z małymi kodami:

30: <?=10**(9+8-7-6)/5+4*3+(2<<1);
30: <?=10*trim(9*8,7),6+5+4+3-2*1;
29: <?=10*trim(9*8,76),5*4-3-2+1;
31: <?=10*trim(9*8,765),4+(3*2<<1);
31: <?=10*trim(9*8,765),4*3+(2<<1);
32: <?=ceil(1098*76/54)+321+ord(~j);
33: <?=(10<<9)/876*543/M_PI*2-M_E&~1;
Tytus
źródło
0

Droga Mleczna 1.6.5 , 28 25 bajtów

10+9*(8)7;^*6*5/4*3/2*A!1

Wyjaśnienie

10+9*                      ` perform 10*9 (leaves 90 at TOS)
     (8)7;^*               ` get rid of 8 and multiply the TOS by 7
            6*5/4*3/2*A    ` perform TOS*6/5*4/3*2 (leaves 2016 at TOS)
                       !   ` output the TOS
                        1  ` push 1 to the stack
Zach Gates
źródło
0

05AB1E , 15 bajtów

109876 54÷3+21-

Wypróbuj online!

Odpowiedź Portu Dennisa.

Urna Magicznej Ośmiornicy
źródło
0

Dalej, 22 bajty

Takie same obliczenia jak w innych odpowiedziach.

109876 54 / 3 + 21 - .

Wypróbuj online

mbomb007
źródło
0

C 37 bajtów

main(){printf("%d",109876/54+3-21);}

Ten sam motyw, co wielu obecnych.

LambdaBeta
źródło
0

VBA, 15 bajtów

?109876\54+3-21

(obliczenia bezwstydnie skradzione Dennisowi )

SeanC
źródło
0

JavaScript (ES6), 21 bajtów

f=

_=>~~(109876/54+3-21)

console.log(f())

Jeśli „odliczanie” osiągnęło wartość 0, można to zrobić w 19 bajtach.

f=
_=>109876/54+3-21|0
console.log(f())

I biorąc pod uwagę, że jest to teraz 2017, można to również zrobić w 21 bajtach:

f=
_=>-~(109876/54+3-21)
console.log(f());

Kudłaty
źródło