Per un'immagine N per N , trova una serie di pixel in modo tale che non sia presente una distanza di separazione più di una volta. Cioè, se due pixel sono separati da una distanza d , allora sono gli unici due pixel separati da esattamente d (usando la distanza euclidea ). Si noti che d non deve essere intero.
La sfida è trovare un set più grande di chiunque altro.
specificazione
Non è richiesto input: per questo contest N sarà fissato a 619.
(Dato che la gente continua a chiedere: non c'è niente di speciale nel numero 619. È stato scelto per essere abbastanza grande da rendere improbabile una soluzione ottimale, e abbastanza piccolo da consentire la visualizzazione di un'immagine N per N senza Stack Exchange che la riduca automaticamente. Le immagini possono essere visualizzato a schermo intero fino a 630 per 630, e ho deciso di andare con il primo più grande che non supera quello.)
L'output è un elenco di numeri interi separati da spazio.
Ogni numero intero nell'output rappresenta uno dei pixel, numerato in ordine di lettura inglese da 0. Ad esempio per N = 3, le posizioni sarebbero numerate in questo ordine:
0 1 2
3 4 5
6 7 8
Se lo desideri, puoi fornire informazioni sullo stato di avanzamento durante l'esecuzione, purché l'output del punteggio finale sia facilmente disponibile. Puoi eseguire l'output su STDOUT o su un file o qualsiasi altra cosa sia più semplice per incollare nello Stack Snippet Judge di seguito.
Esempio
N = 3
Coordinate scelte:
(0,0)
(1,0)
(2,1)
Produzione:
0 1 5
vincente
Il punteggio è il numero di posizioni nell'output. Di quelle risposte valide che hanno il punteggio più alto, vince la prima che pubblica un output con quel punteggio.
Non è necessario che il tuo codice sia deterministico. Puoi pubblicare il tuo miglior risultato.
Aree correlate per la ricerca
(Grazie ad Abulafia per i collegamenti Golomb)
Sebbene nessuno di questi sia lo stesso di questo problema, sono entrambi simili nel concetto e possono darti idee su come affrontare questo:
- Righello Golomb : il caso monodimensionale.
- Rettangolo Golomb : un'estensione 2 dimensionale del righello Golomb. Una variante del caso NxN (quadrato) nota come matrice Costas è risolta per tutti gli N.
Nota che i punti richiesti per questa domanda non sono soggetti agli stessi requisiti di un rettangolo Golomb. Un rettangolo di Golomb si estende dal caso 1 dimensionale richiedendo che il vettore da ciascun punto all'altro sia unico. Ciò significa che possono esserci due punti separati da una distanza di 2 in orizzontale, e anche due punti separati da una distanza di 2 in verticale.
Per questa domanda, è la distanza scalare che deve essere unica, quindi non può esserci una separazione orizzontale e verticale di 2. Ogni soluzione a questa domanda sarà un rettangolo di Golomb, ma non tutti i rettangoli di Golomb saranno una soluzione valida per questa domanda.
Limiti superiori
Dennis ha sottolineato utile in chat che 487 è un limite superiore del punteggio e ha dato una prova:
Secondo il mio codice CJam (
619,2m*{2f#:+}%_&,
), ci sono 118800 numeri univoci che possono essere scritti come la somma dei quadrati di due numeri interi tra 0 e 618 (entrambi inclusi). n pixel richiedono n (n-1) / 2 distanze uniche tra loro. Per n = 488, ciò dà 118828.
Quindi ci sono 118.800 possibili lunghezze diverse tra tutti i potenziali pixel nell'immagine e posizionare 488 pixel neri comporterebbe 118.828 lunghezze, il che rende impossibile per tutti essere unici.
Sarei molto interessato a sapere se qualcuno ha una prova di un limite superiore inferiore a questo.
Classifica
(Migliore risposta di ogni utente)