From XKCD Wiki
Jump to: navigation, search


Nemo.jpg a denizen.


re: #xkcd-signal, and User:Joannac's table of idle times, here is a script.


# 21600 seconds within a 6 hour block. This start param effectively sets how many seconds into the 6 hour block we start our first ban :)
[[ -n $1 ]] && rounds=$1 || rounds=15
[[ -n $2 ]] && totaltime=$2 || totaltime=0

printf %5s "Ban #" 
printf %20s "Ban time" 
printf %20s "Total time"
printf %10s "Halved?"
printf "%20s\n" "Next Ban time" 

for i in $(seq 1 $rounds) ; do
    totaltime=$(($totaltime + $bantime))
    nextbantime=$(($bantime * 4))

    for check in $(seq $(($lasttothours+1)) $(($totaltime/3600))) ; do
        [[ $check%6 -eq 0 ]] && nextbantime=$(($nextbantime/2)) && trip=".$trip" 

    printf %5s $i
    printf ""%11dh:%2.2dm:%2.2ds"" $(($bantime/3600)) $(($bantime%3600/60)) $(($bantime%60))
    printf ""%11dh:%2.2dm:%2.2ds"" $(($totaltime/3600)) $(($totaltime%3600/60)) $(($totaltime%60))
    printf %10s $trip
    printf ""%11dh:%2.2dm:%2.2ds"\n" $(($nextbantime/3600)) $(($nextbantime%3600/60)) $(($nextbantime%60))


Takes up to two arguments, but needs neither.

The mathematics here assume that there is zero time between the end of one ban, and the beginning of another. This is not actually possible within the real world.

Default output:

Ban #            Ban time          Total time   Halved?       Next Ban time
    1          0h:00m:04s          0h:00m:04s                    0h:00m:16s
    2          0h:00m:16s          0h:00m:20s                    0h:01m:04s
    3          0h:01m:04s          0h:01m:24s                    0h:04m:16s
    4          0h:04m:16s          0h:05m:40s                    0h:17m:04s
    5          0h:17m:04s          0h:22m:44s                    1h:08m:16s
    6          1h:08m:16s          1h:31m:00s                    4h:33m:04s
    7          4h:33m:04s          6h:04m:04s         .          9h:06m:08s
    8          9h:06m:08s         15h:10m:12s         .         18h:12m:16s
    9         18h:12m:16s         33h:22m:28s       ...          9h:06m:08s
   10          9h:06m:08s         42h:28m:36s        ..          9h:06m:08s
   11          9h:06m:08s         51h:34m:44s         .         18h:12m:16s
   12         18h:12m:16s         69h:47m:00s       ...          9h:06m:08s
   13          9h:06m:08s         78h:53m:08s        ..          9h:06m:08s
   14          9h:06m:08s         87h:59m:16s         .         18h:12m:16s
   15         18h:12m:16s        106h:11m:32s       ...          9h:06m:08s

note that the pattern is more complex than that shown here, as 4h:33m:4s also appears repeatedly in time. (round 7 as shown, then again round 53, then 65, 75, 86... every 11th round till 174, then none till 320, when it occurs every 11 rounds again till 430...

(in fact, in 1000 rounds, the 9hour idle occurs 610 times. the 18hour idle occurs 339 times, and the 4hour idle occurs 46 times... )


vworp. vworp!