莺歌燕语 发表于 2012-12-8 18:52

一道编程题,大量数据优化+速度

谁能够不使用数组,集合,链表等数据结构

快速随机不重复地输出1万亿以内的....所有数


我自己想到一个感觉上比较好的答案,答案公布的时候我会修改标题重新编辑

大家有什么好思路也发表一下,交流下, 看看谁的办法更好更快捷


zchld 发表于 2012-12-8 18:56

这个是你的作业吧?

SunerC 发表于 2012-12-8 18:58

只输出整数吧=,=

1354669803 发表于 2012-12-8 19:01

做不出来吧

百事乐 发表于 2012-12-8 19:22

还是先说说楼主的看法吧

\CPU\ 发表于 2012-12-8 19:34

计次循环首(10x10^11,i)
调试输出(i)
计次循环尾()

menglv 发表于 2012-12-8 19:56

仅仅输出1万亿的数并不需要多少时间!

小明无敌 发表于 2012-12-8 19:58

{:301_991:}菜B的易语言不敢拿出手

1002217709 发表于 2012-12-8 20:19

10万不难,十万亿也太多了吧。。。

\CPU\ 发表于 2012-12-9 19:52

本帖最后由 \CPU\ 于 2012-12-9 19:58 编辑

思路:文本型寄存变量,取随机数n,输出前判断是否在寄存变量中,如果存在就返回重新取,不存在就输出n并在寄存变量里增加并且输出次数加一。如果输出次数等于十亿则调试完毕。


.版本 2

.子程序 __启动窗口_创建完毕
.局部变量 limit, 整数型
.局部变量 寄存变量, 文本型
.局部变量 n, 整数型
.局部变量 i, 整数型

置随机数种子 ()
limit = 10 × 10 ' 求次方 (10, 11)
.循环判断首 ()
n = 取随机数 (0, limit)
.如果真 (寻找文本 (寄存变量, “[” + 到文本 (n) + “]”, , 假) = -1)
输出调试文本 (n)
i = i + 1
寄存变量 = 寄存变量 + “[” + 到文本 (n) + “]”
.如果真结束

.循环判断尾 (i ≠ limit)
暂停 ()
页: [1] 2
查看完整版本: 一道编程题,大量数据优化+速度