天地 发表于 2005-8-12 21:05:34

谁能帮我写一个产生算术题的脚本?

谁能帮我写一个产生算术题的脚本?

由0到9的10个数字中随机取两个数字,在随机从加、减、乘、除中取一个符号组成一个算术题,如1X2、4+3、6/3等这样的题目,每运行一次产生100个这样的题目,并把100个这样的题目送入到一个文件中,文件中的每个题目单独一行。

天地 发表于 2005-8-13 11:27:52

难道没有人会吗?

demonlj 发表于 2005-8-13 12:01:03

主要就是如何生成指定位数的随机数,这可以参看2002的夏天的教本

BOoRFGOnZ 发表于 2005-8-14 09:17:49

主要就是如何生成指定位数的随机数.....
方法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
}

demonlj 发表于 2005-8-14 09:46:17

略显复杂,可以用筛选的办法
#!/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]
查看完整版本: 谁能帮我写一个产生算术题的脚本?