Musisz używać jednego języka do pisania programów, które wykonują dziewięć następujących zadań, w dowolnej kolejności .
- Konwertuj wprowadzoną liczbę z bazy 10 na bazę 36.
- Przykładowe dane wejściowe:
1000
- Przykładowe dane wyjściowe:
RS
(dane wyjściowe muszą być pisane wielkimi literami)
- Przykładowe dane wejściowe:
- Konwertuj każdy znak w ciągu na jego podstawowe 10 dziesiętnych kodów ASCII i drukuj kody połączone razem.
- Przykładowe dane wejściowe:
Scrambled 3GG5
- Przykładowe dane wyjściowe:
839911497109981081011002051717153
- Przykładowe dane wejściowe:
- Ustal, czy wprowadzona liczba jest podzielna przez 1738.
- Zwróć prawdziwą wartość, jeśli tak jest, i wartość fałsz, jeśli nie jest.
- Sprawdź, czy ciąg zawiera literę
q
.- Zwróć wartość prawdy, jeśli tak się dzieje, i wartość fałszowania, jeśli tak nie jest.
- Zakoduj wprowadzony ciąg liter za pomocą szyfru Cezar +1.
- Sprawa musi zostać zachowana. Znaki nieliterowe będą drukowane bez modyfikacji.
- Przykładowe dane wejściowe:
Good morning, World!
- Przykładowe dane wyjściowe:
Hppe npsojoh, Xpsme!
- Znajdź i wydrukuj sumę czynników pierwszych liczby.
- Przykładowe dane wejściowe:
1320
- Przykładowe dane wyjściowe:
21
- Przykładowe dane wejściowe:
- Drukuj
PPCG
. - Wydrukuj pierwsze
n
dodatnie liczby całkowite, które można podzielićfloor(sqrt(n))
.n
jest wprowadzoną liczbą całkowitą.
- Zamień każdy
o
iO
wprowadzony ciąg naಠ
.- Przykładowe dane wejściowe:
Onomatopoeia
- Przykładowe dane wyjściowe:
ಠnಠmatಠpಠeia
- Przykładowe dane wejściowe:
Będziesz zauważyć, że to wyzwanie Code Billiards
, nie Code Golf
. Celem tego wyzwania, podobnie jak w grze bilardowej, jest skonfigurowanie kodu, aby można go było modyfikować tylko nieznacznie dla następnego wyzwania. Właśnie dlatego wasze programy nie muszą po kolei rozwiązywać powyższych zadań.
Twój wynik jest określany w następujący sposób
- Twój wynik rośnie o
1
każdy bajt w twoich programach. - Twój wynik rośnie,
floor(n^(1.5))
jeśli dwa kolejne programy mają odległość Levenshteina wynoszącąn
. Na przykład, jeśli twoim pierwszym programem jest,potato
a drugim programemtaters
, twój wynik wzrasta o 12 dla 12 bajtów i przez11
=floor(5^(1.5))
dla odległości Levenshteina 5.
Celem tego wyzwania jest uzyskanie jak najniższego wyniku po napisaniu wszystkich dziewięciu programów. Obowiązują standardowe zasady CG.
Aby zobaczyć tabelę wyników, kliknij „Pokaż fragment kodu”, przewiń w dół i kliknij „► Uruchom fragment kodu”. Snippet wykonany przez Optimizer.
code-golf
math
number
multiple-holes
Arktur
źródło
źródło
ಠ
ia
? Czy to 1 (liczącಠ
jako 1 znak) czy 2 (ponieważಠ
tak naprawdę to 2 bajty)?Odpowiedzi:
Japt ,
886866766725688669Zadania 5 i 6 to zabójcy. Być może istnieją krótsze sposoby ich realizacji. Myślę, że odległości Levenshteina można jeszcze zmniejszyć.
!(U%#ۊ
7 bajtów (znak arabski zmienia wyrównanie)
U!=Uk'q
7 bajtów, dist 11Us36 u
6 bajtów, dist 14UmX=>Xc
7 bajtów, dist 14"PPCG"
6 bajtów, dist 18Ur"[Oo]",'ಠ
13 bajtów, dist 27X=Uq f;XoU*X+1,X
16 bajtów, dist 522oU fX=>2oX eY=>X%Y &&!(U%X)r(X,Y =>X+Y
39 bajtów, dist 172UmX=>128o mY=>Yd)a k'A i#Z,'A k'a i#z,'a gXc
44 bajty, dist 216Oto fragment, który powie Ci (jeden z) najbardziej wydajnych sposobów aranżacji programów:
Pokaż fragment kodu
Dzięki najnowszej wersji Japt (nie konkuruje w tym wyzwaniu) większość zadań jest krótsza:
s36 u
5 bajtówmc
2 bajtyv#ۊ
4 bajty
oq
2 bajty;B±B+C²UrF,@Bg1+BbX
19 bajtówk â x
5 bajtów"PPCG
5 bajtówB=U¬f)oU*B+1B
13 bajtówro'ಠ'i
6 bajtówOptymalna kolejność wynosi teraz 2,4,3,1,6,7,9,8,5, osiągając niesamowity wynik 217 , mniej niż jedną trzecią oryginału!
Sugestie mile widziane!
źródło
Pyth, ocena 489
Konwersja bazy: 15
Szyfr Cezara: 13 + 11 ^ 1,5
Podzielny przez 1738: 7 + 11 ^ 1,5
Pierwsze N dodatnich liczb całkowitych: 8 + 8 ^ 1,5
Suma czynników pierwszych: 4 + 6 ^ 1,5
Wygląd q w ciągu: 4 + 4 ^ 1,5
Połącz wszystkie kody ASCII: 5 + 4 ^ 1,5
Drukuj „PPCG”: 5 + 5 ^ 1,5
Zamień na
ಠ
: 9 + 7 ^ 1,5źródło
Ruby, 1488
Prawdopodobnie jest tu dużo miejsca na ulepszenia. Większość czasu spędzałem na obliczaniu wyniku ...
Suma czynników pierwszych : 64 Podstawa 36 : 30 + 47 1,5 = 352 Podzielny przez 1738 : 22 + 15 1,5 = 80 Drukuj PPCG : 9 + 18 1,5 = 85 Czy ciąg zawieraq
? : 10 + 8 1,5 = 32 Wymieńo
: 23 + 16 1,5 = 87 Szyfr Cezara : 32 + 21 1,5 = 128 Kody ASCII : 37 + 26 1,5 = 169 Liczba całkowita podzielna przez pierwiastek kwadratowy : 72 + 56 1,5 = 491źródło
Java, wynik 8331
Ich odległości levenshtein zabijają mój wynik tutaj.
(Te programy pobierają dane wejściowe jako argumenty wiersza poleceń)
Program 1 (119):
Program 2 (120 + 56 1,5 = 539):
Program 3 (101 + 49 1,5 = 444):
Program 4 (108 + 20 1,5 = 197):
Program 5 (186 + 107 1,5 = 1293):
Program 6 (327 + 228 1,5 = 3747):
Program 7 (336 + 10 1,5 = 368)
Program 8 (351 + 34 1,5 = 549):
Program 9 (305 + 84 1,5 = 1075):
źródło
Pyth, wynik 817
numer 1: 24
liczba 2: (9 + 16 1,5 = 73)
liczba 3: (5 + 8 1,5 = 27)
liczba 4: (5 + 14 1,5 = 57)
liczba 5: (39 + 37 1,5 = 264)
liczba 6: (4 + 39 1,5 = 247)
liczba 7: (5 + 4 1,5 = 13)
liczba 8: (12 + 12 1,5 = 53)
liczba 9 (13 + 13 1,5 = 59)
Nie najlepiej, właśnie zacząłem dzisiaj uczyć się pytha i pomyślałem, że spróbuję, numer 5 naprawdę zabił mój wynik, myślę, że mogę uzyskać kilka z nich krótszych, ale to tylko zrani mnie bardziej na odległości. Wszelkie wskazówki od bardziej doświadczonych użytkowników pyta są mile widziane.
źródło
You must use one language to write programs that perform the following nine tasks, in any order.
Powodzenia!5 + 14^1.5
nie jest 19Python 3 (obecnie niepoprawny), 621 bajtów
Niezbyt dobry kod, ale działa: D. Suma czynników pierwszych nie działa. Zawsze otrzymuję inny wynik niż twój przykład, więc go usunąłem. Również Python nie obsługuje znaku,
ಠ
więc zamiast tego zamieniao
s na0
sINFORMACJE IO:
1. wejście: int w bazie 10 | Wyjście: ta liczba w bazie 36
Drugie wejście: ciąg | Wyjście: liczby Ascii ciągu
3. wejście: liczba całkowita | Wyjście: prawda lub fałsz, w zależności od tego, czy liczbę można podzielić przez 1738
Czwarte wejście: ciąg | Dane wyjściowe: T lub F, w zależności od tego, czy ciąg zawiera „q”
Piąte wejście: ciąg | Dane wyjściowe: Caser Cipher +1 ciągu
6: po prostu drukuje „PPCG” dosłownie
7. wejście: int n | Wyjście: pierwsze n ints podzielne przez piętro (sqrt (n))
8. wejście: ciąg | Wyjście: Zamieniono wszystkie
o
s na 0 (nie na ಠ, ponieważ python nie obsługuje tej postaci, nie denerwuj się :))źródło