제로에서 시작하는 MCMC 책을 줄리아로 써봤는데 줄리아도 C를 대신할 수 있을 것 같아요.
총결산
이마
Juria가 0.2 또는 0.3 정도인 것을 알고 0.5 정도부터 작업 프로그램의 일부로 사용하기 시작했습니다. 0.7/1.0으로 전환할 때 파괴적인 업데이트가 있을 수 있지만 1.0 이후에는 안정적으로 사용할 수 있습니다. 최근에 트위터를 봤는데,줄리아는 1.0 이후에도 통용어로 통용되고 속도가 빨라요. 조화를 가늘게 하려면 씨톤과 씨++를 쓰지 않아도 되죠?이런 의견이 있는 것 같다.
예전에 우연히 읽은 책은 C/C++(C라고 하지만 거의 C)인데, MCC를 1부터 이해할 수 있도록 자세히 설명해주는 좋은 책이 있는데, 수중에 책을 반납해 주리아로 써보려고 한 장르의 책이다.
(주리아 이런 글씨는 너무 졸렬하다!!! 이런, 그래, 그래, 미안해)
π의 근사치 구하기(C/Juria/별다른 연구가 없는 뇌사 파이톤)
정말 흔한 물건이군. C의 실복을 볼게. 책의 실복을 복사한 거야.
#include <stdio>
#include <stdlib.h>
#include <time.h>
const int n_iter = 1000000;
const int print_step = 10000;
int main() {
srand((unsigned)time(NULL));
int n_in = 0;
for (int i = 1; i <= n_iter; i++) {
double x = (double)rand() / RAND_MAX;
double y = (double)rand() / RAND_MAX;
if (x * x + y * y < 1.0f)
n_in++;
if (i % print_step == 0)
printf("%d %.10f\n", i, (double)n_in/n_iter);
}
}
다음 단계는 줄리아에서 실시한다. 파이톤은 순환을 직접 쓰면 좀 무섭다(과장), 특히 뇌사 상태에서 진행된다. 리니어알게브라:norm은 2승정액을 계산할 수 있지만 사용하지 않아도 된다.using LinearAlgebra: norm
function compute(;n_iter=1_000_000, print_step=1_000)
n_in = 0
for i in 1:n_iter
xy = rand(2)
(norm(xy) < 1) && (n_in += 1)
(i % print_step == 0) && println("$i $(n_in / i)")
end
println("true: $(pi/4)")
end
compute()
어느 것이나 0.785 정도 설치되어 있는 데다 파이토존도 신경 쓰지 않고 for문으로 쓰면 이런 분위기다.import random
n_in = 0
n_iter = 1000000
print_step = 1000
for i in range(1, n_iter + 1):
x = random.random()
y = random.random()
if x * x + y * y <= 1:
n_in += 1
if i % print_step == 0:
print("{} {}".format(i, n_in / i))
print(n_in / n_iter)
파이톤이 한꺼번에 머리에 들어가는 사람 줄리아도 곧 들어간다!(논의 필요)보태다
반복, 그리고 C+/Python/Juria, 어떤 것을 선택해야 합니까!파이썬 느려!하지만 파이톤을 밟지 않고 C++로 공부(다른 것도 Cython 같은 것을 쓴다)라는 절차를 밟지 않아도 Jupter notebook에서 바로 사용할 수 있는 Juria를 선택할 수 있다.그나저나 쥬리아도 파이썬의 포장이라고 간단하게 부를 수 있는데, 쥬리아의 아픈 점은 파이썬으로 쓰면 된다.
나는 파이톤을 사용할 때는 matplotlib을, Juria를 사용할 때는 Plaots를 사용한다.백엔드도 사용했습니다.
function plot_values_in_hist(values; n_bins=50)
f = plot(size=(400, 300))
histogram!(f, values, bins=n_bins, normalize=true)
savefig(f, "chapter4/histogram1_n$(length(values)).png")
end
경품
그나저나 지금은 설치할 때 VS코드로 편집하고 터미널을 오른쪽에 Oh My REPL에 놓는다.jl과 Revise.jl 읽기 (Oh My REPL. jl 항상). 여기에서 편집한 코드는include (") 에서 호출됩니다. 이 때 오류가 발생하면 다시 읽는 것을 반영할 수 없습니다. 이것은 무슨 문제입니까?인클라이트가 아니어서 안 된다는 느낌인가요?유식한 분이 VS코드가 incremental을 실현할 때 가장 좋은 방법을...
Reference
이 문제에 관하여(제로에서 시작하는 MCMC 책을 줄리아로 써봤는데 줄리아도 C를 대신할 수 있을 것 같아요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/takilog/articles/c3cfd47c58267a38e876텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)