--- loncom/homework/default_homework.lcpm 2018/09/12 22:00:31 1.175 +++ loncom/homework/default_homework.lcpm 2019/04/03 21:37:11 1.176 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # used by lonxml::xmlparse() as input variable $safeinit to Apache::run::run() # -# $Id: default_homework.lcpm,v 1.175 2018/09/12 22:00:31 raeburn Exp $ +# $Id: default_homework.lcpm,v 1.176 2019/04/03 21:37:11 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -656,16 +656,29 @@ sub hinton { sub random { my ($start,$end,$step)=@_; if ( ! $hidden::RANDOMINIT ) { - if ($external::randomseed == 0) { $external::randomseed=1; } - if ($external::randomseed =~/,/) { - my ($num1,$num2)=split(/,/,$external::randomseed); - &random_set_seed(1,abs($num1)); - } elsif ($external::randomseed =~/:/) { - my ($num1,$num2)=split(/:/,$external::randomseed); - &random_set_seed(abs($num1),abs($num2)); - } else { - &random_set_seed(1,int(abs($external::randomseed))); - } + if ($external::randomseed == 0) { $external::randomseed=1; } + if ($external::randomseed =~/,/) { + my ($num1,$num2) = map { abs($_); } split(/,/,$external::randomseed); + if ((!$num1) || ($num1 > 2147483398)) { + &random_set_seed_from_phrase($external::randomseed); + } else { + &random_set_seed(1,$num1); + } + } elsif ($external::randomseed =~/:/) { + my ($num1,$num2) = map { abs($_); } split(/:/,$external::randomseed); + if ((!$num1) || (!$num2) || ($num1 > 2147483562) || ($num2 > 2147483398)) { + &random_set_seed_from_phrase($external::randomseed); + } else { + &random_set_seed($num1,$num2); + } + } else { + my $num1 = int(abs($external::randomseed)); + if ((!$num1) || ($num1 > 2147483398)) { + &random_set_seed_from_phrase($external::randomseed); + } else { + &random_set_seed(1,$num1); + } + } &math_random_uniform(); $hidden::RANDOMINIT=1; }