55 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								id: 5900f5171000cf542c510029
							 | 
						||
| 
								 | 
							
								challengeType: 5
							 | 
						||
| 
								 | 
							
								title: 'Problem 426: Box-ball system'
							 | 
						||
| 
								 | 
							
								videoUrl: ''
							 | 
						||
| 
								 | 
							
								localeTitle: ''
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Description
							 | 
						||
| 
								 | 
							
								<section id="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. <p> 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. </p><p> 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. </p><p> Um sistema como este é chamado de Sistema Box-Ball ou BBS. </p><p> 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. </p><p> Definimos a sequência {ti}: s0 = 290797 sk + 1 = sk2 mod 50515093 tk = (sk mod 64) + 1 </p><p> 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. </p></section>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Instructions
							 | 
						||
| 
								 | 
							
								undefined
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Tests
							 | 
						||
| 
								 | 
							
								<section id='tests'>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```yml
							 | 
						||
| 
								 | 
							
								tests:
							 | 
						||
| 
								 | 
							
								  - text: <code>euler426()</code> deve retornar 31591886008.
							 | 
						||
| 
								 | 
							
								    testString: 'assert.strictEqual(euler426(), 31591886008, "<code>euler426()</code> should return 31591886008.");'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</section>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Challenge Seed
							 | 
						||
| 
								 | 
							
								<section id='challengeSeed'>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<div id='js-seed'>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								function euler426() {
							 | 
						||
| 
								 | 
							
								  // Good luck!
							 | 
						||
| 
								 | 
							
								  return true;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								euler426();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</div>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</section>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Solution
							 | 
						||
| 
								 | 
							
								<section id='solution'>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								// solution required
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								</section>
							 |