freeCodeCamp/curriculum/challenges/spanish/08-coding-interview-prep/project-euler/problem-426-box-ball-system...

2.4 KiB

id challengeType title videoUrl localeTitle
5900f5171000cf542c510029 5 Problem 426: Box-ball system Problema 426: sistema box-ball

Description

Considera una fila infinita de cajas. Algunas de las cajas contienen una bola. Por ejemplo, una configuración inicial de 2 casillas ocupadas consecutivas seguidas de 2 casillas vacías, 2 casillas ocupadas, 1 casilla vacía y 2 casillas ocupadas se pueden denotar mediante la secuencia (2, 2, 2, 1, 2), en la que el número de casillas ocupadas y vacías consecutivas aparecen alternativamente.

Un giro consiste en mover cada bola exactamente una vez de acuerdo con la siguiente regla: Transfiera la bola de la izquierda que no se haya movido a la casilla vacía más cercana a su derecha.

Después de un giro, la secuencia (2, 2, 2, 1, 2) se convierte en (2, 2, 1, 2, 3) como se puede ver a continuación; Tenga en cuenta que comenzamos la nueva secuencia a partir de la primera casilla ocupada.

Un sistema como este se denomina sistema Box-Ball o BBS para abreviar.

Se puede mostrar que después de un número suficiente de turnos, el sistema evoluciona a un estado en el que los números consecutivos de casillas ocupadas son invariantes. En el siguiente ejemplo, los números consecutivos de cuadros ocupados evolucionan a [1, 2, 3]; Llamaremos a esto el estado final.

Definimos la secuencia {ti}: s0 = 290797 sk + 1 = sk2 mod 50515093 tk = (sk mod 64) + 1

A partir de la configuración inicial (t0, t1,…, t10), el estado final se convierte en [1, 3, 10, 24, 51, 75]. A partir de la configuración inicial (t0, t1,…, t10 000 000), encuentre el estado final. Da como respuesta la suma de los cuadrados de los elementos del estado final. Por ejemplo, si el estado final es [1, 2, 3], entonces 14 (= 12 + 22 + 32) es su respuesta.

Instructions

undefined

Tests

tests:
  - text: <code>euler426()</code> debe devolver 31591886008.
    testString: 'assert.strictEqual(euler426(), 31591886008, "<code>euler426()</code> should return 31591886008.");'

Challenge Seed

function euler426() {
  // Good luck!
  return true;
}

euler426();

Solution

// solution required