当前位置:  开发笔记 > 编程语言 > 正文

在最少的代码中创建,排序和打印100个随机整数的列表

如何解决《在最少的代码中创建,排序和打印100个随机整数的列表》经验,为你挑选了11个好方法。

您可以编写的最少量的代码来创建,排序(升序)和打印100个随机正整数的列表?至少代码量我的意思是整个源文件中包含的字符,所以要缩小.

我有兴趣使用任何和所有编程语言来查看答案.让我们尝试为每种语言保留一个答案,编辑前一个以纠正或简化.如果你不能编辑,评论?



1> Jimmy..:

J中有10个字符:

/:~100?9e9

说明:

/:~ 对数组进行排序(从技术上讲,将列表排序的排列向量应用于自身)

x ? limit 返回小于限制的x个随机数

9e9(9000000000)是一个合理的上限,可用3个字符表示.!9(9阶乘)较小,但需要少一个字符.



2> clawr..:

PHP中的xkcd样式:

for($i=0;$i<100;$i++) echo "4\n";



3> adl..:

Linux,命令行:

% od -dAn -N40 /dev/random | tr ' ' '\n' | sort -nu
4959
6754
8133
10985
11121
14413
17335
20754
21317
30008
30381
33494
34935
41210
41417
43054
48254
51279
54055
55306



4> Paul Tomblin..:

我的条目:

echo enter a bunch of ints, hit control-D when done
cat - | sort -n

或者,在评论中每个亚当:

echo enter a bunch of ints, hit control-D when done
sort -n


你甚至不需要"cat - "部分:只需从stdin读取排序!

5> mackenir..:
C#
using System;
using System.Linq;
class A {
    static void Main() {
        var r=new Random();
        new A[100].Select(i=>r.Next()).OrderBy(i=>i).ToList().ForEach(Console.WriteLine);
    }
}

编辑:完成程序.假设可以删除换行符和空格,但为了清楚起见,请保留:)

编辑:做得更短......我敢于有人改进这个......我已经试了一个小时.

编辑:我认为这有点短.

编辑:我认为这更短.呃,让我停下来.

编辑:再多一行,少一个字符.值得商榷...


说明

A[100] - 任何旧东西的数组 - 在这种情况下是A(它是一个很好的短名称).内容完全被忽略,它是数组的大小.

.Select(i=>r.Next()) - 生成可枚举的100个r.Next()值.

.OrderBy(i=>i) - 按顺序对前一个进行排序.

.ToList() - 将已排序的int枚举转换为List,因此我们可以使用ForEach.

ForEach(Console.WriteLine) - 调用Console.WriteLine 100次,传入列表中的每个整数值.



6> dreeves..:

Mathematica,28个字符

Sort@RandomInteger[2^32, 100]

这在{0,...,2 ^ 32}中给出了100个(有序的)随机整数.



7> Pål GD..:

Common Lisp,int介于0和10000之间(没有上限,但你必须选择一个).

(sort (loop repeat 100 collect (random 10000)) #'<)



8> Fernando Mar..:

APL

13个字符:

a[?a?100?9e8]



9> 小智..:

红宝石的尝试:

p [].tap{|a|100.times{a<

(少了八个字符,但需要tapRuby 1.9 的红隼)

- 为红宝石1.8:

p (0..?d).map{rand 1<<32}.sort

30个字符.(可以通过改回9e9来削减2,但有问题的评论说范围应该是MaxInt32.



10> 小智..:

F#

let r = new System.Random();;

[ for i in 0..100 -> r.Next()] |> List.sort (fun x y -> x-y);;



11> hiena..:

哈斯克尔:

import Random
import List
main=newStdGen>>=print.sort.(take 100).randomRs(0,2^32)

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有