Создайте, отсортируйте и распечатайте список 100 случайных ints в наименьшем количестве символов кода

21
задан 11 revs, 8 users 100% 4 May 2012 в 03:38
поделиться

63 ответа

C#:

using System;
using System.Collections.Generic;

class App
{
  static void Main()
  {
    List<int> TheList = new List<int>();
    Random r = new Random();
    for ( int i = 0; i < 10; i++ )
      TheList.Add(r.Next());
    TheList.Sort();
    foreach ( int i in TheList )
      Console.WriteLine(i);
  }
}

, Если Вы идете для необработанного счетчика символов, Вы могли бы быть в состоянии сжать это немного больше. Но в основном это - он.

Редактирование: Попытка 2:

using System;

class App
{
  static void Main()
  {
    Random r= new Random();
    for ( int i = 0, j=0; i < 100; i++ )
      Console.WriteLine(j+=r.Next(int.MaxValue/100));
  }
}
1
ответ дан 3 revs, 2 users 51% 29 November 2019 в 06:03
поделиться

Я не признал бы что как спецификацию программы, слишком неточную!:-)

версия Lua:

t=table;l={}for i=1,20 do l[#l+1]=math.random(99)end;t.sort(l)print(t.concat(l,' '))

Мог бы быть немного сокращен, также мог бы быть более умный код.

0
ответ дан PhiLho 29 November 2019 в 06:03
поделиться

Командная строка острота PHP (да, запаздывающая точка с запятой требуется...)

php -r 'while (++$i % 101) $j[] = rand(0, 99); sort($j); echo implode(" ", $j)."\n";'
0
ответ дан user42092 29 November 2019 в 06:03
поделиться

Java:

  public void randList()
  {
  final int NUM_INTS = 100;
  Random r = new Random();
  List<Integer> s = new ArrayList<Integer>();

  for(int i = 0; i < NUM_INTS; i++)
    s.add(r.nextInt());

  Collections.sort(s);

  for(Integer i : s)
    System.out.println(i);
  }

Могло быть короче, но вышеупомянутое довольно ясно и mostly-best-practices-compliant. Это генерирует предупреждения (необработанные типы) и имеет плохие имена переменной, но немного короче.

  void rl()
  {
  Random r = new Random();
  List s = new ArrayList();

  for(int i = 0; i < 100; i++)
    s.add(r.nextInt());

  for(Object i : s)
    System.out.println((Integer) i);
  }
0
ответ дан 3 revs, 2 users 72% 29 November 2019 в 06:03
поделиться

Это не шутка. Лучше, чтобы я мог сделать в данный момент.:)

JavaScript:

a=[];for(i=0;i<100;i++){b=Math.round(Math.random()*100);a[i]=b;}c=0;
while(c==0){c=1;for(j=0;j<99;j++){if(a[j]>a[j+1]){d=a[j];a[j]=a[j+1];a[j+1]=d;c=0;}}}
for(k=0;k<100;k++)document.write(a[k],"<br>")
0
ответ дан 4 revsGR1000 29 November 2019 в 06:03
поделиться

Здесь является лучшим, я могу сделать с приложением консоли Delphi 2007 Win32 (кроме удаления некоторых разрывов строки и отступов):

{$APPTYPE CONSOLE}
var a:array[0..99] of integer; i,j,k:integer;
begin
  FOR i:=0 to 99 DO a[i]:=random(maxint)+1;
  FOR i:=0 to 98 DO
    FOR j:=i+1 to 99 DO
      IF a[j]<a[i] THEN begin
        k:=a[i]; a[i]:=a[j]; a[j]:=k
      end;
  FOR i:=0 to 99 DO writeln(a[i])
end.

AFAIK, ни одна из стандартных единиц не содержит программу сортировки, таким образом, я должен был записать самый короткий, я знаю. Кроме того, так как я не звонил, Рандомизируют, это приводит к тому же результату каждый раз, когда это выполняется.

Редактирование: Я взял "положительные целые числа", чтобы означать каждое положительное (ненулевое) число в диапазоне целого типа, следовательно использование maxint (постоянная система) и "+1" гарантировать, что это не нуль.

0
ответ дан 2 revs 29 November 2019 в 06:03
поделиться

Простой C, не столь минимальный, чтобы запутываться:

#include <stdio.h>
#include <stdlib.h>
static int cmp(const void *a, const void *b)
{
    return *(const int *) a > *(const int *) b;
}
int main(void)
{
    int x[100], i;
    for(i = 0; i < 100; i++)
            x[i] = rand();
    qsort(x, 100, sizeof *x, cmp);
    for(i = 0; i < 100; i++)
            printf("%d\n", x[i]);
    return 0;
}

Это создает без предупреждений с помощью gcc 4.1.2 в Linux. В реальном коде я был бы, конечно:

  • Возврат EXIT_SUCCESS, а не 0
  • Только пишут 100 однажды и используют sizeof x для остающихся ссылок
0
ответ дан 2 revs 29 November 2019 в 06:03
поделиться

Пика

void main() {
  array a=({});
  while (sizeof(a)<100) a+=({random(1<<30)});
  sort(a);
  foreach (a, int b) write("%d\n",b);
}
0
ответ дан some 29 November 2019 в 06:03
поделиться

Erlang, 157 символов

-module (intpr).
-export ([q/0]).
q() ->
    lists:foldl(
    fun(X,A)->io:format("~p,",[X]),A end, 
    n, 
    lists:sort( 
        lists:map(fun(_)->random:uniform(100) end, lists:seq(1,100)) 
    )
    ).

Уверенный это не лучшее erlang решение, в основном это создает список от 1 до 100 (только потому, что я не сделал нашел лучший/короче способ инициализировать список), и отобразите каждый объект со случайным целым числом (< 100), тогда получающийся список отсортирован. Наконец список "свернут", используется в качестве способа пройти через все объекты и распечатать их.

0
ответ дан cheng81 29 November 2019 в 06:03
поделиться

Вы думали бы, что SQL будет способен к этому виду thing:-

SELECT * FROM
(SELECT TRUNC(dbms_random.value(1,100)) r
FROM user_objects
WHERE rownum < 101)
ORDER BY r

, Это - версия Oracle в 108 символах. Кто-то мог бы добиться большего успеха в различном варианте с помощью синтаксиса TOP 100.

Редактирование, в 82 символах:

select trunc(dbms_random.value(1,100))
from dual 
connect by level < 101
order by 1
0
ответ дан 2 revs, 2 users 70% 29 November 2019 в 06:03
поделиться

VB - 151 символ :

Не совсем столь же изящный как C# печально...

Sub Main()
    Dim r = New Random
    Enumerable.Range(1, 100) _
      .Select(Function(i) r.Next) _
      .OrderBy(Function(i) i) _
      .ToList _
      .ForEach(AddressOf Console.WriteLine)
End Sub
0
ответ дан 3 revs 29 November 2019 в 06:03
поделиться

Дельфи... в алфавитном порядке отсортировал версию

program PrintRandomSorted;

{$APPTYPE CONSOLE}
uses SysUtils,Classes;

var I:Byte;
begin
  with TStringList.Create do
  begin
    for I in [0..99] do
      Add(IntToStr(Random(MaxInt)));
    Sort; Write(Text); Free;
  end;
end.
<час>

Правильно отсортированные, использующие дженерики..

program PrintRandomSorted;
{$APPTYPE CONSOLE}
uses SysUtils, generics.collections;
var I:Byte;S:String;
begin
  with TList<Integer>.Create do
  begin
    for I in [0..99] do Add(Random(MaxInt));
    Sort;
    for I in [0..99] do WriteLn(Items[I]);
    Free;
  end;
end.
0
ответ дан 2 revs 29 November 2019 в 06:03
поделиться
#!perl

print join "\n", sort { $a <=> $b } map { int rand 0xFFFFFFFF } 1 .. 100;
1
ответ дан 2 revs, 2 users 89% 29 November 2019 в 06:03
поделиться

Заметьте, что никто не дал ответ в C или C++?

, После того как их назвали высокоуровневыми языками (по сравнению с ассемблером). Хорошо я предполагаю теперь, что они - низкий уровень.

0
ответ дан Eden 29 November 2019 в 06:03
поделиться

Я не могу отредактировать или прокомментировать, таким образом, вот Java v3 (предыдущие 2 имели отрицательные числа):

import java.util.TreeSet;

class Test {

    public static void main(String[] args) {
        Collection<Double> s = new TreeSet<Double>();
        while (s.size() < 100) s.add(Math.random());
        System.out.println(s);
    }
}
0
ответ дан 2 revs, 2 users 72%Ding 29 November 2019 в 06:03
поделиться

печатает случайные 100 случайных чисел в диапазоне [0,100] отсортированный в C++

srand((unsigned int)time(NULL)); list<int> r;
for (int i=0;i<100;i++) r.push_back((int)((100)*rand()/(float)RAND_MAX));
r.sort();
for (list<int>::iterator j=r.begin();j!=r.end();j++) cout << *j << endl;

, Если Вы не заботитесь о четности, тогда заменяют r.push_back((int)((100)*rand()/(float)RAND_MAX)) r.push_back(rand()%(101))

-

, Вот полная программа в 200 символах:

#include <algorithm>
#include <iostream>
#include <random>
using namespace std;int main(){int a[100];generate_n(a,100,tr1::mt19937());sort(a,a+100);for(int i=0;i<100;++i){cout<<a[i]<<endl;}return 0;}

нотация Массива была короче, чем какой-либо стандартный контейнер, который я мог найти. tr1::mt19937 был самый короткий генератор случайных чисел, который я мог найти. using namespace std; было короче, чем несколько экземпляров std::.

0
ответ дан 6 revs, 2 users 81% 29 November 2019 в 06:03
поделиться

Язык Common LISP (поскольку я помню его, мог бы иметь несколько деталей неправильно):

(setf a '(99 61 47))
(setf a (sort a))
(princ a)

числа, конечно, случайны; я выбрал их прямо сейчас броском костей.

(Возможно, мы могли ужесточить определение немного?)

0
ответ дан 2 revs, 2 users 86% 29 November 2019 в 06:03
поделиться

(Интерактивный) Python:

import random
[int(9*random.random())]

, Что? Это создает список одного случайного целого числа, сортирует его (тривиально) и распечатывает его.

хорошо, вот серьезный ответ

import random
sorted([int(9*random.random()) for x in range(9)])

, Он генерирует 9 случайных целых чисел в [0, 9), сортирует их и печатает их (в интерактивной оболочке).

И вот более короткий вариант, который на самом деле производит эти требуемые 100:

from random import*
sorted(randint(0,9)for x in' '*100)
1
ответ дан 3 revs, 2 users 75% 29 November 2019 в 06:03
поделиться

Командная строка Perl:

perl -e 'print $_, "\n" foreach sort map {int rand 10} (1..10)'

Печать 10 целых чисел между 0 и 9 и виды их.

0
ответ дан 29 November 2019 в 06:03
поделиться

Coldfusion:

<cfloop index="i" to="100" from="1">
    <cfset a[i] = randrange(1,10000)>
</cfloop>

<cfset ArraySort(a, "numeric")>

<cfdump var="#a#">
0
ответ дан 29 November 2019 в 06:03
поделиться

C #

var sequence = Enumerable.Range(1, 100)
                         .OrderBy(n => n * n * (new Random()).Next());

foreach (var el in sequence.OrderBy(n => n))
    Console.Out.WriteLine(el);

F #

let rnd = System.Random(System.DateTime.Now.Millisecond)

List.init 100 (fun _ -> rnd.Next(100)) 
|> List.sort 
|> List.iter (fun (x: int) -> System.Console.Out.WriteLine(x))
0
ответ дан 29 November 2019 в 06:03
поделиться

Версия Qt4 (c ++), 116 символов.

#include <QtCore>
int main(){QList<int>l;int i=101;while(--i)l<<qrand()%101;qSort(l);foreach(i,l)printf("%d\n",i);}

-> wc -c main.cpp
116 main.cpp
0
ответ дан 29 November 2019 в 06:03
поделиться

питон, 71 символ

import random
print sorted(random.randint(0,2**31)for i in range(100))
0
ответ дан 29 November 2019 в 06:03
поделиться

Пролог, 78 символов:

r([]).
r([H|T]):-random(0,1000000,H),r(T).
f(L):-length(R,100),r(R),sort(R,L).

использование в REPL:

| ?- f(X).

X = [1251,4669,8789,8911,14984,23742,56213,57037,63537,91400,92620,108276,119079,142333,147308,151550,165893,166229,168975,174102,193298,205352,209594,225097,235321,266204,272888,275878,297271,301940,303985,345550,350280,352111,361328,364440,375854,377868,385223,392425,425140,445678,450775,457946,462066,468444,479858,484924,491882,504791,513519,517089,519866,531646,539337,563568,571166,572387,584991,587890,599029,601745,607147,607666,608947,611480,657287,663024,677185,691162,699737,710479,726470,726654,734985,743713,744415,746582,751525,779632,783294,802581,802856,808715,822814,837585,840118,843627,858917,862213,875946,895935,918762,925689,949127,955871,988494,989959,996765,999664]

yes

Как сказали бы некоторые из моих учителей, это говорит само за себя: -)

1
ответ дан 29 November 2019 в 06:03
поделиться

C без выделения массива (в основном продолжает добавлять случайное целое число к последнему напечатанному значению, которое неявно сортирует):

#include <stdlib.h>

int main(int argc, char **argv) {
    int i;
    unsigned long baseline = 0;
    srand(atoi(argv[1]));
    for ( i = 0 ; i < 100 ; i++ ) {
        baseline += rand();
        printf("%ld\n", baseline);
    }

}

, который при обычном обфускации + удалении новой строки сводится к 136 символов.

ps: очевидно, запускать с $ RANDOM в командной строке.

0
ответ дан 29 November 2019 в 06:03
поделиться

Ознакомьтесь с руководством PHP по исключениям.

При возникновении исключения код после выписки не будет выполнено, и PHP попытается найти первый соответствующий блок захвата. Если исключение не обнаружено, PHP Fatal Ошибка будет выдана с ошибкой "Uncaught Исключение "..., если обработчик был определен с помощью set_exception_handler ().

http://ch.php.net/exceptions

Так что да, остальная часть функции не выполняется, вместо этого возникает фатальная ошибка.
При обнаружении исключения выполнение сценария продолжается в соответствующем блоке catch, все «между» функцией, вызывающей исключение, и блоком catch не выполняется.

-121--1841681-

Я думаю, что вам следует проверить ASP.NET модель поставщика услуг:

http://msdn.microsoft.com/en-us/library/sx3h274z.aspx

-121--4859384-

C #

var r=new Random();
var l=from i in new C[100] let n=r.Next() orderby n select n;

81 символы (включая новые строки)

0
ответ дан 29 November 2019 в 06:03
поделиться

Matlab:

arrayfun( @(x) display(x), sort( rand(1,100) ) )
0
ответ дан 29 November 2019 в 06:03
поделиться

Использование C - 152 символов

main(){int a=100,b,t,x[a];while(a--)x[a]=rand();a=100;while(b=a--)while(b--)if(x[a]>x[b]){t=x[a];x[a]=x[b];x[b]=t;}a=100;while(a--)printf("%d\n",x[a]);}

или расширенных

#include <stdio.h>
int main()
{
    int a=100,b,t,x[a];

    while(a--)x[a]=rand();
    a=100;

    while(b=a--)
        while(b--)
            if(x[a]>x[b])
            {
                t=x[a];
                x[a]=x[b];
                x[b]=t;
            }

    a=100;
    while(a--)
        printf("%d\n",x[a]);
}
0
ответ дан 29 November 2019 в 06:03
поделиться

Golfscript - 15 символов

[100.{rand}+*]$
1
ответ дан 29 November 2019 в 06:03
поделиться

Ответ Python в стиле xkcd - короче текущего!

print [4]*100

Настоящий ответ, 63 символа:

from random import*;print sorted(randrange(9e9)for i in[0]*100)
1
ответ дан 29 November 2019 в 06:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: