Sequenze rubate: poliziotti


10

Questo è . Questo è il thread di Cops . Per il thread dei ladri, vai qui .

Ho notato una serie di sfide OEIS (Enciclopedia delle sequenze intere on-line) da quando ho aderito al sito. Sembra giusto che abbiamo una sfida di poliziotti e ladri che determina chi è il padrone delle sequenze di numeri interi online, una volta per tutte.

Modifica: Al fine di prevenire risposte insignificanti, i poliziotti perdono 1/2 punto per ogni invio che viene violata. Inoltre, ai fini di questa sfida, non sono consentite sequenze costanti. Questo vale solo per le soluzioni pubblicate dopo questa modifica.

Cops

Scrivi un programma o una funzione che, in assenza di input, stampa in modo deterministico qualsiasi sequenza dall'OEIS . Eliminando alcuni sottogruppi di caratteri, il programma deve essere in grado di stampare una sequenza OEIS diversa quando eseguito nella stessa lingua. La nuova sequenza deve essere completamente nuova, non solo la prima con un nome diverso o con un offset diverso. Nessuna sequenza può essere semplicemente un valore costante ripetuto.

È necessario fornire la prima funzione, insieme al nome della sequenza OEIS in modo da poter verificare la correttezza. Va bene se il comportamento diventa discutibile attorno al valore MAX_INT della tua lingua o 256, a seconda di quale sia il più grande.

Robbers

Elimina i caratteri dall'invio di alcuni Cop in modo tale che il tuo nuovo programma produca qualsiasi altra sequenza dall'OEIS. Fornire la nuova funzione insieme al nome della nuova sequenza OEIS. Ecco un'utilità per assicurarti che il tuo invio sia valido (ad esempio, elimina i caratteri senza alcuna attività divertente. Non controlla la sequenza stessa).

È nel tuo interesse eliminare il maggior numero possibile di personaggi dall'invio del poliziotto. Se arriva un altro ladro (chiunque tranne il poliziotto che ha creato il programma originale) e trova una soluzione più breve che trova un'altra sequenza diversa , quel ladro ruba il tuo punto. (Notare che il semplice golf di caratteri e la stampa della stessa sequenza non è sufficiente per rubare il punto.)

Regole e punteggio

Se, dopo una settimana, nessuno è stato in grado di decifrare la tua soluzione, puoi contrassegnarla come sicura fornendo il secondo programma insieme al nome della sequenza che genera.

Ottieni un punto per ogni invio sicuro e un punto per ogni invio che crei. Gli sbirri perdono 1/2 punto per ogni sottomissione. Nota che un altro ladro può rubare il tuo punto dall'invio incrinato in qualsiasi momento fornendo un programma più breve che produce una sequenza diversa.

I poliziotti possono pubblicare una sola sfida per lingua, per persona.

Vince il giocatore con il maggior numero di punti alle 12:00 UTC del 7 luglio.



1
Questa sfida è estremamente simile. Non lo ingannerò, ma penso che questo sia probabilmente un duplicato.
FryAmTheEggman,

1
@FryAmTheEggman ah, non l'ho visto. Non penso che sia abbastanza ingannevole dato che hamming distance = / deletions e i ladri hanno molto più margine di manovra per trovare risposte non intenzionali, ma è più simile di quanto vorrei.
vroomfondel,

1
Grazie @rogaos. Questa era la risposta che mi aspettavo dalla prima domanda, quindi non preoccuparti. Ho un paio di idee per i poliziotti, spero di avere qualche minuto al mattino per elaborarli.
Shaggy,

3
Penso che la distanza tra golf e Levenstein la renda sostanzialmente diversa. Gli sbirri devono considerare soluzioni potenzialmente drasticamente diverse.
Nathan Merrill,

Risposte:



1

C, A000217, 239 byte Incrinato

Non si tratta di quindi non mi sono preoccupato.

#include <stdio.h>
#include <limits.h>
int main()
{
    int i, n, temp = 0;
    for(i = 0; i < INT_MAX; i++)
    {
        n = 0;
        temp = i;
        while(temp)
            n+=temp--;
        printf("%d, ", n);
    }
    return 0;
}

Sequenza: https://oeis.org/A000217


1
@rogaos Quello che è stato violato da questo codice non è costante (almeno, quello di cui sono a conoscenza)
Govind Parmar,

Modificato in byte per comodità del ladro.
Stephen,


@rogaos Penso che questo potrebbe essere risolto meglio del mio rendendolo costante, ma penso che sia più interessante essere non costante, quindi
voterei

1
@ nmjcman101 abbastanza giusto, poiché Govind non intendeva che fosse una costante. Eliminazione del mio commento sopra.
vroomfondel,

1

Python 2, 273 byte, rotto

Sequenza iniziale: A004442

import zlib, base64;exec(zlib.decompress(base64.b64decode('eJzLtDUAAAHoANc=')))
while True:print eval(zlib.decompress(base64.b64decode('eJwzAgAAMwAz')))^eval(zlib.decompress(base64.b64decode('eJwzjssEAAHBAPs='))),;exec(zlib.decompress(base64.b64decode('eJzL1LY1BAAC1AED')))

Provalo online!



2

1

MOO, 86 byte, sicuro

a=0;b=1;while(a>-1)a=$math_utils:sum(a,a);a=max(1,a);notify(player,tostr(a));endwhile

Stampa due potenze (A000079).

Soluzione:

a = 1; while (a> -1) a = $ math_utils: somma (a, a, a); notifica (giocatore, tostr (a)); endtime (che invece stampa poteri di 3 (A000244))


0

PHP , 20 byte Incrinato

for(;;)echo+!$i,",";

Provalo online!

sequenza di stampa https://oeis.org/A000012


La tua versione originale rompe questa versione.
vroomfondel,


Avevi in ​​mente una soluzione per la prima? Se è così, dovresti tornare indietro.
vroomfondel,

1
@rogaos, ho crackato la versione attuale senza vedere che era cambiata. Il rollback potrebbe causare confusione.
Peter Taylor,

1
@rogaos Dovresti vietare le sequenze che restituiscono un valore costante
Jörg Hülsermann,

0

cQuents (commit precedente), 10 byte, crackato

=0,1,1:z+y

Questo è ancora un linguaggio fortemente WIP, ma ho corretto l'interprete in modo che funzionasse. Fai clic sul nome della lingua per il link Github.

Questo genera la sequenza di Fibonnacci: A000045

Spiegazione:

(perché non ho documentazione e non mi aspetto che tu legga il mio codice interprete)

=0,1,1      Set start to [0,1,1]
      :     Mode: sequence
       z+y  Each term is the previous two terms added together
            Because there is no input, output the whole sequence

Se le sequenze costanti fossero ancora consentite, sarebbe semplicissimo da derubare.



Questa lingua è eccellente
vroomfondel,

@rogaos non è ancora finito, da nessuna parte vicino, ma grazie :)
Stephen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.