Zadanie jest proste, biorąc pod uwagę dwa adresy IP a
i b
wyprowadzenie wszystkich adresów z tego zakresu.
Przykłady
Przykład 1:
f(a = 192.168.0.1, b = 192.168.0.4)
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
Przykład # 2 (TIO to skróci, użyj mniejszego zakresu podczas testowania):
f (a = 123.0.200.0, b = 124.0.0.0)
123.0.200.0
123.0.200.1
... # Omitted pattern
123.0.200.255
123.0.201.0
... # Omitted pattern
123.0.201.255
... # Omitted pattern
123.0.255.255
123.1.0.0
... # Omitted pattern
123.255.255.255
124.0.0.0
Wejście i wyjście
a < b
innymi słowy:- Zdefiniowane programowo :
a[0] < b[0] || (a[0] == b[0] && a[1] < b[1]) || (a[0:1] == b[0:1] && a[2] < b[2]) || (a[0:2] == b[0:2] && a[3] < b[3])
- Zdefiniowany w słowach:
a
zawsze będzie niższy niżb
(więc musisz zwiększyć podsieć, aby osiągnąćb
). - Nie, nie musisz się tym zajmować
a == b
(jeśli tak, to kudos).
- Zdefiniowane programowo :
- Dane wyjściowe powinny być uporządkowane od „najniższego” do „najwyższego” (patrz przykłady).
- Na to wyzwanie, Poprawna składnia dla IP to:
\d{1-3}\.\d{1-3}\.\d{1-3}\.\d{1-3}
. - Nie musisz obsługiwać wprowadzania adresu innego niż IP, jeśli jest to nieoczekiwane wprowadzenie, możesz popełnić błąd.
- Dane wyjściowe mogą być tablicą lub ciągiem rozdzielanym (za pomocą dowolnego znaku spacji).
Zwycięski
- To jest golf golfowy , wygrana o najniższej liczbie bajtów.
code-golf
networking
Urna Magicznej Ośmiornicy
źródło
źródło
123.0.200.255
A123.0.201.0
, ale czy nie są one sekwencyjne?Odpowiedzi:
Pyth, 22 lata
Wypróbuj online .
źródło
vM
będzie domyślny,v
gdy zostanie zastosowany do listy.Partia, 623 bajty
Niestety 32-bitowa arytmetyka Batcha nie może wydrukować wszystkich adresów IP, więc muszę podzielić je na oktety.
źródło
@echo off
opcji? Nie dlatego, że robi to ogromną różnicę.Python 2 , 128 bajtów
Wypróbuj online!
źródło
PHP, 71 bajtów
Dane wyjściowe jako ciąg
Wypróbuj online! lub Wyjście jako tablica
Wypróbuj online!
źródło
Galaretka , 18 bajtów
Wypróbuj online!
Dane wyjściowe wydają się być zgrubieniem cyfr i miejsc po przecinku, ale są przechowywane wewnętrznie jako lista ciągów znaków. Dodaj a
Y
do końca (+1 bajt), aby połączyć ciągi przez nowe linie.Jak to działa
źródło
JavaScript (ES6), 104 bajty
To rozwiązanie zastępuje wzorzec n .256 przez n + 1 .0 i wywołuje się rekurencyjnie, dopóki dwa parametry nie będą równe.
Dołącza „.256” do początkowego wejścia, aby uruchomić piłkę.
slice(0,-2)
jest następnie używany do usunięcia końcowego „.0”.Przykłady:
źródło
Java (OpenJDK 8) ,
339314282 bajtyGra w golfa:
Nie golfowany:
Wypróbuj online!
źródło