루비로 다양한 확률 분포의 무작위 수를 생성하여 직사각형을 그려보았다
개시하다
다양한 확률 분포에 따라 랜덤수를 만들면 누구나 직사각형을 그리고 싶은 날이 있다.
괜찮습니다.언제나 세계의 뛰어난 프로그래머들은 우리를 위해 놀라운 프로그램 라이브러리를 만들어 준다.유명하지 않은 도서관이라도 잘 쓰게 되면 마법 같은 것도 쉽게 완성된다.
이 글은 두 개의 훌륭한 루비 라이브러리를 소개했다.Numo::GSL 및 Flammarion.이를 사용하면 무작위 수를 간단하게 생성하고 직사각형을 그릴 수 있다.
준비 편
설치가 좀 번거로우니 건너뛰고 마지막에 다시 돌아와 보십시오.
Numo: GSL 및 Flumian 설치
Numo: GSL 설치
Numo::GSL는 GNU Scientific Library(GSL)의 바인딩입니다.루비계에는 GSL과의 바인딩이 많지만 나리의 활용을 고려해 이걸 사용했습니다.
2019/5 현재 Numo: GSL은 GSL2입니다.4 이후 대응이 없다.따라서 많은 환경에서 원본 코드에서 GSL2까지.설치해야 합니다.따라서 시간이 좀 걸리겠지만 그만큼 가치가 있다.다음 느낌대로 명령을 내리면 됩니다.공식 홈페이지다운로드 페이지부터 gsl-2.3.tar.gz를 다운로드합니다.
내 생각엔.. 하지만 우분투sudo apt install libgsl23
에서도 하기만 하면 되는 일이 있는 것 같아.wget http://ftp.jaist.ac.jp/pub/GNU/gsl/gsl-2.3.tar.gz
tar -zxvf gsl-2.3.tar.gz
cd gsl-2.3
./configure
make -j4 # CPUコア数を指定
# checkinstallを使う場合
sudo checkinstall
# インストール場所を自分で指定する場合
# make DESTDIR=/path/you/want/to/install/ install
# Githubからnumo-gslを取得
git clone https://github.com/ruby-numo/numo-gsl
cd numo-gsl
rake build
gem install pkg/numo-gsl-0.1.2.gem # -- --with-gsl-lib=usr/local/lib
# GSLのインストール場所を自分で指定する場合
# gem install pkg/numo-gsl-0.1.2.gem -- --with-gsl-lib=/path/you/want/to/install/usr/local/lib
Flamarion 설치
루비로 차트를 표시하는 방법에는 여러 가지가 있다.
하지만!여기서 일부러 아무도 모르는 작은 방법인 Flamarion을 사용하여 ploty를 사용한다.Flamarion은 Chrome과 electron의 GUI 도구 세트에 재미있는 기능이 많이 들어 있는 가장 좋은 도구입니다.Plattly를 통한 차트 표시 기능도 그 중 하나입니다.Flamarion에 관해서는 다른 기회를 이용해서 신청서를 쓰고 싶습니다.Flamarion의 개발은 계속되고 있지만 업데이트가 조금 지연됩니다.저만 그런 사람이라고 생각해요. 미용을 하는 게 좋을 것 같아요.
https://github.com/zach-capalbo/flammarion gem install flammarion
가동irb
또는 pry
, Flamation과 Numo:GSL을 준비합니다.require 'flammarion'
require 'numo/gsl'
f = Flammarion::Engraving.new
r = Numo::GSL::Rng::Rand.new
여기서부터는 간단해.
이원 분포
a = r.binomial(0.5, 100, 10000).to_a
f.plot(x: a, type: "histogram")
파송 분포
a = r.poisson(3, 10000).to_a
f.plot(x: a, type: "histogram")
베누리 분포
a = r.bernoulli(0.3,10000).to_a
f.plot(x: a, type: "histogram",
autobinx: false, xbins: {start:0, end:1.1, size: 0.1})
지수 분포
a = r.exponential(2,10000).to_a
f.plot(x: a, type: "histogram")
감마 분포
a = r.gamma(5,1,10000).to_a
f.plot(x: a, type: "histogram")
베타 분포
a = r.beta(0.5,0.5,10000).to_a
f.plot(x: a, type: "histogram")
정적 분포
a = r.gaussian(0.2,10000).to_a
f.plot(x: a, type: "histogram")
이렇게 하면 간단하게 도표를 그릴 수 있다.
GSL 함수를 사용할 수 있기 때문에 분포된 직사각형을 대충 그릴 수 있겠죠.
Flamarion의 테이블 기능을 사용하여 r에 등록된 메소드 차트를 표시합니다.f.table( (r.methods - Object.methods).each_slice(5).to_a)
이렇게 많이 준비한 거 알아요.
뭐야, 루비도 쉽게 할 수 있잖아.
참고와 문헌이 매우 적어서 찾기가 매우 번거롭다.
이상은 이 보도입니다.
Reference
이 문제에 관하여(루비로 다양한 확률 분포의 무작위 수를 생성하여 직사각형을 그려보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kojix2/items/6506865504ecd1cc157b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
설치가 좀 번거로우니 건너뛰고 마지막에 다시 돌아와 보십시오.
Numo: GSL 및 Flumian 설치
Numo: GSL 설치
Numo::GSL는 GNU Scientific Library(GSL)의 바인딩입니다.루비계에는 GSL과의 바인딩이 많지만 나리의 활용을 고려해 이걸 사용했습니다.
2019/5 현재 Numo: GSL은 GSL2입니다.4 이후 대응이 없다.따라서 많은 환경에서 원본 코드에서 GSL2까지.설치해야 합니다.따라서 시간이 좀 걸리겠지만 그만큼 가치가 있다.다음 느낌대로 명령을 내리면 됩니다.공식 홈페이지다운로드 페이지부터 gsl-2.3.tar.gz를 다운로드합니다.
내 생각엔.. 하지만 우분투
sudo apt install libgsl23
에서도 하기만 하면 되는 일이 있는 것 같아.wget http://ftp.jaist.ac.jp/pub/GNU/gsl/gsl-2.3.tar.gz
tar -zxvf gsl-2.3.tar.gz
cd gsl-2.3
./configure
make -j4 # CPUコア数を指定
# checkinstallを使う場合
sudo checkinstall
# インストール場所を自分で指定する場合
# make DESTDIR=/path/you/want/to/install/ install
# Githubからnumo-gslを取得
git clone https://github.com/ruby-numo/numo-gsl
cd numo-gsl
rake build
gem install pkg/numo-gsl-0.1.2.gem # -- --with-gsl-lib=usr/local/lib
# GSLのインストール場所を自分で指定する場合
# gem install pkg/numo-gsl-0.1.2.gem -- --with-gsl-lib=/path/you/want/to/install/usr/local/lib
Flamarion 설치
루비로 차트를 표시하는 방법에는 여러 가지가 있다.
하지만!여기서 일부러 아무도 모르는 작은 방법인 Flamarion을 사용하여 ploty를 사용한다.Flamarion은 Chrome과 electron의 GUI 도구 세트에 재미있는 기능이 많이 들어 있는 가장 좋은 도구입니다.Plattly를 통한 차트 표시 기능도 그 중 하나입니다.Flamarion에 관해서는 다른 기회를 이용해서 신청서를 쓰고 싶습니다.Flamarion의 개발은 계속되고 있지만 업데이트가 조금 지연됩니다.저만 그런 사람이라고 생각해요. 미용을 하는 게 좋을 것 같아요.
https://github.com/zach-capalbo/flammarion
gem install flammarion
가동irb
또는 pry
, Flamation과 Numo:GSL을 준비합니다.require 'flammarion'
require 'numo/gsl'
f = Flammarion::Engraving.new
r = Numo::GSL::Rng::Rand.new
여기서부터는 간단해.이원 분포
a = r.binomial(0.5, 100, 10000).to_a
f.plot(x: a, type: "histogram")
파송 분포
a = r.poisson(3, 10000).to_a
f.plot(x: a, type: "histogram")
베누리 분포
a = r.bernoulli(0.3,10000).to_a
f.plot(x: a, type: "histogram",
autobinx: false, xbins: {start:0, end:1.1, size: 0.1})
지수 분포
a = r.exponential(2,10000).to_a
f.plot(x: a, type: "histogram")
감마 분포
a = r.gamma(5,1,10000).to_a
f.plot(x: a, type: "histogram")
베타 분포
a = r.beta(0.5,0.5,10000).to_a
f.plot(x: a, type: "histogram")
정적 분포
a = r.gaussian(0.2,10000).to_a
f.plot(x: a, type: "histogram")
이렇게 하면 간단하게 도표를 그릴 수 있다.
GSL 함수를 사용할 수 있기 때문에 분포된 직사각형을 대충 그릴 수 있겠죠.
Flamarion의 테이블 기능을 사용하여 r에 등록된 메소드 차트를 표시합니다.
f.table( (r.methods - Object.methods).each_slice(5).to_a)
이렇게 많이 준비한 거 알아요.
뭐야, 루비도 쉽게 할 수 있잖아.
참고와 문헌이 매우 적어서 찾기가 매우 번거롭다.
이상은 이 보도입니다.
Reference
이 문제에 관하여(루비로 다양한 확률 분포의 무작위 수를 생성하여 직사각형을 그려보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kojix2/items/6506865504ecd1cc157b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)