<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://twiki.yo-net.jp/index.php?action=history&amp;feed=atom&amp;title=Python_2%E5%88%86%E6%B3%95%E3%81%AB%E3%82%88%E3%82%8B%E5%B9%B3%E6%96%B9%E6%A0%B9%E7%AE%97%E5%87%BA</id>
	<title>Python 2分法による平方根算出 - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://twiki.yo-net.jp/index.php?action=history&amp;feed=atom&amp;title=Python_2%E5%88%86%E6%B3%95%E3%81%AB%E3%82%88%E3%82%8B%E5%B9%B3%E6%96%B9%E6%A0%B9%E7%AE%97%E5%87%BA"/>
	<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=Python_2%E5%88%86%E6%B3%95%E3%81%AB%E3%82%88%E3%82%8B%E5%B9%B3%E6%96%B9%E6%A0%B9%E7%AE%97%E5%87%BA&amp;action=history"/>
	<updated>2026-04-05T02:05:31Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://twiki.yo-net.jp/index.php?title=Python_2%E5%88%86%E6%B3%95%E3%81%AB%E3%82%88%E3%82%8B%E5%B9%B3%E6%96%B9%E6%A0%B9%E7%AE%97%E5%87%BA&amp;diff=182&amp;oldid=prev</id>
		<title>Yo-net: ページの作成:「Pythonの記事へ戻る == ''' プログラム ''' == 平方根を手計算するには2分法というものを使いますが手計算を実際に手で計算するのは骨が折れるので、プログラムでその手順を追うための物です。あまりプログラムは得意ではないので、綺麗なコードとは言えませんが、一例を示しておきます。冒頭にあるnInputに算出したい平方根の数値を与えると2分…」</title>
		<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=Python_2%E5%88%86%E6%B3%95%E3%81%AB%E3%82%88%E3%82%8B%E5%B9%B3%E6%96%B9%E6%A0%B9%E7%AE%97%E5%87%BA&amp;diff=182&amp;oldid=prev"/>
		<updated>2022-09-26T03:48:18Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「&lt;a href=&quot;/Python&quot; title=&quot;Python&quot;&gt;Python&lt;/a&gt;の記事へ戻る == &amp;#039;&amp;#039;&amp;#039; プログラム &amp;#039;&amp;#039;&amp;#039; == 平方根を手計算するには2分法というものを使いますが手計算を実際に手で計算するのは骨が折れるので、プログラムでその手順を追うための物です。あまりプログラムは得意ではないので、綺麗なコードとは言えませんが、一例を示しておきます。冒頭にあるnInputに算出したい平方根の数値を与えると2分…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Python]]の記事へ戻る&lt;br /&gt;
== ''' プログラム ''' ==&lt;br /&gt;
平方根を手計算するには2分法というものを使いますが手計算を実際に手で計算するのは骨が折れるので、プログラムでその手順を追うための物です。あまりプログラムは得意ではないので、綺麗なコードとは言えませんが、一例を示しておきます。冒頭にあるnInputに算出したい平方根の数値を与えると2分法をnCntに与えられた深さまで算出を繰り返します。nCntが大きいほど近似値の精度が高くなります。&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
nInput = 3&lt;br /&gt;
&lt;br /&gt;
nScan = 1&lt;br /&gt;
while nInput &amp;gt; np.power(nScan, 2) :&lt;br /&gt;
    nScan += 1&lt;br /&gt;
&lt;br /&gt;
print('nPrev: ', nScan - 1,'nNext: ', nScan)&lt;br /&gt;
&lt;br /&gt;
nPrev = nScan -1&lt;br /&gt;
nNext = nScan&lt;br /&gt;
&lt;br /&gt;
if nInput - np.power(nPrev, 2) &amp;lt; np.power(nNext, 2) - nInput:&lt;br /&gt;
    fNear = nPrev&lt;br /&gt;
else:&lt;br /&gt;
    fNear = nNext&lt;br /&gt;
	&lt;br /&gt;
print('nNear: ', fNear)&lt;br /&gt;
&lt;br /&gt;
fSplit = nInput / fNear&lt;br /&gt;
fSplitMedian = (fSplit + fNear) / 2&lt;br /&gt;
&lt;br /&gt;
fValue = (fNear + fSplitMedian) / 2&lt;br /&gt;
&lt;br /&gt;
fPrepreValue = 0&lt;br /&gt;
fPrevValue = 0&lt;br /&gt;
nCnt = 12&lt;br /&gt;
&lt;br /&gt;
print(nCnt,' fSplitMedian: ', fSplitMedian, 'fValue: ', fValue, 'fSplitMedian^2', np.power(fSplitMedian, 2), 'fValue^2: ', np.power(fValue, 2))&lt;br /&gt;
def Nibun_Func(nInput,fValue,fSplitMedian,fPrepreValue,fPrevValue,nCnt):&lt;br /&gt;
    if nInput &amp;gt; np.power(fValue, 2):&lt;br /&gt;
        str = '#' &lt;br /&gt;
        fNear = fValue&lt;br /&gt;
        fValue = (fNear + fSplitMedian) / 2&lt;br /&gt;
        nCnt -= 1&lt;br /&gt;
    else:&lt;br /&gt;
        str = '+'&lt;br /&gt;
        fNear = fPrepreValue&lt;br /&gt;
        fSplitMedian = fValue&lt;br /&gt;
        fValue = (fNear + fSplitMedian) / 2&lt;br /&gt;
        if nInput &amp;lt; np.power(fValue, 2):&lt;br /&gt;
            fValue = fPrepreValue&lt;br /&gt;
    fPrepreValue = fPrevValue&lt;br /&gt;
    fPrevValue = fValue&lt;br /&gt;
    &lt;br /&gt;
    print(str,nCnt,' fSplitMedian: ', fSplitMedian, 'fValue: ', fValue, 'fSplitMedian^2', np.power(fSplitMedian, 2), 'fValue^2: ', np.power(fValue, 2))&lt;br /&gt;
    if nCnt &amp;gt; 0:&lt;br /&gt;
        Nibun_Func(nInput,fValue,fSplitMedian,fPrepreValue,fPrevValue,nCnt)&lt;br /&gt;
        &lt;br /&gt;
Nibun_Func(nInput,fValue,fSplitMedian,fPrepreValue,fPrevValue,nCnt)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
累乗根も手計算できますがさらに複雑です。2項定理の累乗1から9までを使って算出する手法です。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Python]]の記事へ戻る&lt;/div&gt;</summary>
		<author><name>Yo-net</name></author>
	</entry>
</feed>