Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LL2025 キミならどう書く ~AI編~
Search
Kaoru Maeda
September 07, 2025
Programming
0
13
LL2025 キミならどう書く ~AI編~
LL2025のセッションで使ったスライドです
LL2025:
https://ll.jus.or.jp/2025/
Kaoru Maeda
September 07, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol Buffers Types Achieving Extensibility
linyows
0
110
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
240
KessokuでDIでもgoroutineを活用する / Go Connect #6
mazrean
0
140
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
440
testingを眺める
matumoto
1
130
Improving my own Ruby thereafter
sisshiki1969
1
160
ProxyによるWindow間RPC機構の構築
syumai
3
1k
ECS初心者の仲間 – TUIツール「e1s」の紹介
keidarcy
0
150
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.3k
個人軟體時代
ethanhuang13
0
310
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
560
Design Foundational Data Engineering Observability
sucitw
3
170
Featured
See All Featured
Navigating Team Friction
lara
189
15k
How GitHub (no longer) Works
holman
315
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Rails Girls Zürich Keynote
gr2m
95
14k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Build your cross-platform service in a week with App Engine
jlugia
231
18k
The Invisible Side of Design
smashingmag
301
51k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Unsuck your backbone
ammeep
671
58k
GitHub's CSS Performance
jonrohan
1032
460k
RailsConf 2023
tenderlove
30
1.2k
Transcript
キミならどう書く~AI編~ LL2025 2025/09/06 前田 薫 (@mad_p, GitHub: mad-p)
過去のキミならどう書く • 2003~2008, 2012に開催 • テーマに沿ったプログラムを好きなプログラム言語で書く ◦ Webアプリケーション ◦ じゃんけん
(TCPクライアント、Webクライアント) ◦ n-Queens ◦ 漢数字電卓 ◦ プレゼンソフト • あーでもないこーでもないと評価(?)
今年はAI編やりたい • キミならどう書くをAIでやるとしたら今年! ◦ 去年はできなかった、来年じゃもう遅い • ツールによって違うのか? • 言語によって変わる? •
バイブコーディング実演としては、ゆるく入門レベルで ◦ ライブでハマらずに行けるのか? (こうご期待) • お題 ◦ パズルのソルバーを書かせる
ツール・モデル・言語 • 今日使うツールとモデル • 言語: Python、Ruby、TypeScript ◦ ディレクトリ名から言語を類推してくれるようだが明示 ツール モデル
備考 Claude Code Sonnet 4 プロプラン ($20/月) Gemini CLI gemini-2.5-pro Googleアカウント(無料) Cursor Agent GPT-5 Pro Plan ($20/月)
summleのソルバーを作ろう summle.net (2022) • 6個の数と四則演算でお題を作る • 数は一度使うともう使えない • 途中結果は正の整数に限る •
全部使わなくてもよい
summle.net • 6個の数と四則演算でお題を作る • 数は一度使うともう使えない • 途中結果は正の整数に限る • 全部使わなくてもよい ◦
→ 4手で解けたところ summleのソルバーを作ろう
プロンプト (1/2) # Summle 「Summle」というパズルを考えます。 - ゴールと 6つの種が与えられる。これらはすべて正の整数である。 - 式:
種から 2つの数を取り出し、四則演算 (+, -, *, /)を使って式を作る - 式の値が正の整数にならない式は無効である - 一度使った数は種から取り除く。式の値は新たに種に加える - 複数の式を作成し、ゴールを得ることが目的である - 解: 種から複数の式を経由してゴールを得られるまでの式の組 ゴールと種をコマンド行引数として与えたとき、総当たりによって解を得るプログラム を◦◦で作成してください。
プロンプト (2/2) 実行例: `summle_solver 786 3 4 12 12 75
100` 出力例: ``` 12 * 75 = 900 100 + 900 = 1000 1000 / 4 = 250 12 + 250 = 262 3 * 262 = 786 ```
やってみよう!
そのまま作らせる depth-first searchのアルゴリズムを作ってくる ちゃんと解ける! そして速い 見どころ • 被演算数をcombinationで取ってくるか2重ループにするか • 0除算を回避
• 桁数を合わせた表示 • 交換則をどう扱うか • 使った種の削除方法
最短手順で解いて、と直させる • 見どころ • 対応方針 ◦ breadth-first searchにする ◦ 全解を求めてから最短解を出力
◦ Interactive Deepening DFS (最大深さを増やしながらDFS) • 探索済み状態の管理方法 ◦ visited, seenなどの変数名にしてくれる
リハーサルで見た面白かった現象 • 全解を求めてからソートして最短解を出力しやがった ◦ BFSで解いて、と言うとちゃんとBFSにしてくれた • 4手で解ける問題を与えたら「この問題の最短解は5手です」 ◦ 間違って「すべての数を使う」を完了条件に入れていた •
haskellで大惨事 ◦ 最初からBFSで作ってくれて、おおっと思ったら、visitedの仕組みを 作ってなくて無限ループ ◦ 配列から指定した2つを削除するルーチンを自作してバグる ◦ デバッガなどを駆使して原因を究明してくれた ◦ 世間にプログラム例が(比較的)少ない言語は苦戦するのか?
まとめ • あっという間に生成してくれる • 最短手順に直した後、ちゃんとテストしてくれる • 言語の特徴はあまり反映されなかった? ◦ TSではちゃんとinterfaceも作ってくれる ◦
ライブラリはちゃんと使ってくれる ◦ 慣れない言語では大失敗するときも • モデルによる違いは多少あるものの、あまりわからない ◦ GPT-5は割と遅め