Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
あえて開平法で求めてみる.pdf
Search
keyT
October 22, 2025
26
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
あえて開平法で求めてみる.pdf
keyT
October 22, 2025
More Decks by keyT
See All by keyT
色を音にする.pdf
keyt
0
35
コード進行を再現するコード作成.pdf
keyt
0
45
QRコードでライフゲーム.pdf
keyt
0
27
SAMでなんでも切り抜けるツールを作ってみた.pdf
keyt
0
23
開平法でn乗根を求めてみるコード作ってみた.pdf
keyt
0
48
connpass最新イベント_通知用LINEBot作成.pdf
keyt
0
35
発信力_鍛えてきました.pdf
keyt
0
65
OpenCVとSciPyを活用した関数アート生成コード開発.pdf
keyt
0
35
自宅用タスク管理ツール開発.pdf
keyt
0
15
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
550
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
980
A Tale of Four Properties
chriscoyier
163
24k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
820
HDC tutorial
michielstock
2
860
Paper Plane (Part 1)
katiecoart
PRO
1
11k
The Cult of Friendly URLs
andyhume
79
7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
How to train your dragon (web standard)
notwaldorf
97
6.8k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
Transcript
あえて開平法で平方根を 求めるコードを作ってみた 久島慶大
自己紹介 名前:久島慶大 職業:AIエンジニア 最近の案件:画像認識 最近の出来事:イベントに出典するため、別のAIを開発することに。正直プレッ シャー
開平法とは? ひっ算を用いて整数の平方根を求めるアルゴリズム 一言でいうと、手計算でルートを求める手法 手順 1.小数点を基準に二けたずつ区切る 2.二乗して最も左のブロック以下となる最大の整数を 求める。その数を右側に1つ、左側に2つ書く 3.左側は足して、右側は引く 4.(左側の数の末尾にNをつなげたもの*N)が右の次のブロックまで取った もの以下になる最大の整数を求める
5. 3~4を繰り返す 出展元:開平法のやり方と原理 | 高校数学の美しい物語
実装 前ページの手順を次のように読み替えて、Pythonで実装。 1. 桁数が奇数の時、先頭に0を加える。その後、計算したい桁数’00’を末尾に加える 2.二けたずつ区切って、リストに格納 3.左側の数、右側の数をそれぞれ0で初期化 4.右側の数字を更新 (右側の数字 ← 100*右側の数字+リストのi番目の要素
) 5. (10*左側の数字 + n) * n<= 右側の数字となる最大の整数nを求める 6.右側、左側の数字をそれぞれ更新 (右側の数字 ← 右側の数字 - (10*左側の数字 + n)*n 左側の数字 ← 10*左側の数字 + 2*n) 7. 4~6をリストの要素分繰り返す
今回作成したコード 詳しくはQiitaに挙げているので、確認してください (開平法で平方根を任意桁まで求める【 Python実装付き】 #数学 - Qiita)
ニュートン法と比較してみた x y= a ニュートン法とは?ー数値解を求めるアルゴリズムの一種 一言でいうと、xの値を決める→(x,f(x))をから接線を引く を繰り返してf(a)=0となるaを求める方法 方法 1.初期値x_0を求める 2.f(x_0)とf’(x_0)を求める
3.x_0- f(x_0)/f’(x_0) を計算する。これが次の xになる 4.2~3を繰り返す
方法 1~100万までの整数を10万個出力してみて、誤差が 10^-8以下になるまで計算を行い すべて計算し終わるまでの時間を計測 誤差(err)は以下の式で求めている ※今回はニュートン法の初期値は 1.0で固定している a:ルートの中身 n:数値解
結果 開平法 ニュートン法 1回目 12.03186 8.02147 2回目 11.48783 8.58757 3回目
11.53064 8.82972 平均 11.68344 8.47959 ニュートン法の方が早く収束
まとめ ニュートン法の方が、精度、計算時間が優れていた。 もっと言うと、コードサイズもニュートン法の方が短かった ー使われているものには使われるだけの理由があるんだなと感じた 双方のアルゴリズムをスライドにまとめているときに、ニュートン法の方が説明が書きやすかった ーシンプルであることも良いアルゴリズムであることの指針の一つかなと感じた
最後に Qiitaに今回の記事を挙げてます いいね押してもらえると励みになります