freeCodeCamp/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-459-flipping-game.md

1.8 KiB

id title challengeType forumTopicId dashedName
5900f5371000cf542c51004a Problema 459: gioco flipping 1 302133 problem-459-flipping-game

--description--

Il gioco di flipping è un gioco di due giocatori giocato su un tavolo quadrato N per N.

Ogni quadrato contiene un disco con un lato bianco e un lato nero.

Il gioco inizia con tutti i dischi che mostrano il loro lato bianco.

Un turno consiste nel capovolgere tutti i dischi in un rettangolo con le seguenti proprietà:

  • l'angolo in alto a destra del rettangolo contiene un disco bianco
  • la larghezza del rettangolo è un quadrato perfetto (1, 4, 9, 16, ...)
  • l'altezza del rettangolo è un numero triangolare (1, 3, 6, 10, ...)
capovolgendo tutti i dischi in un rettangolo 4x3 su una tabella 5x5

I giocatori si alternano nei turni. Un giocatore vince girando la griglia in modo che sia tutta nera.

Sia W(N) il numero di mosse vincenti per il primo giocatore su una scacchiera N x N con tutti i dischi bianchi, supponendo un gioco perfetto.

W(1) = 1, W(2) = 0, W(5) = 8 and W({10}^2) = 31\\,395.

Per N = 5, le prime otto mosse vincenti del giocatore sono:

le otto prime mosse vincenti per N = 5

Trova W({10}^6).

--hints--

flippingGame() dovrebbe restituire 3996390106631.

assert.strictEqual(flippingGame(), 3996390106631);

--seed--

--seed-contents--

function flippingGame() {

  return true;
}

flippingGame();

--solutions--

// solution required