QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1013|回复: 4

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

[复制链接]
发表于 2005-8-12 21:05:34 | 显示全部楼层 |阅读模式
谁能帮我写一个产生算术题的脚本?

由0到9的10个数字中随机取两个数字,在随机从加、减、乘、除中取一个符号组成一个算术题,如1X2、4+3、6/3等这样的题目,每运行一次产生100个这样的题目,并把100个这样的题目送入到一个文件中,文件中的每个题目单独一行。
 楼主| 发表于 2005-8-13 11:27:52 | 显示全部楼层
难道没有人会吗?
回复

使用道具 举报

发表于 2005-8-13 12:01:03 | 显示全部楼层
主要就是如何生成指定位数的随机数,这可以参看2002的夏天的教本
回复

使用道具 举报

发表于 2005-8-14 09:17:49 | 显示全部楼层
[quote:5c6d463a40="demonlj"]主要就是如何生成指定位数的随机数.....[/quote]
方法1:不足位添0
方法2:不足位递归添随机数
方法3:...
方法4:...

方法1 函数代码如下(korn shell):[code:1]
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
}[/code:1]
回复

使用道具 举报

发表于 2005-8-14 09:46:17 | 显示全部楼层
略显复杂,可以用筛选的办法
[code:1]#!/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[/code:1]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-7-8 11:25 , Processed in 0.107338 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表