Questa sfida è ispirata a xkcd :
Sfida:
Simulerai la copia di un file di grandi dimensioni (1 Gigabyte). La velocità di trasferimento varierà tra 10 kB / secondo a 100 MB / secondo. Il tuo compito è di generare il tempo rimanente del trasferimento di file. L'output dovrebbe apparire come:
Time remaining: 03:12 (meaning it's 3 minutes and 12 seconds left)
Time remaining: 123:12 (meaning it's 2 hours, 3 minutes and 12 seconds left)
Time remaining: 02:03:12 (optional output, meaning the same as above)
Gli zeri iniziali non devono essere visualizzati per minuti e ore (facoltativo), ma devono essere visualizzati per secondi. Mostrare il tempo rimanente usando solo i secondi non è OK.
Il trasferimento di file:
- La velocità di trasferimento inizierà a 10 MB / secondo.
- Ogni secondo, ci sarà una probabilità del 30% che la velocità di trasferimento cambierà
- La nuova velocità di trasferimento deve essere selezionata in modo casuale (distribuzione uniforme) nell'intervallo
[10 kB/s, 100 MB/s], con incrementi di 10 kB / s.
Nota: non è necessario copiare effettivamente un file.
Puoi scegliere di usare:, 1 GB = 1000 MB, 1 MB = 1000 kB, 1 kB = 1000 Bo 1 GB = 1024 MB, 1 MB = 1024 kB, 1 kB = 1024 B.
Produzione:
- Inizi a
01:40, no01:39. - Si visualizza il tempo dopo la modifica della velocità di trasferimento, ma prima che qualcosa venga trasferito a tale velocità
- I secondi dovrebbero essere visualizzati come numeri interi, non decimali. È facoltativo arrotondare per eccesso / per difetto / il più vicino.
- Dovresti cancellare lo schermo ogni secondo, a meno che non sia impossibile nella tua lingua.
- L'output dovrebbe essere costante: al
Time remaining: 00:00termine del trasferimento dei file.
Esempio:
Ho arrotondato tutti i secondi decimali. Supponiamo che le linee sottostanti vengano visualizzate con un secondo in mezzo e che lo schermo venga cancellato tra ognuna:
Time remaining: 01:40 (Transfer rate: 10 MB/s)
Time remaining: 01:39 1 GB - 10 MB
Time remaining: 01:38 1 GB - 2*10 MB
Time remaining: 01:37 1 GB - 3*10 MB
Time remaining: 01:28:54 1 GB - 4*10 MB (TR: 180 kB/s)
Time remaining: 01:28:53 1 GB - 4*10 MB - 180 kB
Time remaining: 01:28:52 1 GB - 4*10 MB - 2*180 kB
Time remaining: 00:13 1 GB - 4*10 MB - 3*180 kB (TR: 75 MB/s)
Time remaining: 00:12 1 GB - 4*10 MB - 3*180 kB - 75 MB
Time remaining: 00:11 1 GB - 4*10 MB - 3*180 kB - 2*75 MB
Time remaining: 00:10 1 GB - 4*10 MB - 3*180 kB - 3*75 MB
Time remaining: 00:09 1 GB - 4*10 MB - 3*180 kB - 4*75 MB
Time remaining: 00:08 1 GB - 4*10 MB - 3*180 kB - 5*75 MB
Time remaining: 14:09:06 1 GB - 4*10 MB - 3*180 kB - 6*75 MB (TR: 10 kB/s)
Time remaining: 14:09:05 1 GB - 4*10 MB - 3*180 kB - 6*75 MB - 10 kB
Time remaining: 00:06 1 GB - 4*10 MB - 3*180 kB - 6*75 MB - 20 kB (TR: 88.110 MB/s)
Time remaining: 00:05
Time remaining: 00:04
Time remaining: 00:03
Time remaining: 00:02
Time remaining: 00:01
Time remaining: 00:00 <- Transfer is finished. Display this.
1:40(o 1:42) non 1:39(o 1:41)"?
1024versione, quali sono le dimensioni dei passi che dovremmo usare?
00:00:10ad esempio?
