freeCodeCamp/curriculum/challenges/portuguese/08-coding-interview-prep/project-euler/problem-430-range-flips.por...

1.5 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f51a1000cf542c51002d 5 Problem 430: Range flips Problema 430: Variáveis de Intervalo

Description

N discos são colocados em uma linha, indexados de 1 a N da esquerda para a direita. Cada disco tem um lado preto e um lado branco. Inicialmente, todos os discos mostram seu lado branco.

A cada turno, dois inteiros A e B, não necessariamente distintos, entre 1 e N (inclusive) são escolhidos uniformemente ao acaso. Todos os discos com um índice de A a B (inclusive) são invertidos.

O exemplo a seguir mostra o caso N = 8. No primeiro turno A = 5 e B = 2, e no segundo turno A = 4 e B = 6.

Seja E (N, M) o número esperado de discos que mostram seu lado branco após M turnos. Podemos verificar que E (3, 1) = 10/9, E (3, 2) = 5/3, E (10, 4) ≈ 5,157 e E (100, 10) ≈ 51,893.

Encontre E (1010, 4000). Dê sua resposta arredondada para 2 casas decimais atrás do ponto decimal.

Instructions

Tests

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

Challenge Seed

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

euler430();

Solution

// solution required