version 1.260, 2018/09/14 02:51:39
|
version 1.263, 2021/10/05 02:41:32
|
Line 401 sub setup_capa_response {
|
Line 401 sub setup_capa_response {
|
if (ref($response)) { |
if (ref($response)) { |
$$args_ref{'response'}=dclone($response); |
$$args_ref{'response'}=dclone($response); |
} else { |
} else { |
$$args_ref{'response'}=dclone([$response]); |
$$args_ref{'response'}=dclone(["$response"]); |
} |
} |
} |
} |
|
|
Line 1065 sub make_numerical_bubbles {
|
Line 1065 sub make_numerical_bubbles {
|
&Math::Random::random_uniform_integer(1,1,10); |
&Math::Random::random_uniform_integer(1,1,10); |
} |
} |
for ($ind=0;$ind<$number_of_bubbles;$ind++) { |
for ($ind=0;$ind<$number_of_bubbles;$ind++) { |
$bubble_values[$ind] = $answerfactor*($factor**($power-$powers[$#powers-$ind])); |
my $exponent = $power-$powers[$#powers-$ind]; |
|
$bubble_values[$ind] = $answerfactor*($factor**$exponent); |
|
|
|
# If bubble is for correct answer (i.e., exponent = 0), and value |
|
# of $answerfactor * factor**$exponent is an integer with more than |
|
# 15 digits, assign $answerfactor itself as bubble value. |
|
# This prevents a "use fewer digits" issue on 64bit servers |
|
# when correct answer is >= 1e+16, and when correct bubble is A. |
|
|
|
if ($exponent == 0) { |
|
if ($bubble_values[$ind] =~ /^-?(\d+)$/) { |
|
if (length($1) > 15) { |
|
$bubble_values[$ind] = $answerfactor; |
|
} |
|
} |
|
} |
|
|
$bubble_display[$ind] = &format_number($bubble_values[$ind], |
$bubble_display[$ind] = &format_number($bubble_values[$ind], |
$format,$target,$safeeval); |
$format,$target,$safeeval); |
} |
} |