Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ノンプログラマのための ~アルゴリズムパズル プログラマのための数学パズル入門~
Search
ねも
November 21, 2023
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ノンプログラマのための ~アルゴリズムパズル プログラマのための数学パズル入門~
ねも
November 21, 2023
More Decks by ねも
See All by ねも
Compose Multiplatform for iOS開発でぶつかった壁
kohei_inoue
0
1.9k
ノンデザイナーズ・デザインブックを読んだので名刺作ってみた
kohei_inoue
0
100
Compose Multiplatform for iOSで音声再生しようぜ!!
kohei_inoue
0
390
夏 × Jetpack Compose
kohei_inoue
0
110
Compose for iOS for ZOZOTOWN
kohei_inoue
0
2k
Featured
See All Featured
Leo the Paperboy
mayatellez
10
2.4k
The Curse of the Amulet
leimatthew05
3
16k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Ethics towards AI in product and experience design
skipperchong
2
450
Abbi's Birthday
coloredviolet
4
11k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Optimizing for Happiness
mojombo
378
71k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Music & Morning Musume
bryan
48
7.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
What's in a price? How to price your products and services
michaelherold
247
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
Transcript
ノンプログラマに向けた アルゴリズムパズル プログラマのための数学パズル入門 X: https://twitter.com/nemo_855 GitHub: https://github.com/nemo-855 Qiita: https://qiita.com/nemo-855 Android
エンジニア Ҫ্ ߊฏ Ͷ
井上晃平 #times-nemo @nemo_855 Xでフォローお願いします🙏 • ねも • 株式会社ZOZO • Androidアプリエンジニア
• 友達の影響でめちゃくちゃ海外旅行に行きたい
None
第2章 第43問より n個の異なる整数と、間に不等号が挿入され一列に並んだn個の箱が与え られている。それらの不等号を満たすように数を配置するには?
第2章 第43問より n個の異なる整数と、間に不等号が挿入され一列に並んだn個の箱が与え られている。それらの不等号を満たすように数を配置するには? 🧐
😀 どゆこと?? 例えばn = 4 で 5, 3, 7, 4と◻<◻>◻<◻が与えられたとすると、、、
3 < 4 > 4 < 5, 4 < 7 > 3 < 5, 3 < 5 > 4 < 7, 4 < 5 > 3 < 7, は全て答えである
😀 もう少し実験してみる n = 4 で 5, 3, 7, 4と◻<◻<◻>◻が与えられたとすると、、、
3 < 4 < 7 > 5, 4 < 3 < 7 > 5, が答え n = 5 で 5, 3, 7, 4, 2と◻<◻<◻<◻>◻が与えられたとすると、、、 2 < 3 < 4 < 7 > 5, 2 < 4 < 3 < 7 > 5, が答え
😀 もう少し実験してみる n = 4 で 5, 3, 7, 4と◻<◻<◻>◻が与えられたとすると、、、
3 < 4 < 7 > 5, 4 < 3 < 7 > 5, が答え n = 5 で 5, 3, 7, 4, 2と◻<◻<◻<◻>◻が与えられたとすると、、、 2 < 3 < 4 < 7 > 5, 2 < 4 < 3 < 7 > 5, が答え
😀 なぜこうなるのか パターンA: n = 4 で 5, 3, 7,
4と◻<◻<◻>◻が与えられたとすると、、、 パターンB: n = 5 で 5, 3, 7, 4, 2と◻<◻<◻<◻>◻が与えられたとすると、、、 パターンBの点線部分を隠すと2つは同じ問題!!
😀 この結果からわかること この問題は、 一番左の不等号が < であるときは左端の◻ < と与整数の最小値、 一番左の不等号が >
であるときは左端の◻ > と与整数の最大値、 を取り除いた部分問題と同一視して考えることができる
😀 答え 左端から順に、 ◻ < ならば現時点の最小値を入れる、 ◻ > ならば現時点の最大値を入れる、 という操作をn-1回繰り返せば必ず答えを一つ見つけ出せる
💻 紹介されているアルゴリズム 大きいものを小さくする ◦ 縮小統治法 ◦ 分割統治法 小さなものを大きくしていく ◦ 貪欲アプローチ
部分問題の解を再利用する ◦ 動的計画法 全部探す ◦ 全数探索 ◦ バックトラック あたりをつけてから考える ◦ 逐次改善法 言い換える ◦ 変換統治法
💻 紹介されているアルゴリズム 大きいものを小さくする ◦ 縮小統治法 ◦ 分割統治法 小さなものを大きくしていく ◦ 貪欲アプローチ
部分問題の解を再利用する ◦ 動的計画法 全部探す ◦ 全数探索 ◦ バックトラック あたりをつけてから考える ◦ 逐次改善法 言い換える ◦ 変換統治法
😀 この本の読み方 1章: チュートリアル(30ページほど) 2章: クイズ集(初級50問、中級60問、上級40問) 3章: ヒント 4章: 解答解説
のようになっている。サクッとチュートリアルを 読んだ後は、 暇な時にクイズを解く! 考えてもわからなかったらヒントを見る! それでもわからなかったら解説を読む! → 面白い!!
プログラミングはできなくとも、 アルゴリズムを使ってクイズを解いていくことができる 🎊 エンジニアでない人にこそ読んで見て欲しい!
📕 参考文献 O'Reilly Japan - アルゴリズムパズル (oreilly.co.jp)
終わり!