Posted to tcl by jenglish at Wed Feb 10 01:28:45 GMT 2010view pretty

proc collide {level {accum ""}} {
    global a
    if {$level} {
        incr level -1
        collide $level "aj$accum"
        collide $level "ba$accum"
    } else {
        set a($accum) 1
    }
}

collide 10
array statistics a

==> 
1024 entries in table, 1024 buckets
number of buckets with 0 entries: 1023
number of buckets with 1 entries: 0
number of buckets with 2 entries: 0
number of buckets with 3 entries: 0
number of buckets with 4 entries: 0
number of buckets with 5 entries: 0
number of buckets with 6 entries: 0
number of buckets with 7 entries: 0
number of buckets with 8 entries: 0
number of buckets with 9 entries: 0
number of buckets with 10 or more entries: 1
average search distance for entry: 512.5