My explicit, looping version: NB. y is number of people and dollars
NB. x is iteration count hist =: <: @ (#/.~) @ (i.@#@[ , I.) NB. Histogram iter =: 4 :0 nx =: y$y NB. initialize money while. x>0 do. sg =: +/nx>0 NB. How many still giving? nx =: nx-nx~:0 NB. Those that have, give nx =: nx+(i.y) hist ?sg$y NB. distribute dollars x =. x-1 end. ) ts =: 6!:2 , 7!:2@] 1e2 ts '1e4 iter 20' 0.0262932 4224 1e2 ts '1e4 iter 200' 0.0915201 20352 10 ts '1e4 iter 100' 0.0528825 9344 Skip Cave Cave Consulting LLC ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm