Se você não se incomoda em escrever um pequeno roteiro para fazer o que precisa, recomendamos fazê-lo em R , o sistema de estatísticas de código aberto.
Por exemplo, considere este one-liner para obter uma lista de 100 números distribuídos por Gaussian:
$ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)'
234.2903
-25.53289
168.0262
-28.49810
105.0687
85.97355
269.5072
...
Vamos analisar isso.
O comando padrão R
leva você a um ambiente de programação interativo, o que é bom se você está tentando descobrir como fazer algo à mão ou está criando algo incrementalmente, mas a partir de sua pergunta, parece que você só precisa de uma lista de números para enviar para outro programa. Em vez disso, usamos Rscript
, que se comporta mais como um interpretador de script Unix tradicional: você pode passar o nome de um arquivo contendo um script R ou usar o sinalizador -e
padrão para passar todo o texto do programa no comando linha.
rnorm()
é a função R para obter uma lista de números aleatórios com a distribuição "normal" ou gaussiana. Leva até três parâmetros, apenas o primeiro dos quais é necessário, quantos números você deseja. Pedimos 100. Tomando 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 é apenas mostrar 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. Eu multipliquei todos os valores gerados por 100 e adicionei 100 a eles, só porque eu posso. Como R é uma linguagem de programação completa, não há limite para as coisas que você poderia fazer com essa lista de números. Essa é a vantagem de usar um sistema desse tipo em vez de um comando de finalidade fixa como jot
.
Passamos o resultado dessa operação anterior para a função write()
, que grava os dados em um arquivo por padrão, mas sobrescrevemos isso passando uma string em branco para o segundo parâmetro, o nome do arquivo, ele escreve a tabela para o terminal. O próximo parâmetro, 1
, apenas informa que queremos nossa saída no formato de coluna única.
R tem muitas outras funções de geração de números aleatórios criadas no sistema base. Por exemplo, podemos imitar o comando jot
na resposta do lcpriani com este script:
$ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)'
Aqui estamos usando runif()
para obter 10 números aleatórios uniformemente distribuídos de 12 a 27. Como rnorm()
, que usamos acima, essa função retorna valores de ponto flutuante, então temos que round()
deles para os valores inteiros mais próximos antes de gravá-los na tela.
O R também possui um conjunto avançado de complementos no CRAN , um repositório de pacotes modelado no CPAN do Perl. Um que você pode se interessar é simplesmente chamado de aleatório , que funciona como uma interface para random.org , um serviço que retorna números aleatórios reais gerados a partir do ruído atmosférico.
R é um ambiente de programação completo, então pode ser que você não precise realmente obter seus números de R em formato de texto. Você pode resolver completamente o seu problema em R. Dê uma chance.