・参考図が問題文にあります。
・数列は、???いつもの自転車君以来,3年ぶりです。
数列を忘れてしまっていたので、
The OEIS からです。私の(2)の結果は、正しいと思います。
・FreeCADで作図しました。
・(?本日の)ChatGPT先生の回答(省略) によると、(1)も大丈夫そうです。
・私は、(1)の数学的帰納法の勉強中です。
(その2)作成中。完成未定です。
問題文 オリジナル
2006 岩手大学 前期【3ア】(1)(2) < 大学入試数学問題集成 様
https://mathexamtest.web.fc2.com/2006/200610061/2006100610100mj.html#top-0109
The OEIS
n*(n+1)*(n+2)/6
GASで(手計算していないけど手計算)
・15段ならできました。
1=1
1+2=3
1+2+3=6
1+2+3+4=10
1+2+3+4+5=15
...
1,4,10,20,35...
1 1
1 2 3
1 2 3 6
1 2 3 4 10
1 2 3 4 5 15
1 2 3 4 5 6 21
1 2 3 4 5 6 7 28
1 2 3 4 5 6 7 8 36
1 2 3 4 5 6 7 8 9 45
1 2 3 4 5 6 7 8 9 10 55
1 2 3 4 5 6 7 8 9 10 11 66
1 2 3 4 5 6 7 8 9 10 11 12 78
1 2 3 4 5 6 7 8 9 10 11 12 13 91
1 2 3 4 5 6 7 8 9 10 11 12 13 14 105
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 120
15 28 39 48 55 60 63 64 63 60 55 48 39 28 15 680
ChatGPT先生へ
・質問リストの追番は無視して下さい。1個ずつです。
途中の回答表示は省略しています。
# 質問リスト
1. 15段の三角錐状に積まれたボールの総数を求めよ.
2. 上記をsympyのソースコードでお願いします.
3. 結果をmarkdown形式のテキスト表示をお願いします.
4. 上記をFreeCADのマクロで作図する方法を教えて下さい.
5. 私の質問をMarkdown形式でリスト化して出力して。Markdown形式でリストからアスタリスクは削除して。1行目に、# 質問リスト の文字を出力して。
?>本日の回答に追番がありませんでした。
?上記の質問リストに追番を追加して下さい。
sympyで
・ChatGPT先生のコードそのままです。
import sympy as sp
# 定義: 三角数 T_n
def triangular_number(n):
return n * (n + 1) // 2
# 15段のピラミッドのボールの総数を求める
def pyramid_ball_count(m):
return sum(triangular_number(n) for n in range(1, m + 1))
# 計算
m = 15
total_balls = pyramid_ball_count(m)
# 結果を出力
print(f"15段の三角錐状に積まれたボールの総数: {total_balls}")
(解答抜粋)
したがって、総数は 680個です。
FreeCADのマクロで作図
???? 重なって見えます。接触の確認方法がわかりませんでした。
???? Sphereの数え方勉強中。私はFreeCADの操作がわかっていません。
・ChatGPT先生のコードそのままです。
import FreeCAD as App
import FreeCADGui as Gui
import Part
# ドキュメントを取得または作成
doc = App.ActiveDocument if App.ActiveDocument else App.newDocument("PyramidBalls")
# 球の半径と配置の基準値
radius = 2 # 球の半径
spacing = 2.2 # 球間の適切な間隔(少し余裕を持たせる)
levels = 15 # 三角錐の段数
# 球を作成して配置
for i in range(1, levels + 1): # 各段
for j in range(i): # 各段の行
for k in range(j + 1): # 各行の列
# 球の位置を計算
x = (j - (i - 1) / 2) * spacing
y = (k - j / 2) * spacing
z = (levels - i) * spacing
# 球体を作成
sphere = Part.makeSphere(radius)
obj = doc.addObject("Part::Feature", f"Sphere_{i}_{j}_{k}")
obj.Shape = sphere
obj.Placement.Base = App.Vector(x, y, z)
# 表示を更新
doc.recompute()
Gui.ActiveDocument.ActiveView.fitAll()
Gemini先生へ
(未)
copilot先生へ
(未)
いつもの? sympyの実行環境と 参考のおすすめです。
いつもと違うおすすめです。
wikipedia
・The OEIS