Il numero di avvolgimento è il numero intero di giri netti in senso antiorario che un osservatore deve aver fatto per seguire un determinato percorso chiuso. Si noti che eventuali giri in senso orario contano negativamente verso il numero di avvolgimento. Il percorso è autorizzato a intersecarsi da soli.
Di seguito alcuni esempi (presi spudoratamente da Wikipedia):
Il tuo obiettivo è calcolare il numero di avvolgimento per un determinato percorso.
Ingresso
Si presume che l'osservatore sia all'origine (0,0).
L'input è una sequenza finita di punti (simile a una coppia di numeri interi) da qualsiasi sorgente di input desiderata che descrive il percorso lineare saggio. Puoi appiattirlo in una sequenza 1D di numeri interi, se lo desideri, e puoi anche far scorrere l'input per prendere tutte le coordinate x prima di tutte le coordinate y / viceversa. Puoi anche prendere l'input come numero complesso a+b i. Il percorso può intersecarsi da solo e può contenere segmenti di lunghezza zero. Il primo punto è l'inizio del percorso e si presume che si trovi da qualche parte sull'asse x positivo.
Nessuna parte del percorso interseca l'origine. Il percorso sarà sempre chiuso (ovvero il primo e il punto perso sono gli stessi). Il tuo codice può implicare l'ultimo punto o richiedere che sia incluso.
Ad esempio, a seconda delle preferenze, entrambi gli input specificano lo stesso quadrato:
punto finale implicito
1,0
1,1
-1,1
-1,-1
1,-1
punto finale esplicito
1,0
1,1
-1,1
-1,-1
1,-1
1,0
Produzione
L'output è un singolo numero intero per il numero di avvolgimento. Questo può essere per qualsiasi fonte (valore di ritorno, stdout, file, ecc.).
Esempi
Tutti gli esempi hanno il punto finale definito esplicitamente e sono indicati come coppie x, y. Per inciso, dovresti essere anche in grado di inserire direttamente questi esempi in qualsiasi codice assumendo punti finali definiti in modo implicito e gli output dovrebbero essere gli stessi.
1. Test di base
1,0
1,1
-1,1
-1,-1
1,-1
1,0
Produzione
1
2. Test del punto ripetuto
1,0
1,0
1,1
1,1
-1,1
-1,1
-1,-1
-1,-1
1,-1
1,-1
1,0
Produzione
1
3. Test in senso orario
1,0
1,-1
-1,-1
-1,1
1,1
1,0
Produzione
-1
4. Test esterno
1,0
1,1
2,1
1,0
Produzione
0
5. Avvolgimento misto
1,0
1,1
-1,1
-1,-1
1,-1
1,0
1,-1
-1,-1
-1,1
1,1
1,0
1,1
-1,1
-1,-1
1,-1
1,0
1,1
-1,1
-1,-1
1,-1
1,0
Produzione
2
punteggio
Questo è il codice golf; vince il codice più breve. Si applicano scappatoie standard. È possibile utilizzare qualsiasi funzione incorporata purché non sia stata progettata specificamente per calcolare il numero di avvolgimento.

"1-i"o"1-1i"?)