freeCodeCamp/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-331-cross-flips.md

1.9 KiB
Raw Blame History

id title challengeType forumTopicId dashedName
5900f4b71000cf542c50ffca Problema 331: Ribaltamenti a croce 5 301989 problem-331-cross-flips

--description--

N×N dischi sono posizionati su un tabellone da gioco quadrato. Ogni disco ha un lato nero e un lato bianco.

Ad ogni turno, si può scegliere un disco e capovolgere tutti i dischi nella stessa riga e la stessa colonna di questo disco: così 2 × N - 1 dischi vengono capovolti. Il gioco termina quando tutti i dischi mostrano il loro lato bianco. L'esempio seguente mostra una partita su una griglia 5×5.

animazione che mostra il gioco sulla scheda 5x5

Si può dimostrare che 3 è il numero minimo di turni per finire questo gioco.

Il disco in basso a sinistra sulla scheda N×N ha coordinate (0, 0); il disco in basso a destra ha coordinate (N - 1,0) e il disco in alto a sinistra ha coordinate (0,N - 1).

Sia C_N la seguente configurazione di una scheda con N × N dischi: Un disco a (x, y) soddisfacente N - 1 \le \sqrt{x^2 + y^2} \lt N, mostra il suo lato nero; altrimenti, mostra il suo lato bianco. C_5 è mostrato sopra.

Sia T(N) il numero minimo di turni per completare una partita che parte dalla configurazione C_N o 0 se la configurazione C_N è irrisolvibile. Abbiamo mostrato che T(5) = 3. Ti viene anche dato che T(10) = 29 e T(1\\,000) = 395\\,253.

Trova \displaystyle \sum_{i = 3}^{31} T(2^i - i).

--hints--

crossFlips() dovrebbe restituire 467178235146843500.

assert.strictEqual(crossFlips(), 467178235146843500);

--seed--

--seed-contents--

function crossFlips() {

  return true;
}

crossFlips();

--solutions--

// solution required