Il software di modellazione 3D utilizza principalmente la mappatura UV per mappare le trame su un oggetto 3D. I valori validi per U e V si trovano generalmente in un [0..1]intervallo inclusivo .
Sfida
Hai acquistato un nuovo software di modellazione 3D che è semplicissimo da usare. Tuttavia, esiste un problema: aggiunge o sottrae un numero intero casuale dai valori UV. Il tuo compito è creare un programma o una funzione che modifichi un valore di input per ottenere un valore float in un [0..1]intervallo inclusivo .
Il galleggiante risultante dovrebbe avere la stessa parte frazionaria dell'originale ed essere il più vicino possibile all'originale. Poiché entrambi 0e si 1trovano nell'intervallo di output, qualsiasi numero intero 0 o inferiore dovrebbe cambiare in 0 e qualsiasi numero intero 1 o maggiore dovrebbe cambiare in 1.
Un algoritmo di esempio in JavaScript:
function modFloat(input) {
while (input < 0 || input > 1) {
if (input < 0) input += 1;
if (input > 1) input -= 1;
}
return input;
}
Regole
- L'input è un singolo numero intero o float. È consentito qualsiasi formato ragionevole purché sia specificato nella risposta.
- L'output dovrebbe essere una rappresentazione decimale di un valore float.
- La precisione dell'output deve essere almeno delle stesse cifre decimali dell'input.
- Sono consentiti zeri finali.
- Assicurati che il tuo codice scelga correttamente quale di 0 o 1 emettere per input interi.
Casi test
Input | Output
------------+---------
-4 | 0
-1 | 0
0 | 0
1 | 1
2 | 1
1.0001 | 0.000100
678.123456 | 0.123456
-678.123456 | 0.876544
4.5 | 0.5
Questo è code-golf , quindi vince il codice più corto in byte!
any reasonable input format is allowed, quindi direi "Perché no?".