sub x{ my( $i, $r, $d, $o ) = @_; return $i / $d**$o; } print x( 100, 0, $_, 0.5 ) for map 2**$_, 4..13;; 25 17.6776695296637 12.5 8.83883476483184 6.25 4.41941738241592 3.125 2.20970869120796 1.5625 1.10485434560398 print x( 100, 1000, $_, 0.5 ) for map 2**$_, 4..13;; 25 17.6776695296637 12.5 8.83883476483184 6.25 4.41941738241592 3.125 2.20970869120796 1.5625 1.10485434560398