이 도전은 xkcd에서 영감을 얻었습니다 .
도전:
큰 파일 (1 기가 바이트) 복사를 시뮬레이션합니다. 전송 속도는 10kB / 초에서 100MB / 초 사이에서 다양합니다. 당신의 작업은 파일 전송의 남은 시간을 출력하는 것입니다. 출력은 다음과 같아야합니다.
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)
분과 시간 동안 선행 0을 표시 할 필요는 없지만 (선택 사항) 초 동안 표시해야합니다. 초만 사용하여 남은 시간을 표시하는 것은 좋지 않습니다.
파일 전송 :
- 전송 속도는 10MB / 초에서 시작됩니다.
- 1 초마다 전송률이 변경 될 확률은 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예를 들어 출력을 남길 수 있습니까?
