Mój szef * nie rozumie, dlaczego jej programiści reagują negatywnie na użytkowników zmieniających wymagania programu. Pomóż jej zrozumieć! Przy każdej odpowiedzi utwórz nowe wymaganie. Następnie napisz program / funkcję, która rozwiązuje to wymaganie i wszystkie wcześniejsze wymagania, w nowym języku programowania.
Przykłady
Użytkownik 1 publikuje pierwszą odpowiedź. Określa, że program musi wypisać „Witaj, świecie”. Tworzy program w Javie, który wyświetla „Witaj, świecie”.
Użytkownik 2 publikuje drugą odpowiedź. Określa, że program musi zaakceptować wejście n i wyjście n- tej liczby pierwszej, aż do liczby w języku max. Tworzy program w C ++, który akceptuje wejście n i wypisuje n- tą liczbę pierwszą, a wypisuje „Cześć, świecie”. Nie mogła stworzyć programu w Javie.
Użytkownik 3 publikuje trzecią odpowiedź. Podaje, że źródło programu nie może zawierać tekstu „Cześć”. Tworzy funkcję w Pythonie, która akceptuje dane wejściowe n, a następnie generuje n- tą liczbę pierwszą i „Hello, World”. nie wykorzystując w swoim źródle tekstu „Cześć”. Nie mógł stworzyć programu w Javie lub C ++.
Format odpowiedzi
#Answer # - <language name> [version, if pertinent]
Requirement: <rule>.
<code>
[explanations, encoding, TIO link, etc.]
Zasady odpowiedzi
Odpowiedź musi być zgodna z powyższym formatem lub podobnym.
Odpowiedzią może być program lub funkcja.
Odpowiedź musi spełniać wszystkie wymagania, aż do aktualnej odpowiedzi włącznie.
Ten sam użytkownik nie może opublikować dwóch odpowiedzi z rzędu.
Jeśli dwie odpowiedzi zostały opublikowane z tym samym numerem, jedna z późniejszych odpowiedzi powinna zostać usunięta.
Nie edytuj swojego wymagania, chyba że źle się popsułeś i nie opublikowano żadnych innych odpowiedzi.
Jeśli twoja odpowiedź jest niezgodna z twoją regułą i wszystkimi innymi regułami, jest nieważna. Spróbuj to naprawić, zanim ktoś inny opublikuje następną odpowiedź.
Różne wersje tego samego języka są liczone jako różne języki tylko wtedy, gdy program lub funkcja utworzona w jednej z wersji zachowuje się inaczej w innej wersji.
Odpowiedź może nie akceptować żadnych danych wejściowych, które nie są wymagane, i nie może generować niczego, co nie jest wymagane, z wyjątkiem koniecznych białych znaków. Jednak chociaż za kulisami program musi spełniać wszystkie „ukryte” (przed użytkownikiem) wymagania, może robić co tylko zechcesz, zwłaszcza jeśli musisz spełnić wymagania dotyczące czasu wykonania.
Zasady wymagań
Wymaganie musi określać tylko jedno wymaganie. Wymaganie to może być warunkowe, a jeśli wymaganie to wymaga danych wejściowych i / lub danych wyjściowych, można je uwzględnić.
Wymaganie nie może usuwać ani modyfikować wcześniejszych wymagań ani powodować konfliktów z nimi, ale może je rozszerzyć (określić, które).
Jeżeli wymóg ogranicza źródło ( ograniczony-source ), lub wymaga tekst w źródle, może usunąć tylko jeden ciąg znaków (np
0
,Hello
) lub wymagają jednolitego charakteru.Wymaganie nie może wymagać, aby źródło miało mniej niż 100 bajtów, nie wymagało określonego kodowania lub samo w sobie wykluczało większość popularnych języków.
Wymaganie może nie zmuszać źródła do zgodności z określonym wzorcem (na przykład rozpoczynanie każdej linii od określonego znaku lub (@Conor) mieszanie do określonej wartości) innej niż określona w ograniczonym źródle.
Jest to tworzenie łańcuchów odpowiedzi , więc wszystkie odpowiedzi bazują na poprzednich odpowiedziach. Ja i inni mogą postarać się zachować listę wszystkich wymagań. Aby wyświetlić odpowiedzi w kolejności, możesz sortować według najstarszych. Aby zobaczyć najnowszą odpowiedź, posortuj według najstarszych, a następnie przejdź do końca listy.
Jak wygrać (zmieniono na wstrzymanie głosowania):
Jeśli przez dwa tygodnie nie zostanie wysłana odpowiedź, wyzwanie się kończy, a wyniki zostaną obliczone. Wyniki zostaną obliczone poprzez zsumowanie łącznej liczby odpowiedzi każdego użytkownika, ale ważenie postów na podstawie tego, jak daleko są w łańcuchu (ponieważ późniejsze posty mają więcej wymagań, są trudniejsze).
Pseudo kod:
for each answer in user.Answers {
score += 1 + (answer.number / 100)
}
Przykład:
Sally ma trzy odpowiedzi. Opublikowała odpowiedź 5, odpowiedź 7 i odpowiedź 20.
Jej wynik będzie 1.05 + 1.07 + 1.2 = 3.32
. Gdyby to była prosta suma odpowiedzi, jej wynik wynosiłby 3, ale ważenie głębokości łańcucha nagradza trudniejsze odpowiedzi.
Zacząć:
Oto pierwszy wymóg, podany przez mojego szefa *:
Wymaganie 0: Program musi wypisać 0, zanim cokolwiek innego.
*powieściowy
Lista wymagań i języków
Pamiętaj, że może to być nieaktualne - spójrz na ostatnią opublikowaną odpowiedź bezpośrednio przed opublikowaniem odpowiedzi, aby upewnić się, że spełniasz wszystkie wymagania. Bardzo mi przykro, jeśli tworzysz znakomity program, tylko dla kogoś, kto go snipe - jeśli naprawdę naprawdę chcesz go opublikować, określ niekonkurujące.
Full (ale może nie prąd) Wymagania: Nie mogą zawierać
0
,*
lub]
w kodzie źródłowym, a nie można użyć złączenia na nowej linii wbudowanego polecenia. Wyprowadza0
, a następnie przyjmuje nieujemną liczbę całkowitąn
i wypisuje nowy wiersz, po którym następuje indeksn
Fibonacciego o indeksie 0 (może być1
indeksowany), następnie znak nowej linii, następnie ten sam sygnał wejściowy n do kwadratu, a następnie znak nowej linii, a następnien
pomnożony przez nowe dane wejściowem
, po których następuje nowa linia, po której10^B
, gdzieB
jest liczba bajtów w kodzie źródłowym, po której następuje nowa linia, po której następuje liczba pierwsza indeksun
th0
(może być także1
indeksowana), a następnie nowa linia, a następnie największy wspólny dzielnik ni im0: Program musi wyjść
0
przed czymkolwiek innym. Język: nie dotyczy
1: Źródło programu nie może zawierać0
. Język: 05AB1E
2: Program pobiera nieujemne liczby całkowiten
i wyświetla nowy wiersz, po którym następuje0
-indeksowana n-ta liczba Fibonacciego (może być1
indeksowana). Język: dc
3: Program wypisuje nowy wiersz, po którym następuje takie samo wejście don
kwadratu. Język: J
4: Program wyświetla nowy wiersz, po którym następujen
pomnożenie przez nowy wpism
. Język: Ohm
5: Program nie może zawierać*
(kod ASCII0x2A
). Język: Python 3
6: Program wyświetla nowy wiersz, a po nim10^B
, gdzieB
jest liczba bajtów w kodzie źródłowym. Język: Mathematica
7: Program wysyła linią, przezn
TH0
-indexed (może również być1
-indexed) liczbą pierwszą. Język: JavaScript (ES6)
8: Program nie używa wbudowanej funkcji dołączania do nowej linii, ale może korzystać z dowolnej innej wbudowanej funkcji łączenia. Język: Galaretka
9: Program wypisuje nowy wiersz, po którym następuje największy wspólny dzielnik n i m. Język: Scala
10: Program nie może zawierać]
. Język: Pyth
Aktualne wyniki (uporządkowane według pierwszego postu)
Okx : 1,01
R. Kap : 2,09
Conor O'Brien : 1,03
Nick Clifford : 1,04
Eric Rose : 1,05
Greg Martin : 1,06
Erik the Outgolfer : 2.18
math_junkie : 1.09