############################################################ ## Mathematical Functions Script ## ## Version: 1.0 ## ## By: manish ## ## irc.lunarirc.net #LunarIRC Talk with me : User - manish ## COMMAND - !math or /math ## ############################################################ alias math { var %numbers = $sorttok($1-,32,n) set %x 1 set %sum 0 set %maxfreq 1 set %curfreq 1 set %mode $gettok(%numbers, 1, 32) %total_numbers = $numtok(%numbers,32) %half = %total_numbers / 2 if ( $int( %half ) == %half ) { set %n even } else { set %n odd } while ( %x <= %total_numbers ) { %current_number = $gettok(%numbers, %x, 32) %sum = %sum + %current_number if ( %x >= 2 ) { %y = %x - 1 if ( $gettok(%numbers, %y, 32) == $gettok(%numbers, %x, 32) ) { inc %curfreq } else { set %curfreq 1 } if ( %curfreq > %maxfreq ) { set %maxfreq %curfreq set %mode $gettok(%numbers, %x, 32) } } inc %x } if ( %n == even ) { %p = %half + 1 set %p1 $gettok(%numbers, %half, 32) + $gettok(%numbers, %p, 32) set %median %p1 / 2 } if ( %n == odd ) { %p = %total_numbers + 1 %q = %p / 2 set %median $gettok(%numbers, %q, 32) } set %mean %sum / %total_numbers if ($isid) { if ($prop == mean) { return %mean } if ($prop == median) { return %median } if ($prop == mode) { return %mode } } elseif (!$isid) { notice $nick Mean : %mean - Median : %median - Mode : %mode - } } on *:TEXT:!math*:#: { if ( $2 isnum ) { msg $chan Mean : $math( $2- ).mean - . Median : $math( $2- ).median - . Mode : $math( $2- ).mode - }}