Code Bye

老师给的一个产生随机数的程序,看不太懂,解释下

随机数产生程序:
function random: real:
begin   Seed: =125.0*(seed+1.0)
Seed: =Seed-8192.0*trunc (seed/8192)
random: = (Seed+0.5)/8192
end;
上述随机数发生函数产生的随机数为0.0~1.0,稍另变化就可得到0~n-1之间的随机数。
程序开始时,应对变量Seed (实型)赋初值。
trunc函数是在哪个库里面?还有在转化过程中不会发生数据丢失吗?
解决方案

20

Pascal
begin 约等于 C的{
end  约等于C的}
函数返回值类型定义在后面
real 换成 float   或 double
赋值:= 对应 =
想等比较 = 对应==
/对应 浮点除法
div 对应整除
=在定义类型,常量的时候相当于 typedef ,=,
trunc 是截断取整;正数的话, 对应 c 的floor
其他自行解决吧

20

function random: real:
begin   Seed: =125.0*(seed+1.0)
Seed: =Seed-8192.0*trunc (seed/8192)
random: = (Seed+0.5)/8192
end;
float random(int seed)
{
float Seed;
Seed = 125.0 * (seed + 1.0);
Seed -= 8192.0 * (int)(seed / 8192);
return (Seed + 0.5) / 8192;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明老师给的一个产生随机数的程序,看不太懂,解释下