技術メモ

役に立てる技術的な何か、時々自分用の覚書。幅広く色々なことに興味があります。

数学

Implement Prime spiral & Ulam spiral

Prime spiral from matplotlib import pyplot as plt import numpy as np from sympy import isprime upper_limit = pow(2, 17) theta = [] r = [] ptheta = [] pr = [] def f(x): return (np.sqrt(x),x) for i in range(1, upper_limit): res = f(i) r.appe…

統計検定1級に合格しました

以前統計応用については合格していたのですが、統計数理は何度か落ちていたためN度目のリベンジでした。この度2022年度統計数理も合格することができたのではれて統計検定1級を名乗れるようになりました。 月並みですが、自分なりに対策したことを書き残して…

3次スプライン補間を実装する

3次スプライン補間 補間とは? 補間とは、点群に対してその点群を通る連続な関数を当てはめること。 もっとも単純なものは線形補間で、いわゆる折れ線グラフのようなもの。 特に3次スプライン補間とは点群間を3次多項式で表し2階微分まで連続にするような補…

nCk (mod m) の求め方 [n,kが凄く大きい場合]

大きいnに対してコンビネーションを求める 凄く大きいnに対してCombinationを求める時、例えばを求めようと思っても愚直に計算するにはプログラムで扱える桁数を超えてしまう。 そこで、mで割った余り(modular) を求めさせることがある。pythonで書いたので…

円周率素数 ネイピア数素数

3.14159265 と言われて何を思い浮かべるだろうか。 そう、円周率である。円周率と言えば、3.1415...と続く数なのは小学生でも周知の事実だが、 円周率を頭から数えたとき出てくる素数というのはあまり知られていないかもしれない。まず 3 は素数 31 も素数 3…

Nが現れる素数(N=1,2,3,4)

2が現れる素数という面白い素数が紹介されていた。 2が現れる素数 - INTEGERS昔せっかく高速素数判定器を作ったので、どうせならNが現れる素数を見つけてやろう!と思い立った。 プログラム (※プログラムはpython(2.7.12)で動作します)ルールとしては ①四…

倍プッシュの錯覚に騙されてはいけない(マーチンゲール法)

FXの業界には、ギャンブル性の強いバイナリーオプションという取引がある。 バイナリーオプションとは、1分後や10分後の相場について「上がる」か「下がる」かについてのみ予想する取引のことである。 そのバイナリオプションの取引で、必勝法と謳い人々をだ…

二項分布の極限が正規分布になることの証明【正規近似の証明】

二項分布の試行回数を無限大に大きくしていくと正規分布に近づくことが知られている。 しかし、その証明は意外と知られていない。(中心極限定理でも証明は可能ではあるが、回りくどすぎて初学者には不親切)やが出てくるのがどうしても不思議で、自分なりに…

pythonで完全数と友愛数と婚約数を求める

以前の記事の続きとして、せっかくなので友愛数・完全数・婚約数を求めてみたい。 約数関数(再掲) divisor(n)として約数関数を使うので、再掲しておく。 sympyを使う。 import sympy def divisor(n): factors = sympy.factorint(n) rst = 1 for i,j in fac…

sympyで素因数分解ができるからオイラー関数と約数関数を書いてみた

pythonのライブラリの一つsympyを使えば、簡単に素因数分解ができるということを知った。 import sympy sympy.factorint(1000) #{2: 3, 5: 3} ちなみに、因数分解も簡単にできる!! 凄い。 import sympy x = sympy.Symbol('x') eqn = x**2 - 3*x + 2 print(sy…

最強の素数チェッカーを作ってみた

前回の記事の最後に書いた、決定的な素数判定と確率的な素数判定をハイブリッドにしたら最強なんじゃないかという考えのもと、最強の素数判定器を作ってみた。 特にひねりはないが、最初に3桁まで(引数で指定可能)の素数リストを作っておいて、確率的な素数…

確率的素数判定法 vs. エラトステネスの篩

素数判定をするのは暗号の分野ではすごく重要なんだけど、そこでよく使われるのが確率的素数判定法というもの。 競技プログラミングの問題に出てくる程度の素数判定では、エラトステネスの篩と呼ばれる有名な素数判定アルゴリズムで充分なのだけど、暗号に使…

カオス理論入門(pythonでアトラクタの軌跡を描く)

カオスについて勉強していた時に書いて見たかったもの。アトラクターの軌道を見てみたい。 目標としては3次元プロットして一定軌道をグルグル回っているところをプロットしてみる。有名なレスラーアトラクターとローレンツアトラクターを描いていきたい。 実…

RSA暗号を実装してみる(プログラム編)

前回まではRSA暗号の原理を説明してきたけれど、いよいよ本題。実際コーディングに取り掛かる。理論では簡単に説明されるところでも実際にコーディングしてみると難しいところがある。 RSA暗号を実装してみる(知識編) - 技術メモ RSA暗号を実装してみる(…

RSA暗号を実装してみる(理論編)

知識編で説明したように、RSA暗号の最大の特徴は暗号鍵から復号鍵を類推することが難しいというところにある。今回は、この特徴が数学的にどのように実現できているのかについて見ていく。 RSA暗号を実装してみる(知識編) - 技術メモ RSA暗号を実装してみ…

networkxでネットワーク特徴量の分析

networkxを触った時の備忘録。今回扱ったのは無向グラフに限る。 用語などの解説は別の記事に譲りたい。 (networkx(1.11.0) python(2.7.12)) 適当なグラフを作成・可視化 import networkx as nx import numpy as np import matplotlib.pyplot as plt # gener…