Se você não se importa em escrever um script pequeno para fazer o que precisa, recomendo fazê-lo no R , o sistema de estatísticas de código aberto.
Por exemplo, considere esta linha para obter uma lista de 100 números distribuídos gaussianos:
$ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)'
234.2903
-25.53289
168.0262
-28.49810
105.0687
85.97355
269.5072
...
Vamos quebrar isso.
O Rcomando padrão leva você a um ambiente de programação interativo, o que é bom se você estiver tentando descobrir como fazer algo manualmente ou criando algo incrementalmente, mas a partir da sua pergunta, parece que você só precisa de uma lista de números para enviar para outro programa. Então, em vez disso, usamos o Rscriptque se comporta mais como um interpretador de script tradicional do Unix: você pode passar o nome de um arquivo contendo um script R ou usar o -esinalizador padrão para passar todo o texto do programa na linha de comando.
rnorm()é a função R para obter uma lista de números aleatórios com a distribuição "normal" ou gaussiana. São necessários até três parâmetros, apenas o primeiro, quantos números você deseja. Pedimos 100. Ao aceitar os padrões dos outros dois parâmetros opcionais, obtemos uma média de 0 e um desvio padrão de 1.
A aritmética depois disso está apenas mostrando um recurso interessante da linguagem R: você pode fazer aritmética em tabelas de dados inteiras, matrizes, etc., tão facilmente quanto um valor escalar em uma linguagem mais típica. Multipliquei todos os valores gerados por 100 e adicionei 100 a eles, apenas porque posso. Como R é uma linguagem de programação completa, não há limite para o que você poderia fazer com esta lista de números. Essa é a vantagem de usar esse sistema em vez de um comando de finalidade fixa, como jot.
Passamos o resultado dessa operação anterior para a write()função, que grava os dados em um arquivo por padrão, mas substituímos isso ao passar uma string em branco para o segundo parâmetro, o nome do arquivo, para que ele grave a tabela em o terminal. O próximo parâmetro, 1diz apenas que queremos nossa saída no formato de coluna única.
R tem muitas outras funções de geração de número aleatório incorporadas ao sistema base. Por exemplo, podemos imitar o jotcomando na resposta de lcpriani com este script:
$ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)'
Aqui estamos usando runif()para obter 10 números aleatórios distribuídos uniformemente de 12 a 27. Assim rnorm()como usamos acima, essa função retorna valores de ponto flutuante; portanto, precisamos round()deles com seus valores inteiros mais próximos antes de gravá-los na tela.
O R também possui um rico conjunto de complementos no CRAN , um repositório de pacotes modelado no CPAN do Perl. Uma pessoa em que você pode se interessar é simplesmente chamada aleatória , que funciona como uma interface para o random.org , um serviço que retorna números aleatórios verdadeiros gerados a partir do ruído atmosférico.
R é um ambiente de programação completo, portanto, pode ser que você não precise realmente tirar R de números em formato de texto. Você pode resolver seu problema inteiramente em R. Experimente.