这个挑战是受xkcd启发的:
挑战:
您将模拟复制大文件(1 GB)。传输速率将在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例如保留输出吗?
