As réguas de Golomb são conjuntos de números inteiros não negativos, de modo que não existem dois pares de números inteiros no conjunto à mesma distância.
Por exemplo, [0, 1, 4, 6]
é uma régua de Golomb porque todas as distâncias entre dois números inteiros neste conjunto são únicas:
0, 1 -> distance 1
0, 4 -> distance 4
0, 6 -> distance 6
1, 4 -> distance 3
1, 6 -> distance 5
4, 6 -> distance 2
Por uma questão de simplicidade neste desafio (e como a tradução é trivial), impomos que uma régua de Golomb sempre contenha o número0
(como o exemplo anterior).
Como esse conjunto é longo 4
, dizemos que este é um governante da ordem Golomb 4
. A maior distância deste conjunto (ou elemento, já que 0
está sempre no conjunto) é 6
, portanto, dizemos que este é um governante de Golomb de comprimento 6
.
Sua tarefa
Encontre réguas de Golomb da ordem 50
de 100
(inclusive) com o menor comprimento possível. As réguas encontradas não precisam ser ótimas (veja abaixo).
Optimalidade
Uma régua de Golomb de ordem N
, é dito ser o ideal, se não houver outra régua de Golomb de ordem N
que tem um comprimento menor.
Os governantes ideais de Golomb são conhecidos por encomendas inferiores a 28 , embora encontrar e provar a otimização seja cada vez mais difícil à medida que a ordem aumenta.
Portanto, não é esperado que você encontre a régua Golomb ideal para qualquer uma das ordens entre 50
e 100
(e menos ainda que você possa provar que elas são ótimas).
Não há limites de tempo na execução do seu programa.
Linha de base
A lista abaixo é a lista dos comprimentos das réguas de Golomb de 50
até 100
(em ordem) avaliadas com uma estratégia de pesquisa ingênua (Agradecemos a @PeterTaylor para esta lista):
[4850 5122 5242 5297 5750 5997 6373 6800 6924 7459 7546 7788 8219 8502 8729 8941 9881 10199 10586 10897 11288 11613 11875 12033 12930 13393 14046 14533 14900 15165 15687 15971 16618 17354 17931 18844 19070 19630 19669 20721 21947 22525 23290 23563 23880 24595 24767 25630 26036 26254 27218]
A soma de todos esses comprimentos é 734078
.
Pontuação
Sua pontuação será a soma dos comprimentos de todos os seus governantes Golomb entre 50
e 100
, dividido pela soma dos comprimentos dos governantes Golomb entre 50
e 100
na linha de base: 734078
.
Caso você não tenha encontrado uma régua de Golomb para uma ordem específica, calcule sua pontuação da mesma maneira, usando o dobro do comprimento na linha de base para essa ordem específica.
A resposta com a menor pontuação vence.
Em caso de empate, os comprimentos da maior ordem em que as duas respostas diferem são comparados e a mais curta vence. Caso ambas as respostas tenham o mesmo tamanho para todos os pedidos, a resposta que foi lançada primeiro vence.
n
é n(n-1)/2
, já que é quantas diferenças positivas existem. Portanto, a menor pontuação possível nesse desafio é 147050/734078 > 0.2003193
.