A tarefa é simples, considerando dois endereços IP a
e produzindo b
todos os endereços dentro desse intervalo.
Exemplos
Exemplo 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
Exemplo # 2 (o TIO truncará isso, use um intervalo menor ao testar):
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
Entrada e saída
a < b
em outras palavras:- Definido programaticamente :
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])
- Definido em palavras:
a
sempre será menor queb
(assim você terá que incrementar a sub-rede para alcançarb
). - Não, você não precisa lidar com isso
a == b
(se sim, parabéns).
- Definido programaticamente :
- A saída deve estar na ordem de "mais baixo" para "mais alto" (veja exemplos).
- Para este desafio, a sintaxe válida por um IP é:
\d{1-3}\.\d{1-3}\.\d{1-3}\.\d{1-3}
. - Você não precisa lidar com a entrada de endereços não IP, se for uma entrada inesperada, poderá ocorrer um erro.
- A saída pode ser como uma matriz ou como uma sequência delimitada (usando qualquer caractere de espaço em branco).
Ganhando
- Isso é código-golfe , vitórias mais baixas na contagem de bytes.
code-golf
networking
Urna de polvo mágico
fonte
fonte
123.0.200.255
e123.0.201.0
, mas eles não são sequenciais?Respostas:
Pyth, 22
Experimente online .
fonte
vM
será o padrão parav
quando aplicado a uma lista.Lote, 623 bytes
Infelizmente, a aritmética de 32 bits do Batch não pode imprimir todos os endereços IP, então eu tenho que dividi-lo em octetos.
fonte
@echo off
opção é? Não que isso faça uma enorme diferença.Python 2 , 128 bytes
Experimente online!
fonte
PHP, 71 bytes
Saída como string
Experimente online! ou Saída como matriz
Experimente online!
fonte
Gelatina , 18 bytes
Experimente online!
A saída é exibida com uma quantidade de dígitos e decimais, mas é armazenada internamente como uma lista de cadeias. Acrescente
Y
a ao final (+1 byte) para unir as cadeias por novas linhas.Como funciona
fonte
JavaScript (ES6), 104 bytes
Esta solução substitui o padrão n .256 por n + 1 .0 e se chama recursivamente até que os dois parâmetros sejam iguais.
Anexa '.256' à entrada inicial para fazer a bola rolar.
slice(0,-2)
é então usado para remover o '.0' à direita.Exemplos:
fonte
Java (OpenJDK 8) ,
339314282 bytesGolfe:
Ungolfed:
Experimente online!
fonte