主题:考考你!看你是什么级别的!
agag4328
[专家分:10] 发布于 2007-08-30 22:06:00
请编写一个程序,利用随机函数,产生n个【0,20】之间的随机整数。统计产生的最多那几个随机整数,输出这几个随机整数和相应个数
回复列表 (共7个回复)
沙发
雨中飞燕 [专家分:18980] 发布于 2007-08-30 22:10:00
这么水的题目还说是考人??
板凳
Matodied [专家分:7560] 发布于 2007-08-31 13:51:00
飞燕:
这题对我们来说是很水,但是人家是初学者,这题对人家来说还是很难的!
CLS
RANDOMIZE TIMER
INPUT n: IF n = 0 THEN END: DIM b(20)
FOR i = 1 TO n
s = INT(RND * 21)
b(s) = b(s) + 1
NEXT i
k = b(0)
FOR i = 1 TO 20
IF b(i) > k THEN k = b(i)
NEXT i
FOR i = 0 TO 20
IF b(i) = k THEN PRINT i
NEXT i
PRINT "Total:"; k
END
3 楼
雨中飞燕 [专家分:18980] 发布于 2007-08-31 14:25:00
对于这种题目我一向视为纯作业类帖子,并且不给予解答
4 楼
雨中飞燕 [专家分:18980] 发布于 2007-08-31 14:27:00
这种在书上一翻都有的东西,干嘛不留给楼主自己翻书,还要劳烦你自己复制一份代码?
5 楼
lz27 [专家分:300] 发布于 2007-08-31 16:44:00
我把题目改一下大家试试做做:
请编写一个程序,不利用随机函数,产生n个【0,20】之间的随机整数。统计产生的最多那几个随机整数,输出这几个随机整数和相应个数
(就是叫你自己写一个随机函数:X )
6 楼
Matodied [专家分:7560] 发布于 2007-09-01 14:28:00
楼上的问题:
DECLARE FUNCTION rnd2! (t!)
CLS
INPUT n: IF n = 0 THEN END: DIM b(20)
FOR i = 1 TO n
s = rnd2(TIMER)
FOR j = 1 TO 50000: NEXT j
b(s) = b(s) + 1
NEXT i
k = b(0)
FOR i = 1 TO 20
IF b(i) > k THEN k = b(i)
NEXT i
FOR i = 0 TO 20
IF b(i) = k THEN PRINT i
NEXT i
PRINT "Total:"; k
END
FUNCTION rnd2 (t)
k = (t - INT(t)) * INT(t)
rnd2 = INT(k) MOD 21
END FUNCTION
(不过如果n太大,时间会很长)
7 楼
lz27 [专家分:300] 发布于 2007-09-02 12:51:00
楼上的强
我来回复