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

1.5 KiB

id challengeType title videoUrl localeTitle
5900f51a1000cf542c51002d 5 Problem 430: Range flips Problema 430: volteos de rango

Description

Los discos N se colocan en una fila, indexados de 1 a N de izquierda a derecha. Cada disco tiene un lado negro y un lado blanco. Inicialmente todos los discos muestran su lado blanco.

En cada turno, dos enteros A y B, no necesariamente distintos, entre 1 y N (inclusive) se eligen de manera uniforme y aleatoria. Todos los discos con un índice de A a B (inclusive) se invierten.

El siguiente ejemplo muestra el caso N = 8. En el primer turno A = 5 y B = 2, y en el segundo turno A = 4 y B = 6.

Sea E (N, M) el número esperado de discos que muestran su lado blanco después de que M gira. Podemos verificar que E (3, 1) = 10/9, E (3, 2) = 5/3, E (10, 4) ≈ 5.157 y E (100, 10) ≈ 51.893.

Encuentra E (1010, 4000). Da tu respuesta redondeada a 2 lugares decimales detrás del punto decimal.

Instructions

Tests

tests:
  - text: <code>euler430()</code> debe devolver 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