PASCAL 利用随机函数生成一个有10个元素

来源:百度知道 编辑:UC知道 时间:2024/09/21 06:37:21
PASCAL 利用随机函数生成一个有10个元素、元素值在【-100,100】之间的整数数列,从中找出最大累加和的子序列。(随机函数random(n),产生0~n-1之间的整数)。

麻烦解释一下题目的意思,思路,和要用什么来进行编程。不用给出整个程序。谢谢额
发现自己不会编 顺便把程序编下 谢谢 悬赏分+20 3楼的程序不对

楼上分析了
我来写程序
var
a,b:array[1..10] of integer;
i:integer;
t:integer;
begin
for i:=1 to 10 do
begin
if random(2)<1 then a[i]:=-random(100)
else a[i]:=random(100)
end;
for i:=1 to 10 do
if a[i]>0 then begin t:=t+1;b[t]:=a[i];end;
for i:=1 to t-1 do
write(b[i],' ');
write(b[t]);
end.
附:分给谁都没关系啦 帮你解决就行

1.随机生成:random的意思就是随机,如random(100);指随机生成一个0~99的整数
2.连续用10个random,就生成了一个数列,这个数列包含10个数,每个数都在-100~100之间。这就是第一句话的意思。
比如以下数列就是符合要求的:
55 66 45 -55 -69 25 66 92 90 98
3.子序列,就是这个数列里,连续的几个数。
比如66 45 -55就是它的子序列,这样的子序列有很多,要你找出和最大的一个。
比如这个数列里和最大的就是:
25+66+92+90+98=371
那么我这个数列的最大累加和的子序列,即答案,就是25 66 92 90 98

思路:
for i:=1 to 10 do a[i]:=random(100); {生成这个数列}
但这样没有负数,所以你可以用0减去a[2],a[3],a[5],a[7],a[10](随便几个),这样不就有负数了吗?
然后你在找一个个子序列,看看哪个和最大,ok,输出

1.随机生成:random的意思就是随机,如random(100);指随机生成一个0~99的整数
2.连续用10个random,就生成了一个数列,这个数列