この挑戦はxkcdに触発されました:
チャレンジ:
大きなファイル(1ギガバイト)のコピーをシミュレートします。転送速度は、10 kB /秒から100 MB /秒の間で変化します。あなたの仕事は、ファイル転送の残り時間を出力することです。出力は次のようになります。
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)
先行ゼロは、分と時間(オプション)で表示する必要はありませんが、秒で表示する必要があります。秒のみを使用して残り時間を表示することはできません。
ファイル転送:
- 転送速度は10 MB /秒から始まります。
- 毎秒、転送レートが変更される可能性が30%あります
- 新しい転送速度は、範囲
[10 kB/s, 100 MB/s]
10 kB / sでランダムに(均一な分布で)選択する必要があります。
注:実際にファイルをコピーする必要はありません。
使用することを選択できます:1 GB = 1000 MB, 1 MB = 1000 kB, 1 kB = 1000 B
、または1 GB = 1024 MB, 1 MB = 1024 kB, 1 kB = 1024 B
。
出力:
01:40
ではなく、で始まり01:39
ます。- 転送レートが変更された後、そのレートで何かが転送されるまでの時間を表示します
- 秒は、小数ではなく整数として表示する必要があります。切り上げ/切り捨て/最近接のオプションです。
- あなたの言語で不可能でない限り、画面を毎秒クリアする必要があります。
- 出力は一定である必要が
Time remaining: 00:00
あります:ファイル転送が終了したとき。
例:
小数秒をすべて切り上げました。以下の行が1秒の間隔で表示され、各行の間で画面がクリアされると仮定します。
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
(または1:42
)ではなく1:39
(または1:41
)から始める」べきでしょうか?
1024
バージョンを使用している場合、使用するステップサイズはどのくらいですか?
00:00:10
たとえば出力を残すことができますか?