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

2.2 KiB

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

Description

Considere uma fileira infinita de caixas. Algumas das caixas contêm uma bola. Por exemplo, uma configuração inicial de 2 caixas ocupadas consecutivas seguidas de 2 caixas vazias, 2 caixas ocupadas, 1 caixa vazia e 2 caixas ocupadas pode ser denotada pela seqüência (2, 2, 2, 1, 2), na qual o número de caixas ocupadas e vazias consecutivas aparecem alternadamente.

Um turn consiste em mover cada bola exatamente uma vez, de acordo com a seguinte regra: Transferir a bola mais à esquerda que não foi movida para a caixa vazia mais próxima à sua direita.

Após uma volta, a sequência (2, 2, 2, 1, 2) torna-se (2, 2, 1, 2, 3) como pode ser visto abaixo; note que começamos a nova sequência começando na primeira caixa ocupada.

Um sistema como este é chamado de Sistema Box-Ball ou BBS.

Pode ser mostrado que, após um número suficiente de voltas, o sistema evolui para um estado em que os números consecutivos de caixas ocupadas são invariantes. No exemplo abaixo, os números consecutivos de caixas ocupadas evoluem para [1, 2, 3]; nós chamaremos isso de estado final.

Definimos a sequência {ti}: s0 = 290797 sk + 1 = sk2 mod 50515093 tk = (sk mod 64) + 1

A partir da configuração inicial (t0, t1,…, t10), o estado final torna-se [1, 3, 10, 24, 51, 75]. A partir da configuração inicial (t0, t1,…, t10 000 000), encontre o estado final. Dê como sua resposta a soma dos quadrados dos elementos do estado final. Por exemplo, se o estado final for [1, 2, 3], então 14 (= 12 + 22 + 32) é a sua resposta.

Instructions

undefined

Tests

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

Challenge Seed

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

euler426();

Solution

// solution required