To jest bardzo łatwe:
Utwórz program bez pisania ani jednego wiersza kodu. Kod może składać się tylko z istniejących pytań i odpowiedzi dotyczących przepełnienia stosu.
Program powinien utworzyć dwie liczby losowe i wyprowadzić liczby
- dodano do,
- Odejmowane od,
- pomnożone przez i
- podzielony przez
wzajemnie.
Zasady
Musisz dołączyć linki do pytań / odpowiedzi użytych w odpowiedzi. Nie możesz modyfikować znalezionego kodu, z następującymi wyjątkami:
Możesz zmieniać nazwy zmiennych, funkcji i metod. (Nie oznacza to, że możesz zmienić wywołanie metody, zmieniając, powiedzmy scanner.nextInt () na scanner.nextLine () i twierdząc, że zmieniasz nazwę metody. Zmiana musi być w definicji lub odwołaniu do ten sam podmiot). Rozwiązanie powinno nadal działać, jeśli zmienione nazwy, funkcje lub metody zostaną ponownie zmienione.
Możesz odpowiednio dostosować wcięcie.
Możesz założyć, że zostały załadowane odpowiednie moduły do działania fragmentów kodu. (np. importuj instrukcje dla Javy i Pythona, używając instrukcji dla C # i C ++ oraz ich odpowiedników we wszystkich językach) Jeśli fragment kodu obejmuje importowanie, możesz przenieść je na początek kodu.
Jeśli język wymaga, aby kod był w jakiejś formie metody do wykonania (np.
public static void main(String[] args)
Dla Javy,static int Main(string[] args)
dla C # itd.), Możesz owinąć swój kod odpowiednią metodą. Ale zawartość tej głównej metody musi pozostać niezmodyfikowana.Musisz podać jawną listę wykonanych nazw zmiennych / metod / funkcji / klas.
Nie możesz pobrać fragmentów (czyli jeśli weźmiesz blok kodu z postu, weź całość). Podaj krótki opis tego, co robi kod dla osób, które nie są zażyłe z językiem, którego używasz. Musisz użyć fragmentów opublikowanych przed rozpoczęciem tego wyzwania.
Konkurs popularności, więc najwięcej entuzjastów wygrywa!
Ostateczny termin
Przyjmę zgłoszenie, które uzyska najwięcej głosów pod koniec sierpnia, 6.
źródło
Odpowiedzi:
J, 7 pytań / odpowiedzi, żadne o J
To cholernie tani sposób na zrobienie tego, nie będę kłamać. Oto odpowiedzi SO, których użyłem:
echo
Ta odpowiedź+
,-
,*
I%
to pytanie?
Ta odpowiedź[
Ta odpowiedź=
i:
To pytanie wiki społeczności2147483647
Ta odpowiedźfoo
Ta odpowiedźZmieniłem nazwę zmiennej
foo
naa
ib
w kodzie.źródło
Odnośniki do Python 2,
76Stworzenie tego rozwiązania nie było tak proste, jak się wydawało. Wyszukiwanie przepełnienia stosu dla określonego kodu jest trudne, ponieważ symbole nie są uwzględniane podczas wyszukiwania.
Znalazłem sposób na zrobienie tego za pomocą 2000-bitowych liczb losowych, używając innej odpowiedzi zamiast Ref # 1,
ale nie mogłem przetestować jej w środowiskach internetowych, z których korzystam, ponieważ obejmuje toMożna to właściwie wykorzystać teraz z TIO.getrandbits
, które połączeniaos.urandom
, daje miNotImplementedError
, więc poszedłem tą drogą.Wypróbuj online
Referencje
import random
zakłada się, że został załadowany, ponieważ pytanie mówi, że jest to dozwolone.lst = []
ilst.append(random.randint(1, 100))
- tutajmap(sum, zip(r1, r2))
,map(lambda t: t[0] - t[1] ,zip(r1, r2))
,r1
, Ir2
- Tutajresult = float(a) / b
- Tutajab = [a[i]*b[i] for i in range(len(a))]
- Tutajfirst, last = some_list[0], some_list[-1]
- Tutajprint x
- TutajZmiana nazwy
lst
zmieniono nazwę nan1
in2
(Ref # 1: Użyłem całego kodu dwa razy)r1
ir2
przemianowałem nan1
in2
(Ref # 2: Użyłem jednak oddzielnych zmiennych później, aby przypisać mapy i podzielić na ostatnim wydruku, ponieważ odpowiedź zawierała je.)result
ia
przemianowany naab
ib
przemianowany nan2
(Ref # 3)a
ib
zmieniono nazwę nan1
in2
(Ref # 4)first
isome_list
zarówno zmieniona nar1
,r2
,ab
lubn2
, w zależności od linii. (Ref # 5: Użyłem tego cztery razy. Pamiętaj, że używane jest tylko pierwsze przypisanie, więc nie zmieniam nazwylast
)x
zmienia nazwę nar1
,r2
lubab
, w zależności od tego, która linia. (Ref # 6)źródło
Dziesiętny , 2 odniesienia
Użyte polecenia:
0
SET (domyślny indeks stosu)1
PCHAĆ2
ZWĘGLAĆ2
MUZYKA POP3
I / O00
zduplikowany stos01
od stosu do STDOUT4
MATEMATYKA1
DODAJ2
ODEJMOWAĆ3
ZWIELOKROTNIAĆ4
PODZIELIĆ8
BUILTIN2
push losową liczbę całkowitą na stosWyjaśniona wersja:
Źródła:
d
(wielkie litery)0
przez9
Wypróbuj online! Musisz wyłączyć wyjściową pamięć podręczną, jeśli nie zostanie ona automatycznie wyłączona.
źródło