プログラマを育てる脳トレパズル 遊んでおぼえる Python プログラミング & アルゴリズム

プログラマヲソダテルノウトレパズル アソンデオボエルパイソンプログラミングアンドアルゴリズム

プログラマを育てる脳トレパズル 遊んでおぼえる Python プログラミング & アルゴリズムの表紙
プログラミング
著者:
増井 敏克(マスイ トシカツ)
出版社:
翔泳社
出版日:
2020年12月22日頃
ISBN:
9784798163826
在庫:
在庫あり
3.5(2 件 / 楽天ブックス)
Pythonアルゴリズム

なぜ注目されているか

総合1278位 ↑ 2 ランクアップ

書籍紹介

最初から最後まで、遊びっぱなし。
でも、「使えるコード」が書けるようになります。

【本書の特長】

・イチから Python のプログラミングとアルゴリズムがわかる
・ゲームをつくりながら基本を理解できる

・パズル問題で実践的なコードの書き方が身につく

・環境構築不要の Google Colaboratory ですぐ始められる

・パズル問題の解答は Python に加え、JavaScript と Ruby のコードも提供

【内容紹介】
楽しくなきゃ、プログラミングじゃない!

プログラミングを学ぶとき、
言語の文法などを勉強するのは退屈なものです。

何かつくりたいものがあり、
それを自分の手でつくることが

達成感となり、楽しさにつながります。

本書でも一般的なプログラミングで
必要な要素がひと通り登場しますが、

簡単なゲームをつくりながら基本をおぼえます。

そして、だんだん難しくなるパズル問題を通じて、
アルゴリズムを考慮した「使えるコード」が

身につくようになっています。

プログラミングの楽しさを見つけるきっかけになる、
そんな本を目指しました。

アタマをやわらかくして、ぜひ挑戦してみてください。

★付属データ★
・本書に登場するソースコード例

・パズル問題の解答ソースコード (Python)

・○×ゲームでコンピュータ対戦をできるようにする追加解説

★読者特典★
・パズル問題の解答ソースコード (Ruby / JavaScript)

【目次】
Part 1 ○×ゲームでおぼえるプログラミングの基本

Part 2 迷路ゲームでおぼえるアルゴリズムの基本

Part 3 パズルを解きながらコードの書き方を工夫してみよう

【パズル問題 (一部)】
・ボウリングの点数を計算しよう

・素因数分解してみよう

・円テーブルで席替え

・同じ数字でサンドイッチ

・カウントゲームで先手が勝つのは何通り?

・崩れないように箱を積み上げよう

・カエル跳びゲームの移動回数は?

・効率のよいファミリーレストラン

・エラトステネスのふるいで素数を求めてみよう

技書の森解説

文法の勉強を退屈に感じて手が止まった人に向けて、簡単なゲームとパズルを入口に Python のプログラミングとアルゴリズムを一から学べるよう組み立てた入門書が『プログラマを育てる脳トレパズル 遊んでおぼえる Python プログラミング & アルゴリズム』です。著者は増井 敏克、版元は翔泳社で、書店発売日は 2020 年 12 月 22 日です。版元の紹介文は「最初から最後まで、遊びっぱなし。」と始まり、簡単なゲームを作りながら基本を覚え、だんだん難しくなるパズル問題を通じてアルゴリズムを考慮した「使えるコード」を身につける流れを示しています。

3 部構成、○×ゲームと迷路からパズル 20 問へ

本書は 3 部に分かれます。Part 1「○×ゲームでおぼえるプログラミングの基本」は、何をつくるかの整理から盤面づくり、対戦できるようにするところまでを進めます。Part 2「迷路ゲームでおぼえるアルゴリズムの基本」は、「木構造」とアルゴリズムの節を起点に、迷路の探索とその高速化へ進みます。Part 1 の末尾に練習問題「星座を判定しよう」の出題編、Part 2 の末尾に解答編が置かれています。Part 3「パズルを解きながらコードの書き方を工夫してみよう」は Q01「ボウリングの点数を計算しよう」から Q20「2048 ゲームの組み合わせは何通り?」までの 20 問で、レベル 1「簡単な問題を解いてみよう」、レベル 2「処理時間を短くするために工夫してみよう」、レベル 3「目線を変えてアプローチしてみよう」の 3 段に分かれます。巻末には本書で使った関数やメソッド、モジュールをまとめた付録が付きます。

探索と処理時間、パズルの裏にある技術背景

迷路の探索は、分かれ道ごとに枝分かれする道筋を 木構造 として捉えると見通しがよくなります。行き止まりまで 1 本の道を進んでから戻る深さ優先と、近い分岐から順に広げていく幅優先は、ゲームの盤面の先読みから経路探索まで広く使われる基本の型です。同じ場所を何度も調べない、見込みのない枝を早めに打ち切るといった工夫は、そのまま処理の速さに直結します。

レベル 2 の題が示すとおり、パズルでは答えを出すことに加えて、答えが出るまでの時間を縮めることも課題になります。組み合わせを全部数え上げる素直な方法は、入力が少し大きくなるだけで調べる数が爆発的に増えることがあり、アルゴリズムの良し悪しは 計算量 の違いとして表れます。一般に、「何通り」を数える問題では一度求めた途中の結果を再利用するメモ化が定番の手筋です。Q12 で扱うエラトステネスのふるいも、数を 1 つずつ割って確かめる方法に比べ、素数の倍数を順に消していくことで大量の素数をまとめて求められる古典的な例です。

Google Colaboratory で始められる環境と 3 言語の解答

版元の紹介によれば、実行環境には環境構築の要らない Google Colaboratory を使います。ブラウザー上でノートブック形式のコードを動かせます。付属データとして本書に登場するソースコード例、パズル問題の解答ソースコード (Python)、○×ゲームでコンピューター対戦をできるようにする追加解説が用意され、読者特典としてパズル問題の解答ソースコードの Ruby 版と JavaScript 版が提供されます。

版元が挙げる特長と、目次の範囲

版元は本書の特長の最初に、Python のプログラミングとアルゴリズムが一からわかることを挙げています。一方で、目次はゲームとパズルの題材で組まれており、Web アプリケーションやデータ分析など特定の用途のライブラリを学ぶ本ではありません。

この本に興味がある方におすすめ

関連する本

増井 敏克 の他の書籍

関連記事

関連用語

共有: