09/08/30 17:44:31
別スレにある下のプログラムが動かないんだけどこれだけだとだめなの?ちなみに環境はアクティブパールの最新版
use bigint;
$SEED=0;
for $sec (0..0xffff){
$SEED=$sec;
$mapSEED=&dq9_rand;&dq9_rand;$rand=&dq9_rand;
$loc1=&loc($rand,47);
$loc2=&loc($rand,131);
$loc3=&loc($rand,150);
printf "$sec秒:SEED=%04X 場所(%X,%X,%X)\n",$mapSEED,$loc1,$loc2,$loc3;
}
sub dq9_rand{
$SEED = ($SEED * 1103515245 + 12345) & 0xffffffff;
$ret =($SEED >> 0x10 & 32767);
return $ret;
}
sub loc{
$r=shift;
$upper=shift;
$diff_1=$upper; # 差分+1 = $upper-下限1+1
return ( 1 + ($r % $diff_1 ) );
}