主题:randomize 怎么用的?
hqy332832593
[专家分:0] 发布于 2008-07-31 19:46:00
麻烦大家帮我解释一下``
回复列表 (共12个回复)
沙发
hqy332832593 [专家分:0] 发布于 2008-07-31 19:50:00
顺便问一下如何用一个集合中的元素有两(多)种数据类型。
板凳
Mato完整版 [专家分:1270] 发布于 2008-07-31 19:55:00
RANDOMIZE语句是来控制程序中的RANDOM函数的,它可以防止RANDOM函数每次运行都返回相同的值。
3 楼
Mato完整版 [专家分:1270] 发布于 2008-07-31 19:57:00
一个集合里是不能有不同的数据类型的。
4 楼
hqy332832593 [专家分:0] 发布于 2008-07-31 19:57:00
还是不大懂
可以把randomize 和random 的用法全部讲一下吗?
这个语法以前没没看到过``
5 楼
小田甜 [专家分:3910] 发布于 2008-08-01 16:16:00
random是获得随机数
Declaration:(声明)
function Random [ ( Range: Word) ]: < Same type as parameter(参数) >;
Return Value:(返回数值)
A Word random(随机) number within the range(范围) 0 <= X < Range.
返回0<=x<=range的word类型随机数.
If Range is not specified, the result is a Real-type random number within
the range 0 <= X < 1.
如果range没有给出,那么返回的是real类型随机数字,范围0<=x<1
Randomize;
Initializes(初始化) the built-in(内置的) random number generator(随机数发生器) with a random value
初始化内置随机数发生器
简单一点说:
randomize是给random初始化用的,random返回0<=x<1的实数,或random(3)返回0,1,2中的任意一个(随机).
6 楼
xuyifan [专家分:40] 发布于 2008-08-02 09:48:00
random是获得随机数
random(100),0-100的随机数
randomize,写在random前面,运行多次随机数保证不同!
一个集合用两种类型MS不可以,可以用两个集合!
7 楼
小田甜 [专家分:3910] 发布于 2008-08-02 11:40:00
一个集合不可以有两种以上类型,
请问你要怎么使用?
谢谢
8 楼
mxalbert1996 [专家分:780] 发布于 2008-08-02 20:13:00
随机数是指理论上没有规律可循、在指定范围内每个数的出现几率相等、无法根据之前的数来预测下一个数的数列。一般随机数生成器的基本原理是:首先初始化一个随机种子,其初始值可以是任意的整数;在每次获取随机数时,以随机种子为基础进行某种特殊的运算,获得一个随机数并返回之,然后再对随机种子进行某种运算,改变随机种子的值。这样,就可以生成许多比较随机的数,但同一个初始值的随机种子将会生成完全相同的随机数列。
Pascal的System单元提供了两个与随机数有关的子程序:Randomize和Random。Randomize过程用于初始化随机种子,其初始值取决于当前的系统时钟。Random函数用于获取随机数,它有两种调用形式:Random,返回一个0到1之间(不包括1)的随机实数;Random(N),返回0至N之间(不包括N)的随机整数,N为Word类型整数。另外,System单元中随机种子变量的标识符为RandSeed,你也可以手动修改它。
随机数在信息学奥林匹克中可用于随机化搜索、穷举等算法,以优化其性能,也可用于在快速排序中选择关键数,以使其快速排序算法的最坏情况没有固定的相应数列。如果你希望使用了随机数的程序对同一个输入数据能有恒定的输出结果,可以设置RandSeed为一个定值。
9 楼
hqy332832593 [专家分:0] 发布于 2008-08-03 04:30:00
那个我好像问错了`
我是想问一个数组可以有多种类型不?
主要是才做过一道题,要输出数据和相对应的名称(列如要输出一个学生的名字和分数)
用指针可以做,但我想问一下可以用数组做不?
10 楼
mxalbert1996 [专家分:780] 发布于 2008-08-03 08:02:00
可以的。
这样:
type
stu=record
n:string;
s:integer;
end;
var
a:array[1..10] of stu;
其中a[x].n就是学生的名字,
a[x].s就是学生的分数。
我来回复