谁能帮我写一个产生算术题的脚本?
谁能帮我写一个产生算术题的脚本?由0到9的10个数字中随机取两个数字,在随机从加、减、乘、除中取一个符号组成一个算术题,如1X2、4+3、6/3等这样的题目,每运行一次产生100个这样的题目,并把100个这样的题目送入到一个文件中,文件中的每个题目单独一行。 难道没有人会吗? 主要就是如何生成指定位数的随机数,这可以参看2002的夏天的教本 主要就是如何生成指定位数的随机数.....
方法1:不足位添0
方法2:不足位递归添随机数
方法3:...
方法4:...
方法1 函数代码如下(korn shell):
function in_range_fixed_length_random_number
{
#create a pseudo-random number less than or equal
#to the $UPPER_LIMIT value ,which is user defined.
#this function will also pad the output with leading
#zeros to keep the number of digits consistent.
RANDOM_NUMBER=$(($RANDOM % $UPPER_LIMIT + 1))
#find the length of each character string
RN_LENGTH=$(echo ${#RANDOM_NUMBER})
UL_LENGTH=$(echo ${#UPPER_LIMIT})
#calculate the difference in string length
(( LENGTH_DIFF = UL_LENGTH -RN_LENGTH))
#pad the $RANDOM_NUMBER value with leading zeros
#to keep the number of digits consistent.
case $LENGTH_DIFF in
0) echo "$RANDOM_NUMBER"
;;
1)echo "$RANDOM_NUMBER0"
;;
2)echo "$RANDOM_NUMBER00"
;;
3)echo "$RANDOM_NUMBER000"
;;
4)echo "$RANDOM_NUMBER0000"
;;
5)echo "$RANDOM_NUMBER00000"
;;
*)echo "$RANDOM_NUMBER"
;;
esac
} 略显复杂,可以用筛选的办法
#!/bin/bash
#MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@#$%^&*()_+="
MATRIX="0123456789"
LENGTH="1"
while [ "${n:=1}" -le "$LENGTH" ]
do
PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
echo "$PASS"
exit 0
页:
[1]