裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

算額(その1540)

2025年01月14日 | Julia

算額(その1540)

竹束(ちくそく)問題
源為憲:口遊(くちずさみ),天禄元年(970)
中村信弥:和算家 北明 寺島宗伴
http://www.wasan.jp/terasima/terasima.html

図のような竹の束がある。周員(外側の赤い竹の本数)が 21 本のとき,総本数はいかほどか。

SymPy では,以下の 2 つの関数を使う

実際の数列 a を作る
a = sympy.sequence(第 n 項の式, (n, 最初の項, 最後の項))

部分列の和の一般項
summation(a.formula, (n, 最初の項, 最後の項))

竹の本数は,3, 9, 15, ... の等差級数なので,「第n項の式」は 6n - 3

using SymPy
@syms n, m
b = sympy.sequence(6n - 3, (n, 1, 10))

    [3, 9, 15, 21, ...]

1 から m までの部分列の和の式は以下で求まる。

Sm = summation(b.formula, (n, 1, m))
Sm |> println

    3*m^2

外側の竹が 21 本は,何項目かは (21 + 初項)/公差で求まる。

(21 + 3)/6 |> println

    4.0

Sm の m に代入すると,総和が求まる。

Sm(m => 4) |> println

    48

まだるっこしいので,ブルートフォースで計算する方が簡単である。

target = 74067
s = 0
for n = 1:999999 # 適当な数
    a = 6n - 3
    s += a
    a == target && (println(s); break)
end

    457197075

 


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 算額(その1539) | トップ | 神秘の夜空が語る物語──Wolf ... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Julia」カテゴリの最新記事