算額あれこれ

算額問題をコンピュータで解きます

2022-01-01から1ヶ月間の記事一覧

「標本分散」ってなんだ?

「不偏分散」の話をするときに,それに対応するものを「標本分散」と呼ぶ人がいる。 「標本から計算した『分散』は母分散の推定値」,ならば不偏分散も『分散』も標本分散ですね。そして,『分散』は母分散から偏っているので,それを不偏にするのが不偏分散…

グラフの作り方って,おもしろいな〜〜。ということ

中澤先生が,男女の平均寿命の差について,「格差が拡大してから低下している」とツイートしたそうだ。 https://minato.sip21c.org/im3r/20220129.html 中澤先生の図は(日本語が文字化けしているので,簡略化した) le0 <- data.frame( YEAR = 1980:2020, M…

Julia: 多重クロス集計表から元のデータフレームを復元する

「R による統計解析」の 59ページにある「多重クロス集計表から元のデータフレームを復元する」を Julia で書いてみた。 julia> using DataFrames julia> df = DataFrame(a = [1, 2, 3], b = ["a", "b", "c"], n = [2, 3, 4])3×3 DataFrame Row │ a b n │ …

統計解析のためのJuliaの道具箱--1 固定書式ファイルをデータフレームに読み込む

""" 固定書式ファイルからデータフレームへ入力するプログラム このプログラムを fixedformat.jl という名前で保存しておき, 使用するときに include("fixedformat.jl") でインクルードする。 使用法-1 fixedformat(fn; settype=true) データファイルの 1, …

Julia で統計解析--その2 データの取扱

これらの文書群は github で管理することとした 最新バージョン 2022-02-02 16:45 以下を参照のこと https://r-de-r.github.io/stats/Julia-stats2.html 1. データをデータフレームへ読み込む 1.1. Excel のワークシートファイル 1.2. CSV ファイル 1.2.1. …

さて,問題です。

以下の 35 枚の散布図で,相関係数が 0.63 のものはどれでしょうか? 答えは,ず〜〜〜〜〜とスクロール。 はい,全部です。全部,相関係数は正確に 0.63 です。 びっくりしましたか? 他の人にもこれを見せて意見を聞いてみましょう。

Julia で統計解析--その1 さあ,始めよう!!Julia

これらの文書群は github で管理することとした 最新バージョン 2022-01-26 22:55 以下を参照のこと https://r-de-r.github.io/stats/Julia-stats1.html 1. Julia を使ってみる 1.1. 必要なファイルをダウンロードする 1.2. Julia のインストール 1.3. Julia…

無駄をなくさないと速くならないこともある

前と同じようなプログラムになると思うと大間違いな場合。 平成 26 年度 京都数学オリンピック道場10 桁の正の整数の各桁に 0 以上 9 以下のすべての整数が現れ,かつ 11111 の倍数であるとき,その整数を面白い整数と呼ぶことにする。面白い整数は全部でい…

計算はたいして速くならないけど,無駄をなくす

2016年ジュニア数学オリンピック予選「各桁の数字が相異なるような37の倍数のうち最大のものを求めよ。」 「10 桁の数の最大のものは 9876543210 なので,1ずつ引いてその数が37で割り切れ,かつ数字が相異なるか調べる」という戦略で,以下のようなプログ…

Julia: プログラムを速くするための定石--その10

ヴィーフェリッヒ素数http://commutative.world.coocan.jp/blog5/2020/11/post-182.html 関数化と Primes パッケージの isprime() を使うことによりほぼ 15 倍速となった。元のプログラムと比較して欲しい。 using Primesfunction Wiefelich() z = BigInt(1)…

Julia: ニュートン法により黄金比の値を 10000 桁求める

黄金比の値をニュートン法により小数点以下 n 桁まで求める。 function newton(n=10000) prec = floor(Int, n / log10(2)) setprecision(prec+10) x = BigFloat(2) err = BigFloat(10) for i in 1:1000 xn = (x^2+1) / (2x-1) i > 1 && string(xn)[end-5:end…

Julia: プログラムを速くするための定石--その8

ユークリッド-マリン数列http://commutative.world.coocan.jp/blog5/2022/01/post-523.html 元のプログラムでは第 6 項の 50207 までなら 0.035977 秒で計算できる。しかし,第 7 項まで出そうとすると 1912.027524 秒かかる。しかも出てきた答え 547985393…

Julia: プログラムを速くするための定石--その7

オイラーの級数http://commutative.world.coocan.jp/blog5/2021/09/post-431.html 計算時間を短縮するには,関数化する,ファイル入力しないの他,今回は, 関数に実際に渡されるものに特化した関数定義,引数の精度を見極める。同じものを何度も計算しない…

文字列の分数式を「分数式」に変換する

文字列として定義(入力)された "353//283286119" のような分数式 を Rational{BigInt} 353//283286119 に変換する。 function Str2Rat(line::String) p = 0 AA = zero(BigInt) BB = zero(BigInt) for i = firstindex(line):lastindex(line) if line[i] == …

Julia: sin33°、cos33°、tan33°はどんな数? 再び

sin33°、cos33°、tan33°はどんな数?https://p-suugaku.blogspot.com/2022/01/sin33cos33tan33.html については, 「Julia/SymPy: sin(33°),cos(33°),tan(33°)」に,すでに書いたけど,tan(33°) の simplify をやった結果も書いておこう。 元ページには写…

Julia: プログラムを速くするための定石--その5

Julia: プログラムを速くするための定石 Julia: プログラムを速くするための定石--その2 Julia: プログラムを速くするための定石--その3 Julia: プログラムを速くするための定石--その4 の続きである で, ボレル予想http://commutative.world.coocan.jp/blo…

Julia: プログラムを速くするための定石--その4

Julia: プログラムを速くするための定石 Julia: プログラムを速くするための定石--その2 Julia: プログラムを速くするための定石--その3 の続きである この記事では,適切な手法を選択する必要性を述べる。 リストがソートされている場合,逐次探索ではなく…

Julia: プログラムを速くするための定石--その3

Julia: プログラムを速くするための定石 Julia: プログラムを速くするための定石--その2 の続きである さて, 素数の末尾の桁の三連星 http://commutative.world.coocan.jp/blog5/2021/12/post-504.html 元プログラムは,素数リストをファイルから入力する,…

Julia: プログラムを速くするための定石--その2

Julia: プログラムを速くするための定石 の続きである 素数の末尾の桁http://commutative.world.coocan.jp/blog5/2021/12/post-500.html 10^10 までの素数を検査するのに 133.399550 秒かかるが,そのうちの約半分の 60 秒が素数リストをファイルから入力す…

Julia: プログラムを速くするための定石

弱いゴールドバッハ予想の計算http://commutative.world.coocan.jp/blog5/cat122/ Julia プログラムを速くするために何をすべきかの例を示すための素材として取り上げる。元のプログラムは,上のリンクをクリック。 冒頭 12 行は,素数リストをファイルから…

Julia: 長精度計算するときの注意事項

Juliaによる累乗根の計算http://commutative.world.coocan.jp/blog5/2021/04/julia-9.html setprecision(100) x = BigInt(2) T = BigFloat(0.2) x = x^T println("2^0.2 = $x") x = x^5 println("(2^0.2)^5 = $x") の結果が 2^0.2 = 1.148698354997035015638…

Julia/SymPy: 数値代入法による係数の決定

数学検定の準1級1次に出題された「数値代入法」の問題 https://existence-scholar.com/modules/d3diary/index.php?page=detail&bid=2140 using SymPy @syms a b c d x 左辺 l = 9/(x-1)^2/(x+2)^2 分数の和として表示(apart) l2 = l |> apart もうこれで,…

Atkin の篩と,チューンナップした Eratosthenes の篩 速度はほぼ同等!!

タイトルどおり。 エラトステネスの篩も,さらなるチューニングはあるが,まあ程々で。C で書いたプログラムをコールすれば結果は変わる。Julia の primes は atkin の篩によるものらしいが,速い(コンパイラ言語のプログラムを読んでいるのだろう)。 Juli…

Julia/SymPy: 無限級数の極限--2

using SymPy@syms n summation(1/2^n, (n, 0, oo)) # 2 summation(1/2^n, (n, 1, oo)) # 1 summation(1/( (2n+1)*(2n+3)), (n, 1, oo)) # 1/6 summation(1/(n*(n+2)), (n, 1, oo)) # 3/4 summation(1/3^(n-1) - 1/4^n, (n, 1, oo)) # 7/6 summation(1/3^n, (…

Julia/SymPy: 無限級数の極限

using SymPy @syms n 1. log(2) e1 = summation( (-1)^(n-1)/n, (n, 1, oo));e1 |> print # log(2)e1.evalf() # 0.693147180559945 2. フーリエ級数 e2 = summation(1/n^2, (n, 1, oo));e2 |> print # pi^2/6√(e2 * 6).evalf() # 3.14159265358979 3. グレゴ…

Julia/SymPy: sin(42°),cos(42°),tan(42°)

Julia/SymPy: sin(42°),cos(42°),tan(42°)

Julia/SymPy: sin(39°),cos(39°),tan(39°)

Julia/SymPy: sin(39°),cos(39°),tan(39°)

Julia/SymPy: sin(36°),cos(36°),tan(36°)

Julia/SymPy: sin(36°),cos(36°),tan(36°)

Julia/SymPy: sin(33°),cos(33°),tan(33°)

Julia/SymPy: sin(33°),cos(33°),tan(33°)

Julia/SymPy: sin(27°),cos(27°),tan(27°)

Julia/SymPy: sin(27°),cos(27°),tan(27°)