LoginSignup
2
0

日本語プログラミング言語Mind8で十進数計算(平方根)

Last updated at Posted at 2024-04-29

平方根(固定桁)計算

ニュートン法で、小数点以下10桁まで求めていますが、どの桁まで精度があるかは未検証です。

L小数の二倍とは (L小数 → L小数)
    小数Aは 構造体情報
    整数Aは 構造体 L小数型
		小数桁数Aは 変数
		小数桁数は 変数
		整数積は 構造体 L小数型
	小数Aに 入れる
	小数Aの L小数桁数を 小数桁数Aに 入れる
	小数Aを 小数桁数Aだけ L小数を指定桁桁上げし	整数Aに 入れる
	整数Aの L整数の二倍を 整数積に 入れる
	整数積を 小数桁数Aだけ L小数を指定桁桁下げし	返す。
L小数の自然数乗とは (L小数、整数 → L小数)
	  小数Aは 構造体情報
		累乗数は 変数
		小数積は 構造体 L小数型
		小数Aと 累乗数に 入れる
    小数積を クリアする
		1を 小数積の L符号に 入れる
    1を 小数積の L桁数に 入れる
    1を 小数積の L数字(1)に 入れる
		累乗数 回数指定し
			小数積と 小数Aの L小数の掛け算結果を 小数積に 入れる
		繰り返す
		小数積を 返す。
L小数の二乗とは (L小数、整数 → L小数)
	  小数Aは 構造体情報
		小数積は 構造体 L小数型
		小数Aに 入れる
		小数Aと 小数Aの L小数の掛け算結果を 小数積に 入れる
		小数積を 返す。  
L小数の平方根とは (L小数 → L小数)
	  小数Aは 構造体情報
		分子は 構造体 L小数型
		分母は 構造体 L小数型
		近似値は 構造体 L小数型
		二乗値は 構造体 L小数型
		桁数は 変数
		小数Aに 入れる
		小数Aを 近似値に 入れる
		1を 桁数に 入れる
		10 回数指定し
      桁数を 一つ増加する
			近似値の L小数の二乗を 二乗値に 入れる
          二乗値と 小数Aの L小数の加算結果を 分子に 入れる
      近似値の L小数の二倍を 分母に 入れる
			分子を 分母で 桁数 L桁未満切り捨てした商を 近似値に 入れる			
		繰り返す
		近似値を 返す。

実行結果

2,3,4,5の平方根を求めました。(各100回)

c:\mind8\pmind\sample>lnumtime
156ミリ秒経過
+1.41421356237
297ミリ秒経過
+1.73205080756
375ミリ秒経過
+2.00000000000
562ミリ秒経過
+2.23606797749

@killy さんへ L小数型を 100桁で定義すると、途中で黙って終わってしまいましたので50桁にすると正常終了しました。

2
0
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0