Robar secuencias: policías


10

Esto es . Este es el hilo de policías . Para el hilo de los ladrones, ve aquí .

He notado varios desafíos de OEIS (Enciclopedia en línea de secuencias enteras) desde que me uní al sitio. Parece justo que tengamos un desafío de policías y ladrones que determina quién es el maestro de las secuencias de enteros en línea, de una vez por todas.

Editar: para evitar respuestas triviales, los policías pierden 1/2 punto por cada envío que está roto. Además, para los propósitos de este desafío, no se permiten secuencias constantes. Esto solo se aplica a las soluciones publicadas después de esta edición.

Policías

Escriba un programa o función que, sin entrada, imprima determinísticamente cualquier secuencia del OEIS . Al eliminar algunos subconjuntos de caracteres, su programa debe poder imprimir una secuencia OEIS diferente cuando se ejecuta en el mismo idioma. La nueva secuencia debe ser completamente nueva, no solo la primera con un nombre diferente o con un desplazamiento diferente. Ninguna secuencia puede ser simplemente un valor constante repetido.

Debe proporcionar la primera función, junto con el nombre de la secuencia OEIS para que se pueda verificar la corrección. Está bien si el comportamiento se vuelve cuestionable en torno al valor MAX_INT de su idioma o 256, lo que sea mayor.

Ladrones

Elimine los caracteres de la presentación de algunos policías de modo que su nuevo programa genere cualquier otra secuencia del OEIS. Proporcione la nueva función junto con el nombre de la nueva secuencia OEIS. Aquí hay una utilidad para asegurarse de que su envío sea válido (es decir, elimina caracteres sin ningún asunto divertido. No verifica la secuencia en sí).

Le conviene eliminar tantos caracteres como sea posible de la presentación del policía. Si aparece otro ladrón (cualquiera excepto el policía que creó el programa original) y encuentra una solución más corta que encuentra otra secuencia diferente , ese ladrón roba su punto. (Tenga en cuenta que simplemente jugar golf e imprimir la misma secuencia no es suficiente para robar el punto).

Reglas y puntuación

Si, después de una semana, nadie ha podido descifrar su solución, puede marcar su solución como segura al proporcionar el segundo programa junto con el nombre de la secuencia que genera.

Obtiene un punto por cada publicación segura y un punto por cada envío que descifre. Los policías pierden 1/2 punto por cada presentación agrietada. Tenga en cuenta que otro ladrón puede robar su punto del envío descifrado en cualquier momento al proporcionar un programa más corto que produce una secuencia diferente.

Los policías solo pueden publicar un desafío por idioma, por persona.

El jugador con más puntos a las 12:00 UTC del 7 de julio gana.



1
Este desafío es extremadamente similar. No lo engañaré, pero creo que esto es probablemente un duplicado.
FryAmTheEggman

1
@FryAmTheEggman ah, no vi eso. No creo que sea un engaño, ya que la distancia de hamming = / eliminaciones y los ladrones tienen mucho más margen para encontrar respuestas no deseadas, pero es más similar de lo que me gustaría.
vroomfondel

1
Gracias @rogaos. Esa fue la respuesta que esperaba a la primera pregunta, así que no te preocupes. Tengo un par de ideas para los policías, espero tener unos minutos en la mañana para trabajarlas.
Shaggy

3
Creo que la distancia de golf vs Levenstein hace que esto sea sustancialmente diferente. Los policías tienen que considerar soluciones potenciales drásticamente diferentes.
Nathan Merrill

Respuestas:



1

C, A000217, 239 bytes Agrietado

Esto no es así que no me molesté.

#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;
}

Secuencia: https://oeis.org/A000217


1
@rogaos El que está descifrado de este código no es constante (al menos, el que conozco)
Govind Parmar

Editado en bytes para comodidad del ladrón.
Stephen


@rogaos Creo que esto podría resolverse mejor que el mío al hacerlo constante, pero creo que es más interesante no ser constante, por lo que votaría para que esto no sea una excepción a la regla constante
nmjcman101

1
@ nmjcman101 es justo, ya que Govind no tenía la intención de que fuera una constante. Eliminando mi comentario anterior.
vroomfondel


1

MOO, 86 bytes, seguro

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

Imprime poderes de dos (A000079).

Solución:

a = 1; while (a> -1) a = $ math_utils: sum (a, a, a); notificar (player, tostr (a)); endwhile (que imprime poderes de 3 (A000244) en su lugar)


0

PHP , 20 bytes agrietado

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

Pruébalo en línea!

secuencia de impresión https://oeis.org/A000012


Su versión original rompe esta versión.
vroomfondel


¿Tenías una solución en mente para la primera? Si es así, debe retroceder.
vroomfondel

1
@rogaos, descifré la versión actual sin ver que había cambiado. Retroceder podría causar un desastre.
Peter Taylor

1
@rogaos Deberías prohibir secuencias que devuelvan un valor constante
Jörg Hülsermann

0

cQuents (confirmación anterior), 10 bytes, agrietado

=0,1,1:z+y

Este sigue siendo un lenguaje muy WIP, pero parcheé al intérprete para que funcione. Haga clic en el nombre del idioma para el enlace de Github.

Esto genera la secuencia de Fibonnacci: A000045

Explicación:

(porque no tengo documentación y no espero que lea mi código de intérprete)

=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

Si todavía se permitieran secuencias constantes, esto sería muy fácil de robar.



Este idioma es excelente
vroomfondel

@rogaos aún no está hecho, no está cerca, pero gracias :)
Stephen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.