Jedną z miłych właściwości języka kompletnego Turinga jest to, że można go używać do pisania dowolnego programu, łącznie z symulacją całego Wszechświata.
Twoim zadaniem jest dokładnie to zrobić: napisać program symulujący Wszechświat .
Uwaga: chociaż nie wątpię, że będziesz w stanie wykonać to zadanie, obecnie nie mam wystarczająco dużo czasu, aby sprawdzić, czy wszystkie 10 90 cząstek w twojej symulacji robi to, co naprawdę powinno. Dlatego, aby uprościć testowanie i ocenę, wystarczy, że symulator wszechświata działa tylko z jedną cząsteczką początkową. Aby zachować ciekawość, załóżmy, że ta cząstka to niedawno odkryty bozon Higgsa.
Wszechświat zaczyna się od jednego bozonu Higgsa o mocy około 120 GeV w środku. Aby nie wydłużyć wyniku, ustawmy ten wszechświat na zaledwie 10-25 sekund zamiast jego „zwykłej częstotliwości taktowania” wynoszącej 5,4 × 10 −44 sekund.
Bozon Higgsa rozpadnie się wcześniej czy później, ponieważ jego okres półtrwania wynosi 1,6 × 10 −22 sekund, więc przy każdym takcie symulacji ma szansę na rozpad 0,0433%. Tutaj możesz sprawdzić , w co się rozpadnie . Aby mieć centralny i uproszczony wymóg, wymieniam współczynniki rozgałęzień, których powinieneś użyć:
Uruchamianie symulacji
Przy każdym tiku symulacji bozon Higgsa ma 0,0433% szansy na rozkład. Jeśli tak się stanie, rozpadnie się na następujące cząstki, z podanymi prawdopodobieństwami (powinieneś użyć tych nazw na wyjściu):
- dolny kwark + dolny antykwark (64,8%)
- Bozony 2 W (14,1%)
- 2 gluony (8,82%)
- tau lepton + lepton antitau (7,04%)
- kwark urok + antykwark urok (3,27%)
- 2 bozony Z (1,59%)
- 2 fotony (0,223%)
- 1 bozon Z + 1 foton (0,111%)
- mion + antymuon (0,0244%)
- górny kwark + górny antykwark (0,0216%)
W sumie 100%.
Niektóre z tych cząstek ulegają dalszemu rozkładowi.
Bozon W : okres półtrwania 10-25 sekund, oznacza to 50% szansy na rozpad przy każdym kleszczu na jedno z poniższych, z jednakowymi prawdopodobieństwami:
- positron + neutrino
- antimuon + neutrino
- lepit antitau + neutrino
Bozon Z : okres półtrwania 10-25 sekund, oznacza to 50% szansy na rozpad przy każdym kleszczu do jednego z poniższych:
- neutrino + antyneutrino (20,6%)
- elektron + pozyton (3,4%)
- mion + antymuon (3,4%)
- tau lepton + lepton antitau (3,4%)
- dół kwark + dół antykwark (15,2%)
- dziwny kwark + dziwny antykwark (15,2%)
- dolny kwark + dolny antykwark (15,2%)
- w górę kwark + w górę antykwark (11,8%)
- kwark urok + antykwark urok (11,8%)
górny kwark : okres półtrwania 5 × 10-25 sekund, oznacza to 12,95% szansy na rozpad przy każdym kleszczu na następujące, z jednakowymi prawdopodobieństwami:
- Bozon W + kwark dolny
- Bozon W + dziwny kwark
- Bozon W + kwark dolny
Oczywiście, bozon W wkrótce również rozpadnie się ...
Góry antykwarka zachowuje się podobnie do górnej twarogu: to rozpadowi w bozon W i AD / S / B antykwarka.
Wszystkie inne cząstki (czyli wszystkie oprócz bozonów Z i W i kwarków górnych) mają okres półtrwania dłuższy o wiele rzędów wielkości, więc aby nie zagracać mocy wyjściowej, wszystkie są uważane za stabilne w naszej symulacji .
Ponieważ wszechświat jest w dużej mierze pusty, wszystkie cząstki będą miały dla siebie wystarczająco dużo miejsca i nie będą ze sobą oddziaływać. Dlatego wszystkie pojedyncze cząstki są od siebie niezależne pod każdym względem, w tym także od prawdopodobieństwa rozszczepienia.
Wynik:
Za każdym tyknięciem symulacji musisz wydrukować zawartość symulowanego wszechświata w nowej linii. Na przykład:
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 2 W bosons.
The universe contains 2 W bosons.
The universe contains 1 W boson, 1 positron and 1 neutrino.
The universe contains 1 positron, 1 antitau lepton and 2 neutrinos.
Simulation ended after 0.8 yoctoseconds.
Kolejność cząstek w linii nie jest ważna. Formatowanie musi być jednak dokładnie takie jak w powyższym przykładzie , w tym interpunkcja i liczba mnoga. Jeśli symulujesz cały (mini-) wszechświat, powinien on ładnie wyglądać (a ja chciałem wyeliminować nadużywanie zbyt mało ścisłego wymagania wyjściowego)
Każda linia odpowiada 0,1 yoctosekundom, ale zostaniesz wybaczony, jeśli wydruk zajmie więcej czasu niż program.
Symulacja kończy się, gdy pozostają tylko „stabilne” cząstki.
Punktacja
Obowiązują standardowe zasady gry w golfa.
Generator liczb losowych może być pseudolosowy, ale musisz go zaszczepić, jeśli język domyślnie go nie zaszczepi. Rozkład prawdopodobieństwa RNG musi być jednolity.
- Otrzymasz bonus -10% do rozmiaru kodu, jeśli program pobierze liczbę całkowitą jako dane wejściowe i zacznie od tak wielu bozonów Higgsa.
Wyjątek dla entuzjastów maszyn Turinga.
Dla tych, którzy odważą się spróbować szczęścia z prawdziwą maszyną Turinga lub podobnym językiem (takim jak Brainfuck), ich zadanie jest łatwiejsze dzięki następującym zmianom zasad (dotyczy tylko, jeśli język jest pochodną Brainfuck lub w inny sposób bardzo uproszczony Turing- maszynę, niezdolną do przypisania, brak ALU, a wartości na taśmie można zwiększać i zmniejszać tylko o jeden) :
- Nazwy cząstek są uproszczone do d, s, b, t, u, c dla kwarków, v dla neutrina, T dla leptonu tau, m dla mionu, g dla gluonu, p dla fotonu, Z, W i H dla bozony, - dla elektronu i + dla pozytonu. Przy każdym tiku wprowadzane są dane o wartości 0 lub 1 ze standardowego wejścia, wskazujące, czy pierwsza niestabilna cząstka na liście zanika, czy nie.
Przykładowy wynik będzie zatem
H
H
H
H
W W
W W
W + n
+ !T n n
SimulateUniverse
wbudowaną funkcję?Odpowiedzi:
Pyth , 572 * 0,9 = 514,8 bajtów
Kwalifikuje się do premii -10%. Wypróbuj tutaj online lub wypróbuj go z okresem półtrwania bozonu Higgsa zmniejszonym do 1ys tutaj (powoduje to mniej powtórzeń w wyjściu i bardziej ekscytujący wszechświat!).
Jestem przekonany, że jest to dalekie od optymalnego, zwłaszcza kompresji słownika, ale zmarnowałem już na to wystarczająco dużo czasu, więc sugestie ulepszeń są mile widziane.
Program podzielony jest na trzy części - przygotowanie słownika, zdefiniowanie funkcji wyjściowej i wykonanie symulacji.
Przygotowanie słownika
Jm?tld,hd,-1^.5c1shced\ sm*]<k2s>k2tced\ dcR\,cu:GhHtHc"A76 !B17 !C1 v!D_top !E00 !F bosR!GmuR_!Ineutrino_!Jtau leptR_!KQ_charm !LQ_strange !MQ_down !NQ_up !OQ_bottom !Panti!Qquark!Ron"\!"HiggsF,16Efg3240Ebb705Epp441Eqr352ER16350 cc7950 ss1115 cs555 tu122 de108_WF,CxCuCr1_ZF,Cw103 yxBtuBqrBjkAlmAfgAhi59 R59DQ,5 bj1 bl1 bf1DPOOPNNPMMPLLPKKPQ_gluR_JPJphotR_GPGIPIpositrR_electrR"\_
Jest to największa sekcja gotowego kodu, zajmująca 381 bajtów. Słownik jest budowany przy użyciu następującego ciągu:
Ciąg jest oddzieloną podkreśleniem listą cząstek, a jeśli cząstka jest niestabilna, jej zachowanie - rozdzieloną przestrzenią listę składającą się z jej okresu półtrwania w tykach symulacyjnych, po którym następuje rozkład, wraz z wyraźnymi prawdopodobieństwami dla każdej z nich. Każda cząstka ma przypisany do niej jednoliterowy kod, wynikający z ich pozycji na liście indeksowanej małymi literami - więc bozon Higgsa jest
a
, bozon Wb
, aż do istoty elektronuy
.Zamiast zapisywać prawdopodobieństwa rozpadu, zapisywany jest okres półtrwania, a prawdopodobieństwo jest obliczane podczas przetwarzania słownika. Preparat stosuje się
P=1-(1/2)^(1/h)
, gdyP
jest prawdopodobieństwo zepsucia jednego kleszcza ih
ma czas półtrwania cząsteczki mierzona w kleszcze.Niestabilne cząstki to pierwsze cztery na liście. Ponieważ liczba tych cząstek decyduje o zakończeniu symulacji, umieszczenie ich na początku listy ułatwia ich sprawdzenie w późniejszym czasie.
Problem polega na tym, że ten ciąg jest ogromny - 436 bajtów! - a użycie wbudowanej kompresji ciągów Pyth'a faktycznie zwiększa liczbę bajtów, ponieważ wykorzystuje tak wiele znaków wielobajtowych. Zdecydowałem się na stosunkowo prosty iteracyjny schemat kompresji słownika. Fragment
u:GhHtHc"xxx"\!"yyy"
rozpakowuje go w następujący sposób:Pozycje słownika, które wybrałem, opierają się wyłącznie na mojej intuicji i próbach i błędach, więc jestem pewien, że jest wiele miejsca na ulepszenia.
Zdekompresowany ciąg słownika jest następnie interpretowany i zapisywany w sposób opisany poniżej:
Wynik jest taki, że
J
zawiera uporządkowaną listę nazw cząstek. Jeśli ulegną rozpadowi, nazwa jest powiązana z prawdopodobieństwem rozpadu i zestawem cząstek, na które może rozpaść się, ważonymi według ich względnych prawdopodobieństw.Definicja funkcji wyjściowej
Definiuje to funkcję
y(b)
, która przyjmuje aktualny stan wszechświata jako swój wkład. Jest to po prostu lista liczb cząstek uporządkowana według ich rodzaju, zgodnie z definicją w ciągu słownikowym opisanym w poprzedniej sekcji.Wykonanie symulacji
K+Q*]Z24Ws<K4yK=+Z1Vs.em?>O1.0he@JkY,kOee@Jkb<K4IN XhNK_1 XRK1xLGeN;yK%"Simulation ended after %s yoctoseconds."cZT
Po przygotowaniu można teraz przeprowadzić symulację. To składa się z kilku kroków:
Inicjalizacja wszechświata
Ponieważ cząstka o indeksie 0 w stanie wszechświata jest bozonem Higgsa, stanem początkowym wszechświata jest tablica liczb wejściowych, po których następują 24 zera.
Pętla symulacyjna
Przy każdym tiku w symulacji należy wyświetlić aktualny stan wszechświata, zwiększyć licznik, a każda cząstka lotna musi sprawdzić, czy powinna się rozpaść, stosując wyniki do stanu wszechświata po ocenie każdej cząstki.
Ostateczne wyjście
Symulacja kończy się, gdy nie ma już niestabilnych cząstek. Pozostaje jedynie wyprowadzenie końcowego stanu wszechświata i tego, jak długo (ile tyknięć) trwała symulacja.
źródło
C ++ (
2420,2243,2353,1860, 1822 * .9 = 1639,8)Ok, więc jest to prawdopodobnie najgorsze zgłoszenie do gry w golfa, ale to moja pierwsza i dobrze się bawiłem. Myślę, że to nawet działa. :)
Szybka wersja
Ten nie jest tak krótki (9 dodatkowych bajtów), ale działa znacznie szybciej do testowania dużych liczb. Ponieważ nie jest wystarczająco krótki, aby konkurować, dodałem również mały kod, aby taktować czas wykonania w świecie rzeczywistym i wydrukować go zaraz po symulowanym czasie. Moja oryginalna wersja n = 100k w około 8 minut. Powyższa wersja robi to za około 2 minuty. Ta szybka wersja może to zrobić w 9 sekund. n = 1 milion zajął 53 sekundy.
Przykładowe dane wyjściowe (bez argumentów)
Przykładowe dane wyjściowe (universe.exe 10):
Przykładowe dane wyjściowe (universe.exe 1000000)
(niezupełnie 10 ^ 90, ale się tam dostaniemy)
Większe wyjścia
Jeśli używasz danych wyjściowych konsoli z wiersza poleceń, sugerowałbym coś takiego,
universe.exe 100 > temp.txt
aby działało znacznie szybciej. Z Notepad ++, można następnie otwarty temp.txt, hitctrl+H
, wprowadź^(.*?)$\s+?^(?=.*^\1$)
do znaleźć to, co polu wprowadź nic w Wymienić z pola, włączyć tryb wyszukiwania , abyRegular Expression
skręcić w selekcji i . dopasowuje nowy wierszOFF
, a następnie uderzaReplace All
. Teraz po prostu widzisz, gdzie nastąpiły zmiany zamiast 8000 linii danych wyjściowych (wydaje mi się, że robię błędy, robiąc jednocześnie więcej niż 2000-3000 linii).Poprawki / poprawki
źródło
char t[N]={'d','D','u','U','b','B','l','L','c','C','s','S','n','N','m','M','g','G','p','e','E','T','t','Z','W','H'
dochar t[]="dDuUbBlLcCsSnNmMgGpeETtZWH"
? Powinien działać c , nie jestem pewien co do c ++Python 3, 1247 * 0,9 = 1 122,3
Cóż, to mój najdłuższy wpis z długiej perspektywy, ale przynajmniej jestem krótszy niż C ++.
Teraz z dodatkowym bonusem! Musi być wywołany z numerem jako pierwszym argumentem.
Mój wszechświat nie działał z rozpadającymi się cząsteczkami innymi niż Higgs Boson, ale teraz działa. Również nie mam pluralization lub interpunkcji poprawne, ale faktycznie zrobić teraz.
Jestem tak blisko sub 1k!
źródło
import random
. Tyle o determinizmie.Perl 6 , (707 bajtów -10%) Wynik 636,3
Z pewnymi niepotrzebnymi podziałami linii dla nieco większej czytelności:
Wypróbuj online!
Niektóre wyjaśnienia: Bóg i człowiek
Istnieją 2 struktury danych zawierające fizykę
%p
i nazewnictwo%h
; Bóg i człowiek jakby. Skrót fizyki daje zestaw ciągów indeksowanych oryginalną niestabilną literą cząstek, które można podzielić, mieszać i konwertować na Mix:Każda cząstka otrzymuje literę, a zatem każda z tych Mieszanek określa zbiór rozpadów cząstek. H rozpada się na WW, o wadze prawdopodobieństwa 14.1. Pary cząstka-antycząstka są kodowane małymi i dużymi literami, jak
c
iC
dla kwarków urok i antykwarków urok.I człowiek zastanowił się przez chwilę i nazwał go leptonem antitau
Nazewnictwo jest ustawione w
%h
, który po prostu mapuje każdą literę na nazwę cząsteczki. W pewnym stopniu gra w golfa, ale podejrzewam, że można poprawić, biorąc pod uwagę ilość powtórzeń.Oryginalny ciąg
Dzięki tym dwóm strukturom wszechświat jest oczywiście symulowany przez manipulację sznurkiem. Podobnie
"H"
jest wszechświat z pojedynczym bozonem Higgsa. Struktura generatora_,_..._
służy do tworzenia pętli i oddziela ewolucję stanu łańcucha wszechświata (zatrzymanego$_
) od wydrukowania go. Drukowanie odbywa się poprzez umieszczenie liter we wszechświecie i zmapowanie uzyskanych liczb (za pomocą liczby mnogiej!).Powstają kichające cząsteczki
Ewolucja cząstek wymaga mapowania ich na wartość wybraną z Mieszanki dla tej cząstki; więc
t
najwyższy kwark ewoluuje jakoPerl6 pozwala nam losowo wybrać jeden z tych kluczy o tych przypisanych wagach za pomocą prostej podłogi
.roll
. Rzucamy się więc na to, abyt
uzyskać, powiedziećWb
i podstawić go do naszego wszechświata „HtT” -> „HWbT”. Każda niestabilna cząstka ma się jako możliwy zwój, co pozwala nam uprościć strukturę w porównaniu z koniecznością sprawdzenia, czy uległa rozkładowi; przez większość czasu, kiedy rzucasz na „H”, po prostu dostajesz ponownie „H”.Eksperymentalna teoria strun
Za pomocą tej zmodyfikowanej wersji można obserwować ewolucję łańcucha wszechświata .
Występ
Zrobiłem to aż do 100 H na TIO, nieuchronnie, jeśli chcesz pójść o wiele dalej, lepiej byłoby wprowadzić pewne zmiany, w końcu jest to Grand Unified String Theory.
źródło
Groovy,
15061454 - 10% = 1309 bajtówZakłada liczbę początkowych cząstek bozonu Higgsa jako pierwszy argument w wierszu poleceń:
źródło
PHP, 989 - 10% = 890,1 bajtów
Sub 1K baby! Dzięki vsz, to było naprawdę fajne wyzwanie. Tak wiele sposobów na obejście tego i bardzo trudno jest zweryfikować, czy dane wyjściowe są prawidłowe.
Program może pobrać argument wiersza poleceń, aby określić początkową liczbę bozonów Higgsa, np
php universe_simulator.php 5
To samo dotyczy podziałów linii, uh ... „czytelność” ...
Niektóre dane wyjściowe:
źródło
QBasic
2161 * .9 = 19452028 * .9 = 18251854 * .9 = 1669 bajtówTeraz, gdy QBasic jest LOTM, pomyślałem, że zrewiduję moją pierwszą odpowiedź na PPCG. Udało się zrzucić 140 bajtów, nieźle!
Na podstawie opinii @TaylorScott i @DLosc dokonałem całkowitego przeprojektowania:
Kod
Próbka wyjściowa
źródło
For i=0To 28
x$=Mid$("H00433099979405H004330999550m4H004330998440ZpH004330996210ppH004330980310ZZH004330947610c3H004330877210T2H004330789010ggH004330648010WWH004330000000b12012950666670W12012950333340W82012950000000W70012950666670Wb0012950333340Ws0012950000000WdW0500006666702nW0500003333404nW050000000000+nZ050000882010c3Z050000764010u9Z050000612010b1Z050000460010s8Z050000308010d7Z050000274010T2Z050000240010m4Z050000206010-+Z050000000000n6",15*i+1,15)
...Next
w funkcjif$()
nad tablicąe$()
s$()
,Next:Next
może byćNext j,i
, i należy sprawdzić, czy?
sprawozdanie potrzebować wszystkich tych;
s. Ale wydaje się również, że twoja produkcja nie spełnia obecnie specyfikacjiC # 6,
3619361736113586 - 10% = 3227,4 bajtówProgram pobiera dwa opcjonalne argumenty za liczbę początkowych bozonów Higgsa i nasion do wykorzystania dla klasy Losowej.
Nie powinienem do tego używać obiektów, prawdopodobnie spróbuję zamiast tego zrobić drugie rozwiązanie przy użyciu tablic, ale prawdopodobnie byłoby to podobne do już opublikowanego rozwiązania C ++. Liczba bozonów Higgsa, z którymi mogę sobie poradzić, również jest poważnie ograniczona, myślę, że co najmniej godzina dla H = 1 000 000. Mniejsze liczby działają jednak dość dobrze.
Przykładowe dane wyjściowe:
Opublikuję ostatnie dwa wiersze dla przebiegu h = 1000000, gdy zakończy się, prawdopodobnie później dzisiaj.Jak obiecano:źródło
else {U(new T(0>1))
i wiele nan < 2 / 3.0
i jeden nan <2/3.0
.if (a.Length
, a drugi oif (N[x]!=1
, trzeci oo+= $
. Ponadto parsujesza[0]
dwukrotnie liczbę całkowitą, gdy wynik można zapisać w liczbie całkowitej. Myślę, żeY==1.0
takY==1.
, ale nie jestem tego pewien.i!=0
może byći
. Nie wiem, czy twoje zmienne mogą faktycznie zanegować, ale jeśli nie, możesz zamienić==0
s na<1
. Tytuł powinien zawierać C # 6, ponieważ używasz interpolacji ciągów.Mathematica, 950 bajtów-10% = 855 bajtów
Korzystanie z kompresji wyrażeń:
Kod nieskompresowany (1168 bajtów-10% = 1051,2 bajtów):
Parametr początkowy można wybrać, zmieniając wartość a.
Zauważyłem, że użyłem niewłaściwego prawdopodobieństwa dla bozonu Higgsa, ale nie mogę go obecnie zmienić (za kilka godzin). Dodaj więc 3 lub 4 bajty do bieżącego rozwiązania. (To była wartość testowa)
źródło
Perl,
973986959944 bajtów -10% = 849,6 punktówWcięcia i znaki nowego wiersza nie są częścią kodu i są podane wyłącznie po to, aby nie przewijać przez 30 lat, aby przeczytać wszystko.
Istnieje kilka 0-bajtowych optymalizacji, których nigdy nie próbowałem cofnąć.
Oczywiście większość kodu tworzy początkowe wartości skrótu.
%p
zawiera nazwy wszystkich cząstek, wykorzystując słowo Perla.%r
określa stawki rozpadu. Jeśli nie ma go tutaj, to w ogóle się nie rozkłada.%d
zawiera cząsteczki rozpadu.Ponieważ kolejność cząstek na wyjściu nie ma znaczenia, nie zawracam sobie głowy zmienianiem go z przypadkowego sposobu, w jaki Perl uzyskuje dostęp do kluczy w skrócie, co prowadzi do następujących rzeczy:
To była naprawdę ekscytująca przygoda. Cudowne puzzle, szczerze mówiąc, świetnie się bawiłem! :)
źródło
Python 3.6.1,
11831157...905889 * 0,9 = 800,1 bajtówPo raz pierwszy przesłałem jedno z nich, ale to wyzwanie wyglądało całkiem fajnie, więc zaczynamy ...
Prawie na pewno nie tak golfa, jak to mogłoby być, ale jestem dość niedoświadczony, więc wszelkie wskazówki są mile widziane.
Wypróbuj online!
Edycja: W trosce o zwięzłość skrócona lista wprowadzonych przeze mnie zmian (dziękuję komentatorom za pomoc!):
random.choices()
to ważone prawdopodobieństwa, a nie procenty, więc mógłbym zaoszczędzić kilka bajtów przed przesunięciem w górę kilku potęg dziesięciu - zaoszczędzono 28 bajtów! Prawdopodobieństwo rozpadu Higgsa było błędne - odczytałem 0,43% zamiast 0,043%, więc kosztowało to dwa bajty.any()
,+=
zamiastlist.extend()
i innąimport
instrukcję.choices(*p[x][1:])
które uratowało parę ix and y or z
unikałoif...else...or
.enumerate()
przez skopiowanie wszechświata i użycielist.remove()
na oryginale (enumerate
metoda i tak została złamana, jak to się dzieje).print()
oświadczenie i połączoneif
oświadczenia. Usunięto niepotrzebne wsporniki.Bardziej czytelna wersja:
Próbka wyjściowa z 5000 bozonów Higgsa - może zrobić większy bieg później, aby sprawdzić, czy jakikolwiek rozpad kwarku górnego spowoduje:
Jeśli zrobiłem coś złego, daj mi znać, a spróbuję to naprawić!
źródło
Rubinowy,
997995 bajtów -10% = 895,5 punktówedit: dodano „i” jako ostatni separator, jak zauważył breadbox
Po raz pierwszy publikowanie na PPCG jest to stare wyzwanie, ale dobrze się bawiłem. Oto kod
Ciągi znaków są kompresowane przez uwzględnienie powtarzających się słów (zmienne
s
it
). Produkty rozpadu są przechowywane w postaci zwartej jako ciągi (varr
), każda litera jest cząstką. Funkcjaf
drukuje stan wszechświata poprzez mapowanie układu cząstek na łańcuchy. Wydaje mi się, że w linii aktualizacji stanu jest kilka bajtów do odcięcia, ale nie mogę znaleźć nic lepszego.Przykładowe dane wyjściowe
Występ
Nie jest tak źle! Obliczył 100000 bozonów Higgsa w 25 sekund
źródło
>
siebiewhile
? Minęło trochę czasu, odkąd zrobiłem cokolwiek w Ruby.D,
11721101 bajtów - 10% = 990,9 bajtówNie golfił
źródło
Kotlin : 1330 - 10% = 1197 bajtów
Mój pierwszy kod golfowy; bardzo nieefektywne, ponieważ listy są bardziej golfowe niż mapy, ale z pozoru poprawne! Działa na implementacji JVM lub JS i przyjmuje (opcjonalny) argument.
Wersja mniej golfowa
źródło
Całkiem długie poddanie.
Nie tak bardzo grał w golfa, ale wciąż jest krótszy niż drugi python.
Weź początkową ilość Higgsa jako dane wejściowe.
Python 3 ,
11341120 bajtów - 10% =1020,61008 punktówWypróbuj online!
źródło
F #,
19931908 bajtów - 10% = 1718 bajtówWypróbuj online!
Ungolfed wygląda to tak:
źródło