- 论坛徽章:
- 0
|
本帖最后由 zhshb8511 于 2011-10-10 15:12 编辑
采用下面两种方式生成200个随机4位数,并存入文件中,
想知道那种实现方式比较好? 给出理由。
自己分析:第一种算法从时间复杂度上考虑,比较低效;
第二种算法比较耗内存,尤其是数组内容过大的时候
第三种是自己认为最好的
请大家帮忙分析,或不惜晒出更好的实现方式
第一种实现方式:- #!/usr/bin/perl
- #use strict;
- use warnings;
- #生成200随机数
- open(FH_200,">IN_all.txt") || die $!;
- for(my $total = 1; $total <= 200; $total++){
- my $single_4_word = 1000 * ((int rand(9)) + 1)
- + 100 * (int rand(10))
- + 10* (int rand(10))
- + (int rand(10));
- print FH_200 $single_4_word."\n";
- }
- close(FH_200);
复制代码 第二种实现方式:- #!/usr/bin/perl
- #use strict;
- use warnings;
- my @all_number = (1000..9999);
- #9000个数据,序号分别为0-8999
- #生成200随机数
- open(FH_200,">IN_all.txt") || die $!;
- for(my $total = 1; $total <= 200; $total++){
- my $hello = int rand(9000);
- print FH_200 $all_number[$hello]."\n";
- }
- close(FH_200);
复制代码 第三种实现方式:- #!/usr/bin/perl
- #use strict;
- use warnings;
- #生成200随机数
- open(FH_200,">IN_all.txt") || die $!;
- for(my $total = 1; $total <= 200; $total++){
- my $hello = (int rand(9)+1).(int rand(10)).(int rand(10)).(int rand(10));
- print FH_200 $hello."\n";
- }
- close(FH_200);
复制代码 |
|