【2023最新】「アルゴリズム」のおすすめ本!人気ランキング

この記事では、「アルゴリズム」のおすすめ本をランキング形式で紹介していきます。インターネット上の口コミや評判をベースに集計し独自のスコアでランク付けしています。

問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)

大槻 兼資
講談社
おすすめ度
100
紹介文
入門書を標榜しながら、AtCoderの例題、C++のコードが充実。入門書であり実践書でもある、生涯役立つテキストを目指した ◆2万部突破のベストセラー!みんな読んでる!◆ ◆「 ITエンジニア本大賞2021 特別賞」受賞◆ 競技プログラミング経験が豊富な著者が、「アルゴリズムを自分の道具としたい」という読者に向けて執筆。入門書を標榜しながら、AtCoderの例題、C++のコードが充実。入門書であり実践書でもある、生涯役立つテキストを目指した。 【推薦の言葉】 プログラムが「書ける」ことと、効率の良い結果を得ることには大分ギャップがある。本書は、どのようにすれば効率のよい結果が得られるか? すなわちどのようなアルゴリズムを採用すればよいか? という点に対して、幅広くかつ明快に解説している。 また本書は、アルゴリズム初心者に対して、アルゴリズムへの興味を惹かれるように記述されている。アルゴリズム上級者への初めの一歩には最適であろう。 ――河原林健一(国立情報学研究所副所長) 【全体を通して、アルゴリズムの設計技法を重視した構成】 まず、1、2章でアルゴリズムと計算量について概観します。そして、3~7章が、早くも本書のメインパートといえる部分であり、「アルゴリズムの設計技法」について詳しく解説します。これらの設計技法に関する話題は、多くの書籍では、最後の方で簡単に説明しています。しかし本書は、現実世界の問題を解決するための実践的なアルゴリズム設計技法の鍛錬を目指しています。そこで、アルゴリズム設計技法について前半で詳しく解説する構成としました。そして、これらの設計技法が後半の章でも随所に使われていくことを示していきます。 その後、8~11章では、設計したアルゴリズムを効果的に実現するうえで重要となるデータ構造を解説します。データ構造について学ぶことで、アルゴリズムの計算量を改善したり、また、C++やPythonなどで提供されている標準ライブラリの仕組みを理解して、それらを有効に活用したりすることができるようになります。 そしていったん、12章でソートアルゴリズムについての話題を挟んだ後に、13~16章でグラフアルゴリズムについて解説します。グラフは、非常に強力な数理科学的ツールです。多くの問題は、グラフに関する問題として定式化することで、見通しよく扱うことができるようになります。また、グラフアルゴリズムを設計するとき、3~7章で学ぶ設計技法や、8~11章で学ぶデータ構造が随所で活躍します。 最後に、17章で PとNPに関する話題を解説し、世の中には「効率的に解くアルゴリズムを設計することができそうにない難問」が多数あることを見ます。18章で、これらの難問に取り組むための方法論をまとめます。ここでも、動的計画法 (5章) や貪欲法 (7章) といった設計技法が活躍します。 1章 アルゴリズムとは 2章 計算量とオーダー記法 3章 設計技法(1):全探索 4章 設計技法(2):再帰と分割統治法 5章 設計技法(3):動的計画法 6章 設計技法(4):二分探索法 7章 設計技法(5):貪欲法 8章 データ構造(1):配列、連結リスト、ハッシュテーブル 9章 データ構造(2):スタックとキュー 10章 データ構造(3):グラフと木 11章 データ構造(4):Union-Find 12章 ソート 13章 グラフ(1):グラフ探索 14章 グラフ(2):最短路問題 15章 グラフ(3):最小全域木問題 16章 グラフ(4):ネットワークフロー 17章 PとNP 18章 難問対策

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム

石田 保輝
翔泳社
おすすめ度
98
紹介文
基本的な26のアルゴリズムをまるごと図解。50万人が学んだ大人気アプリが待望の書籍化! イメージがつかめるから、面白い! アルゴリズムをまるごとイラストにしました 【本書のポイント】 ・基本的な26のアルゴリズム+7つのデータ構造をすべてイラストで解説 ・誌面がフルカラーなので、図の「動き」がわかりやすい ・各アルゴリズムの考え方や計算効率、問題点もフォロー ・50万人が学んだ大人気アプリを書籍化 アルゴリズムはどんな言語でプログラムを書くにしても不可欠ですが、 現場で教わることはめったになく、かといって自分で学ぶには難しいものです。 本書は、アルゴリズムを独学する人のために作りました。 はじめて学ぶときにはイメージしやすく、 復習するときには思い出しやすくなるよう、 基本的な26のアルゴリズム+7つのデータ構造を すべてイラストにしています。 ソートやグラフなどの「動き」を図で追うことで、 考え方や仕組みを理解する手助けをします。 よいプログラムを書くために知っておかなきゃいけない アルゴリズムの世界を、楽しく学びましょう。 ●書籍のもとになったアプリ「アルゴリズム図鑑」の実績 ・50万ダウンロード達成(2017年4月時点) ・2016年 App Store「今年のベストApp 10選」に選出 【目次(抜粋)】 ●序章 アルゴリズムの基本 ●第1章 データ構造 ・リスト ・配列 ・スタック など ●第2章 ソート ・バブルソート ・選択ソート ・マージソート など ●第3章 配列の探索 ・線形探索 ・2分探索 ●第4章 グラフ探索 ・幅優先探索 ・ベルマン-フォード法 ・A* など ●第5章 セキュリティのアルゴリズム ・暗号の基本 ・公開鍵暗号方式 ・デジタル署名 など ●第6章 クラスタリング ・k-means法 など ●第7章 その他のアルゴリズム ・ユークリッドの互除法 ・ページランク など ●序章 アルゴリズムの基本 0-1 アルゴリズムとは? 0-2 計算時間の測り方 ●第1章 データ構造 1-1 データ構造とは? 1-2 リスト 1-3 配列 1-4 スタック 1-5 キュー 1-6 ハッシュテーブル 1-7 ヒープ 1-8 2分探索木 ●第2章 ソート 2-1 ソートとは? 2-2 バブルソート 2-3 選択ソート 2-4 挿入ソート 2-5 ヒープソート 2-6 マージソート 2-7 クイックソート ●第3章 配列の探索 3-1 線形探索 3-2 2分探索 ●第4章 グラフ探索 4-1 グラフとは? 4-2 幅優先探索 4-3 深さ優先探索 4-4 ベルマン-フォード法 4-5 ダイクストラ法 4-6 A* ●第5章 セキュリティのアルゴリズム 5-1 セキュリティとアルゴリズム 5-2 暗号の基本 5-3 ハッシュ関数 5-4 共通鍵暗号方式 5-5 公開鍵暗号方式 5-6 ハイブリッド暗号方式 5-7 ディフィ-ヘルマン鍵交換法 5-8 メッセージ認証コード 5-9 デジタル署名 5-10 デジタル証明書 ●第6章 クラスタリング 6-1 クラスタリングとは? 6-2 k-means法 ●第7章 その他のアルゴリズム 7-1 ユークリッドの互除法 7-2 素数判定法 7-3 ページランク 7-4 ハノイの塔

アルゴリズムを、はじめよう

伊藤 静香
インプレス
おすすめ度
95
紹介文
プログラミングのかなめ、「アルゴリズム」の基礎がスラスラわかる一冊。 アルゴリズムの基本 変数と配列 アルゴリズムに慣れよう 線形探索法(リニアサーチ) 二分探索法(バイナリサーチ) ハッシュ探索法 単純選択法(選択ソート) 単純交換法(バブルソート) 単純挿入法(挿入ソート) クイックソート〔ほか〕

データ構造とアルゴリズム

杉原 厚吉
共立出版
おすすめ度
82
紹介文
ソフトウェアを設計するための基礎を解説  ソフトウェアを設計するための基礎となるデータ構造とアルゴリズムについて,一般の理工系学部1~3年生を対象として,高校の数学基礎知識のみを前提とした易しい標準的なテキストまたは入門独習書です。半期授業・1年授業のどちらにも柔軟に対応できるように工夫されており,各章は1回の授業で扱える分量にまとめてあります。1~4章までは必ず学ぶべき基本事項で,そのあとは講義などで使用される方や独習者の時間と興味応じて自由に選択が可能です。そのための後に,各章間の関係図・学習順序が示されているので,それぞれの事情に応じて学習するべき章を選ぶのに参考となるでしょう。  解説には図版を多用し,より深く確実な理解が得られるように配慮されています。また,すべての章末には演習問題が配置されており,巻末に略解が示されています。さらに,「カーペンターズ・アルゴリズム」というタイトルの囲み記事を設け,新しい計算原理を考えるための柔軟な発想を刺激する機会も作られています。 第1章 アルゴリズムと計算量 1.1 アルゴリズムとは 1.2 計算量 第2章 リスト構造 2.1 ポインタの効用 2.2 リスト構造 第3章 ヒープ 3.1 2進木の素朴な利用 3.2 ヒープ 第4章 ハッシュ法とバケット法 4.1 検索問題と2分探索 4.2 ハッシュ法 4.3 バケット法 4.4 バケットソート 第5章 再帰呼出しと分割統治 5.1 再帰呼出し 5.2 分割統治 第6章 グラフ探索 6.1 グラフとグラフ探索 6.2 探索の基本形 6.3 キューと横型探索 6.4 スタックと縦型探索 6.5 探索のためのデータ構造 第7章 最短路問題 7.1 最短路の探索 第8章 動的計画法 8.1 最適性の原理と動的計画法 8.2 弾性マッチング 第9章 縮小法 9.1 問題の規模縮小化 9.2 定順位要素の抽出 9.3 2次元線形計画法 第10章 最大流と割当て問題 10.1 ネットワークと流れ 10.2 最大流の逐次構成法 10.3 最大マッチング 10.4 割当て問題 第11章 ボロノイ図とドロネー図 11.1 ボロノイ図 11.2 最近点探索 11.3 ドロネー図 11.4 最近点対と最小全域木 第12章 3次元凸包とドロネー図 12.1 3次元凸包の分割統治構成算法 12.2 ドロネー図の構成算法 12.3 最遠点ボロノイ図 12.4 最小包含円と真円度 第13章 平面走査法 13.1 交点列挙問題 13.2 走査直線を用いた平面走査 13.3 2-3木―平面走査法のためのデータ構造 第14章 問題の難しさの測り方 14.1 PとNP 14.2 NP完全 14.3 NP困難 第15章 難問対策 15.1 問題の緩和 15.2 分枝限定法の例 15.3 局所改良 第16章 難問を利用した情報保護 16.1 秘密鍵暗号と公開鍵暗号 16.2 ナップザック問題 16.3 ナップザック問題を利用した公開鍵暗号系 演習問題の略解 参考図書 索引

問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本

米田 優峻
技術評論社
おすすめ度
78
紹介文
アルゴリズムは、プログラミングを用いて問題を解決していくには欠かせない大切な道具です。一方、アルゴリズムを理解し、そして応用できるようになるためには、ある程度の数学的知識と数学的考察力も大切です。 本書では、中学レベル~大学教養レベルの数学的知識のうちアルゴリズム学習に必要なものについて扱うとともに、有名なアルゴリズムと典型的な数学的考察について丁寧に解説します。さらに、知識をしっかり身に付けるための例題・演習問題が全200問掲載されています。 第1章 アルゴリズムと数学の密接なかかわり 第2章 アルゴリズムのための数学の基本知識 第3章 基本的なアルゴリズム 第4章 発展的なアルゴリズム 第5章 問題解決のための数学的考察 最終確認問題

Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量

増井 敏克
翔泳社
おすすめ度
75
紹介文
初心者にも扱いやすいプログラミング言語「Python」を使用して、アルゴリズムの基礎・考え方を学ぶ入門書 時代が変わっても 変わらないアルゴリズムから考え方を学ぼう 本書は、初心者にも扱いやすいプログラミング言語「Python」を使用して、 アルゴリズムの基礎・考え方を学ぶ入門書です。Pythonがはじめてという方の ために、第1章ではPythonの基本とデータ構造について解説しています。 本書では、プログラミング入門者が最低限知っておきたいアルゴリズムの 基礎と考え方に加えて、アルゴリズムの定石とその計算量について、具体的 なサンプルコードと動作イメージを交えて丁寧に解説していきます。 【こんな方におすすめ】 ・アルゴリズムをゼロから学びたい ・Pythonでプログラミングを学んでいるけれど何から手をつけていいのかわからない ・過去にアルゴリズムを学ぼうと思ったけれどPythonの資料が少なかった ・基本情報技術者試験でPythonが取り入れられるので勉強したい 【本書の特徴】 ・Pythonの基本とアルゴリズムの基礎を一冊で学べる ・具体的なサンプルコードと動作イメージ(フローチャート)を交えて解説 ・自分で書いて実行して動作を試しながら学習できる ・アルゴリズムの使い方や考え方だけでなく、アルゴリズムの計算量について の理解も深まる 【扱うアルゴリズム】 FizzBuzz|フィボナッチ数列|線形探索|二分探索|幅優先探索| 深さ優先探索|番兵|8クイーン問題|n-クイーン問題|ハノイの塔| ミニマックス法|選択ソート|挿入ソート|バブルソート|ヒープソート| マージソート|クイックソート|最短経路問題|ベルマン・フォード法| ダイクストラ法|A*アルゴリズム|文字列探索の力任せ法|Boyer-Moore法| 逆ポーランド記法|ユークリッドの互除法 【章構成】 ■第1章 Pythonの基本とデータ構造を知る ■第2章 基本的なプログラムを作ってみる ■第3章 計算量について学ぶ ■第4章 いろいろな探索方法を学ぶ ■第5章 データの並べ替えにかかる時間を比べる ■第6章 実務に役立つアルゴリズムを知る ■Appendix Pythonのインストール 第1章 Pythonの基本とデータ構造を知る 1.1 プログラミング言語の選択 1.2 プログラミング言語Pythonの概要 1.3 四則演算と優先順位 1.4 変数と代入、リスト、タプル 1.5 文字と文字列 1.6 条件分岐と繰り返し 1.7 リスト内包表記 1.8 関数とクラス 第2章 基本的なプログラムを作ってみる 2.1 フローチャートを描く 2.2 FizzBuzzを実装する 2.3 自動販売機でお釣りを計算する 2.4 基数を変換する 2.5 素数を判定する 2.6 フィボナッチ数列を作る 第3章 計算量について学ぶ 3.1 計算コストと実行時間、時間計算量 3.2 データ構造による計算量の違い 3.3 アルゴリズムの計算量と問題の計算量 第4章 いろいろな探索方法を学ぶ 4.1 線形探索 4.2 二分探索 4.3 木構造での探索 4.4 さまざまな例を実装する 第5章 データの並べ替えにかかる時間を比べる 5.1 身近な場面でも使われる「並べ替え」とは? 5.2 選択ソート 5.3 挿入ソート 5.4 バブルソート 5.5 ヒープソート 5.6 マージソート 5.7 クイックソート 5.8 処理速度を比較する 第6章 実務に役立つアルゴリズムを知る 6.1 最短経路問題とは? 6.2 ベルマン・フォード法 6.3 ダイクストラ法 6.4 A*アルゴリズム 6.5 文字列探索の力任せ法 6.6 Boyer-Moore法 6.7 逆ポーランド記法 6.8 ユークリッドの互除法 付録 Pythonのインストール A.1 Pythonの処理系を知る A.2 AnacondaでPythonをインストールする A.3 複数のバージョンのPythonを切り替える A.4 パッケージのインストールと削除 A.5 インストールがエラーになった場合

Pythonで学ぶアルゴリズムの教科書 一生モノの知識と技術を身につける

廣瀬豪
インプレス
おすすめ度
67
紹介文
Pythonを用い、ITエンジニアが身につけたい王道アルゴリズムを手を動かしながら学べる入門書です。スタック、キュー、リスト、木、グラフなどのデータ構造から、サーチ、ソート、ハッシュといった王道アルゴリズムを厳選しつつ、ユークリッドの互除法、最短経路問題、フラクタル図形の描画などワンランク上の知識・技術まで網羅。サンプルは手入力しやすい短めのプログラムを108個用意しています。資格&就職試験に挑む方、大学や専門学校で情報処理を学ぶ方など、プログラミングの力を伸ばしたいすべての方におすすめです。

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造

渡部 有隆
マイナビ
おすすめ度
67
紹介文
プロコンで勝つための必須テクニック「アルゴリズム」と「データ構造」の基礎をマスター! 1 準備編-プロコンで勝つための勉強法(オンラインジャッジを活用しよう) 2 基礎編-プロコンのためのアルゴリズムとデータ構造(アルゴリズムと計算量 初等的整列 データ構造 探索 再帰・分割統治法 高等的整列 木 二分探索木 ヒープ 動的計画法 グラフ 重み付きグラフ) 3 応用編-プロコン必携ライブラリ(高度なデータ構造 高度なグラフアルゴリズム 計算幾何学 動的計画法 整数論 ヒューリスティック探索)

アルゴリズムイントロダクション 第3版 総合版 (世界標準MIT教科書)

コルメン,T.
近代科学社
おすすめ度
67
紹介文
原著は世界標準教科書,MITでのアルゴリズム論の教育用テキスト第3版.本書は第1~35章,付録をまとめた完訳総合版である. 原著は,計算機科学の基礎分野で世界的に著名な4人の専門家がMITでの教育用に著した計算機アルゴリズム論の包括的テキストであり,その第3版.前版までで既にアルゴリズムとデータ構造に関する世界標準教科書としての地位を確立しているが,より良い教科書を目指して再び全面的な記述の見直しがなされ,それを基に新たな章や節の追加なども含めて,大幅な改訂がなされている.  単にアルゴリズムをわかりやすく解説するだけでなく,最終的なアルゴリズム設計に至るまでに,どのような概念が必要で,それがどのように解析に裏打ちされているのかを科学的に詳述している.  さらに各節末には練習問題(全957題)が,また章末にも多様なレベルの問題が多数配置されており(全158題),学部や大学院の講義用教科書として,また技術系専門家のハンドブックあるいはアルゴリズム大事典としても活用できる.  本書は,原著の第1~35章,および付録A~Dまでの完訳総合版である.また巻末の索引も圧巻で,和(英)‐英(和)という構成により,「数理用語辞典」としてもまことに有用である. I 基礎:1.計算におけるアルゴリズムの役割,2.さあ,始めよう,3.関数の増加,4.分割統治,5.確率的解析と乱択アルゴリズム; II ソートと順序統計量;6.ヒープソート,7.クイックソート,8.線形時間ソート,9.中央値と順序統計量; III データ構造:10.基本データ構造,11.ハッシュ表,12.2分探索木,13.2色木,14.データ構造の補強; IV 高度な設計と解析の手法:15.動的計画法,16.貪欲アルゴリズム,17.ならし解析 V 高度なデータ構造:18.B木,19.フィボナッチヒープ,20.Van Emde Boas木,21.互いに素な集合族のためのデータ構造 VI グラフアルゴリズム:22.基本的グラフアルゴリズム,23.最小全域木,24.単一始点最短路問題,25.全点対最短路,26.最大フロー VII精選トピックス:27.マルチスレッドアルゴリズム,28.行列演算,29.線形計画法,30.多項式とFFT,31.整数論的アルゴリズム,32.文字列照合,33.計算幾何学,34.NP完全性,35.近似アルゴリズム; 付録 数学的基礎:A.和,B.集合など,C.数え上げと確率,D.行列 索引:記号,手続き(擬似コード),和(英),英(和)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~

秋葉拓哉
マイナビ
おすすめ度
67
紹介文
プログラミングコンテストの問題を通してアルゴリズムのしくみや考え方を楽しく習得。世界トップレベルの著者たちがコンテストで得た知識やノウハウを難易度別にまとめました。現役プログラマだけでなくプログラマを目指している方にもぜひ読んでいたただきたい1冊。 1 いざチャレンジ!でもその前に-準備編(プログラミングコンテストって何? どんなコンテストがあるの? ほか) 2 基礎からスタート!-初級編(すべての基本"全探索" 猪突猛進!"貪欲法" ほか) 3 ここで差がつく!-中級編(値の検索だけじゃない!"二分探索" 厳選!頻出テクニック ほか) 4 さらに極める!-上級編(より複雑な数学的問題 ゲームの必勝法を編み出せ! ほか)

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

斎藤 康毅
オライリージャパン
おすすめ度
67
紹介文
ディープラーニングの本格的な入門書。外部のライブラリに頼らずPython 3によってゼロからディープラーニングを作成できる。 実際にシステムを作りながらディープラーニングを学ぶ! ディープラーニングの本格的な入門書。外部のライブラリに頼らずに、Python 3によってゼロからディープラーニングを作ることで、ディープラーニングの原理を楽しく学びます。ディープラーニングやニューラルネットワークの基礎だけでなく、誤差逆伝播法や畳み込みニューラルネットワークなども実装レベルで理解できます。ハイパーパラメータの決め方や重みの初期値といった実践的なテクニック、Batch NormalizationやDropout、Adamといった最近のトレンド、自動運転や画像生成、強化学習などの応用例、さらには、なぜディープラーニングは優れているのか? なぜ層を深くすると認識精度がよくなるのか? といった“Why”に関する問題も取り上げます。

戦略ゲームAI 解体新書 ストラテジー&シミュレーションゲームから学ぶ最先端アルゴリズム

三宅 陽一郎
翔泳社
おすすめ度
67
紹介文
三宅陽一郎氏書き下ろし!戦略ゲームAIのアルゴリズムの仕組みに迫る! ゲーム開発者、AIエンジニア、 すべての意思決定に悩んでいる方に必見! 戦略ゲームAIの仕組み、戦略的意思決定プロセスを紐解くバイブル書 【戦略ゲームAIについて】 戦略ゲームの元にとなるストラテジー&シミュレーションゲームはボードゲームを発端として、発展してきました。 近年では、スマートフォン向けのソーシャルゲームを筆頭に、数多くのゲームでストラテジー&シミュレーション要素が取り入れられており、 いまやゲーム開発において戦略ゲームAIは避けて通れない非常に重要な要素になっています。 またゲーム開発のみならず、一般の人工知能開発、複雑な意思決定のプロセス形成において、その技術は非常に注目されています。 【本書の特徴】 ストラテジー&シミュレーションゲームに利用されている戦略ゲームAI技術について、 国内や海外の事例を交え、その仕組みを丁寧に解説した書籍です。 基本的な技術の概論の解説から始まり、 著者が注目するシミュレーション&ストラテジーゲームAIのアルゴリズムについて、 ビジュアルを交えながら解説します。 【読者対象】 ・ゲーム開発者 ・AI開発者 ・意思決定に興味を持つ方 【本書のゴール】 戦略ゲームAIの仕組みを学ぶことができる 【プロフィール】 ゲームAI研究者・開発者。 京都大学で数学を専攻、大阪大学(物理学修士)、東京大学工学系研究科博士課程(単位取得満期退学)。 博士(工学、東京大学)。2004年よりデジタルゲームにおける人工知能の開発・研究に従事。 立教大学大学院人工知能科学研究科特任教授、九州大学客員教授、東京大学客員研究員。 国際ゲーム開発者協会日本ゲームAI専門部会設立(チェア)、日本デジタルゲーム学会理事、 芸術科学会理事、人工知能学会理事・シニア編集委員、情報処理学会ゲーム情報学研究会運営委員。 ■第1部 基本篇 第1章 ストラテジーゲームとは 1.1 ストラテジーゲームにおける人工知能技術 1.2 ターン制と想像力 第2章 ストラテジーゲームと人工知能 2.1 ストラテジーゲームの定義 2.2 ストラテジーゲームの3つの分類 2.3 ストラテジーゲームにおいて人工知能がなぜ必要か? 2.4 ストラテジーゲームにおける時間と空間 2.5 ストラテジーゲームの人工知能の例題 2.6 「ストラテジーゲームと人工知能」まとめ 第3章 ゲームAIの基礎事項 3.1 ゲームAI小史 3.2 3つのAIの役割とスケールとプレイヤー体験 3.3 メタAI技術 3.4 キャラクターAI 3.5 スパーシャルAI 3.6 影響マップ 3.7 知能方程式 3.8 「ゲームAIの基礎事項」まとめ ■第2部 技術篇 第4章 指揮官としての人工知能―「メンバーやユニットを指揮するゲーム」 4.1 チーム・空間・時間の階層化 4.2 チームの階層化 4.3 空間の階層化 4.4 時間の階層化 4.5 コンストラクション 4.6 スカウティング 4.7 パス検索、群制御、ステアリング 4.8 時間あたりのコマンド数 4.9 グループ・マネージメント 4.10 ポートフォリオ 4.11 ニューラルネットワークによる学習 4.12 「指揮官としての人工知能」まとめ 第5章 プレイヤーと共創する人工知能―「世界シミュレーション」 5.1 マップの下の多層構造 5.2 エージェント・シミュレーション 5.3 スクリプティング 5.4 地形解析 5.5 地形解析の実例 5.6 地形生成 5.7 テクノロジーツリー 5.8 「プレイヤーと共創する人工知能」まとめ 第6章 学習し、成長する人工知能―「育成系ストラテジーゲーム」 6.1 複数の役割のエージェントを組み合わせる 6.2 遺伝的アルゴリズムによるバランス調整 6.3 遺伝的アルゴリズムによるユーザー・マッチング 6.4 ニューロエヴォリューション―キャラクターを進化させる― 6.5 ニューラルネットワーク―キャラクターを学習させる― 6.6 パーセプトロンと決定木 6.7 プランニング・アルゴリズム 6.8 「学習し、成長する人工知能」まとめ ■第3部 発展篇 第7章 ストラテジーゲームの学術的研究 7.1 ストラテジーゲームの人工知能研究の歴史 7.2 ストラテジーゲームの研究環境 7.3 アーキテクチャの研究~『スタークラフト』研究 7.4 ディープラーニングの応用1~『スタークラフト2』の研究 7.5 ディープラーニングの応用2~『Dota 2』のOpenAIFive 7.6 モンテカルロ木探索の応用 7.7 遺伝的プログラミングによるゲーム自動生成 7.8 『Capture the Flag』の戦術学習 7.9 「OpenAI」におけるマルチエージェント自動カリキュラム学習 7.10 「ストラテジーゲームの学術的研究」まとめ 第8章 ストラテジーゲームの人工知能の一般理論 8.1 ストラテジーゲームの再定義 8.2 時系列という考え方 8.3 時間階層化と空間階層化 8.4 アテンションとシミュレーション 8.5 アテンションの向け方とフレームの構成 8.6 上位の人工知能と下位の人工知能 8.7 時空間の把握 8.8 行動可能性、アフォーダンス 8.9 行動の効果 8.10 基本概念のまとめ 8.11 スマートシティへの応用 8.12 「ストラテジーゲームの人工知能の一般理論」まとめ

データマイニング入門―Rで学ぶ最新データ解析―

豊田 秀樹
東京図書
おすすめ度
66
紹介文
第1章 データマイニングとは 第2章 ニューラルネット 第3章 人工知能エンジンと決定木 第4章 自己組織化マップ 第5章 連関規則 第6章 クラスター分析 第7章 ベイジアンネットワーク 第8章 サポートベクターマシン 第9章 潜在意味解析

Python1年生 第2版 体験してわかる!会話でまなべる!プログラミングのしくみ

森 巧尚
翔泳社
おすすめ度
66
紹介文
最新のPython、ライブラリおよびWindoes 11に対応した「Python1年生」の第2版の登場! おかげさまで8万部突破! 読者の声に応えて 第2版の登場 【本書の概要】 Web開発やデータ分析などの分野で、ユーザー数が増えてきているPython。 最近では、Pythonに触れる方も多くなってきています。 本書はそうしたPython初心者の方に向けて、 ヤギ博士とフタバちゃんと一緒に 基本的なプログラムの作成から、面白い人工知能アプリの作成までを体験。 対話形式でプログラミングのしくみを学ぶことができます。 【対象読者】 Pythonについて何も知らないプログラミング超初心者 【本書のポイント】 ・対話形式で解説し、イラストを交えながら、基礎知識を解説します。 ・初めての方でも安心して学習できるよう基本文法もしっかり解説します。 ・平易なサンプルを用意していますので、安心してプログラムを体験できます。 ・2022年時点の最新の環境(Windows 11、Python 3.10など)に対応しています。 ・エラーでつまづいた場合の対応方法を巻末に掲載しています。 【目次】 第1章 Pythonで何ができるの? 第2章 Pythonを触ってみよう 第3章 プログラムの基本を知ろう 第4章 アプリを作ってみよう 第5章 人工知能くんと遊んでみよう 【著者プロフィール】 森 巧尚(もり・よしなお) 『マイコンBASICマガジン』(電波新聞社)の時代からゲームを作り続けて現在はコンテンツ制作や執筆活動を行い関西学院大学非常勤講師、 関西学院高等部非常勤講師、成安造形大学非常勤講師、大阪芸術大学非常勤講師、プログラミングスクールコプリ講師などを行っている。 近著に、『Python1年生』『Python2年生 スクレイピングのしくみ』『Python2年生 データ分析のしくみ』『Python3年生 機械学習のしくみ』 『Java1年生』『動かして学ぶ!Vue.js開発入門』『Python自動化簡単レシピ』(いずれも翔泳社)、 『ゲーム作りで楽しく学ぶ Pythonのきほん』『楽しく学ぶ Unity2D超入門講座』『楽しく学ぶ Unity3D超入門講座』(いずれもマイナビ出版)などがある。 第1章 Pythonで何ができるの? 第2章 Pythonを触ってみよう 第3章 プログラムの基本を知ろう 第4章 アプリを作ってみよう 第5章 人工知能くんと遊んでみよう

アルゴリズム思考術:問題解決の最強ツール (ハヤカワ・ノンフィクション文庫)

ブライアン クリスチャン
早川書房
おすすめ度
66
紹介文
問題解決の最強ツール「超」整理法もこれだった! ビジネスから日常生活まで、私たちがぶつかる問題を最適化して処理する秘訣は、IT科学に学べる。〈数理を愉しむ〉シリーズ

改訂2版 データサイエンティスト養成読本 [プロになるためのデータ分析力が身につく! ] (Software Design plus)

佐藤 洋行
技術評論社
おすすめ度
62
紹介文
巻頭企画 スキルセット、データ分析のプロセス、ビッグデータの扱い方 データサイエンティストの仕事術(データにストーリーを語らせられますか?-データサイエンティストに必要なスキル ビジネスの成果を意識した分析の方法-データサイエンスのプロセス ほか) 特集1 データサイエンティストへの第一歩 データ分析実践入門(データの把握、可視化と多変量解析-Rで統計解析をはじめよう Rをさらに便利に使える統合開発環境-RStudioでらくらくデータ分析 ほか) 特集2 スキルアップのためのマーケティング分析本格入門(データサイエンスを応用した広告戦略とサイト改善-Rによるマーケティング分析 ターゲティング広告リプレースのポイントを公開-mixiにおける大規模データマイニング事例 ほか) 特別記事 リアルタイムログ収集でログ解析をスマートに Fluentd入門 特別企画 超入門 データ分析のためにこれだけは覚えておきたい基礎知識(リレーショナルデータベース操作に必須の言語-SQL入門 Webサイトから情報を収集する技術-Webスクレイピング入門 ほか)

アルゴリズムとデータ構造の設計法

築山 修治
コロナ社
おすすめ度
62
紹介文
本書は、筆者が中央大学理工学部電気電子情報通信工学科において配布してきた資料を、C言語プログラムを半年間勉強した程度の学生諸君を対象に、データ構造およびアルゴリズムの設計手法に関する『自習書』として纏めたものである。 1 計算量 2 基本的なデータ構造 3 木 4 集合 5 木の高度な利用 6 2分探索木の拡張 7 グラフ 8 アルゴリズムの設計法 9 計算量の下界とNP完全性 10 NP困難と近似アルゴリズム 11 ハードウェアアルゴリズム

図解でかんたんアルゴリズム 情報処理のかなめとなる考え方が手に取るようにわかる! (サイエンス・アイ新書)

杉浦 賢
SBクリエイティブ
おすすめ度
62
紹介文
アルゴリズムの基礎知識を厳選、重点ポイントを簡単な図解でていねいに解説。 第1章 アルゴリズムってどんなもの? 第2章 変数と配列 第3章 データ構造 第4章 アルゴリズムの基本を学ぼう 第5章 並べ替えのアルゴリズム 第6章 探索のアルゴリズム 第7章 そのほかのアルゴリズム 第8章 アルゴリズムとコンピュータ

アルゴリズムがわかる図鑑 (まなびのずかん)

松浦 健一郎
技術評論社
おすすめ度
62
紹介文
あのややこしそうなアルゴリズムがこんなにわかりやすいなんて! 動物たちの会話やアクションを読んだり見たりしていくだけで、むりなくアルゴリズムの基本が身につく、楽しい図鑑です。 お手元のパソコンで手軽に動かして実感できるPython実習つき。 ■第1章 しまう ─ データ構造 1-1 どれを選べば楽々? ─ データ構造 1-2 積み上げる  ─ スタック 1-3 早い者順に並ぶ ─ キュー 1-4 使うデータ構造しだいで答えを出す手間が変わる 1-5 パソコンをネジ回しで開けると見えるヒント ─ メモリ 1-6 メモリにそっくり!? ─ 配列 1-7 チャレンジ! 配列を使ったプログラム 【コラム】LinuxにおけるPythonのインストール 1-8 矢印があれば移動が減る ─ 連結リスト 1-9 枝分かれを表現 ─ 木と木構造 1-10 二分木を使って式を表現する ■第2章 みつける ─ 探索のアルゴリズム 2-1 たくさんのものから探そう! ─ 探索 2-2 チャレンジ! ユーザのデータをしまうプログラム 2-3 端から探そう ─ 線形探索法 2-4 アルゴリズムの評価はおおざっぱに ─ O記法 【コラム】関数 2-5 チャレンジ! 線形探索法のプログラム 2-6 探しものは前に? それとも後ろに? ─ 二分探索法 2-7 チャレンジ! 最悪と最良のケースにおける計算量を求める 2-8 一撃で見つける  ─ ハッシュ法 2-9 ハッシュ値が衝突したらどうする? 2-10 チャレンジ! ハッシュ法でデータを探索するプログラム ■第3章 ならべる ─ ソートのアルゴリズム 3-1 ならべてみよう! ─ ソート 3-2 チャレンジ! ソートのプログラム 3-3 列のどこに入れる? ─ 挿入ソート 3-4 挿入ソートの計算量、最良のケース 【コラム】番兵 3-5 挿入ソートの計算量、最悪のケース 3-6 最強はどれだ? ─ 選択ソート 3-7 選択ソートの計算量 3-8 ソート済みデータが浮かんでくる? ─ バブルソート 3-9 データを振り分ける ─ クイックソート 3-10 クイックソートの計算量、最良と最悪のケース 3-11 クイックソートの手順 3-12 安定なソートアルゴリズム 3-13 一見当たり前でも高性能 ─ マージソート 3-14 マージソートの手順 3-15 マージソートの計算量 3-16 マージソートの領域計算量 ■第4章 かくす ─ 暗号とセキュリティ 4-1 何を知られると解読されてしまうのか? ─ 暗号の基礎 4-2 鍵をどうやって渡す? ─ 共通鍵方式 4-3 相手に渡した鍵は知られても大丈夫 ─ 公開鍵方式 4-4 本当に本人? ─ 認証 4-5 チャレンジ! 公開鍵方式を体験 ■第5章 かんがえる? ─ 人工知能(AI) 5-1 モデルは神経細胞 ─ ディープラーニング 5-2 チャレンジ! ニューラルネットワークにおける計算 5-3 どれとどれが仲間? ─ クラスタリング 付録A Pythonのインストール 付録B エラー対処法

よくわかるPython入門

富士通ラーニングメディア
富士通ラーニングメディア
おすすめ度
62
紹介文
富士通ラーニングメディアがご提供する人気の研修コース「Python入門」をベースに書籍化しています。 Pythonは、データ解析やAI(人工知能)など様々な用途に使えることから、近年最も注目されているプログラミング言語です。富士通ラーニングメディアでは、Pythonに関する研修コースをラインナップとしてご提供しており、その中でも入門レベルに相当し、人気ベスト10にもよく入る「Python入門」の研修コースの内容を今回書籍化しました。 セールスポイント ●人気の研修コース「Python入門」を書籍化! 富士通ラーニングメディアがご提供する人気の研修コース「Python入門」をベースに書籍化しています。富士通ラーニングメディアの研修コースの特徴である「実習が多い」という特性を活かし、実習中心の作りにしています。 ●手を動かしてプログラムをどんどん作る! 基本的な構文(文法)のプログラム実践例を、手を動かしてどんどん作成し、実行結果を確認します。1行でもわからないと理解できなくなるのがプログラムの常です。本書ではプログラム1行1行すべての動きを解説しています。 ●挫折しやすいエラーを徹底フォロー! プログラミングはエラーで挫折する傾向があります。本書では「よく起きるエラー」を随所で取り上げ、エラーの発生場所やその意味、対処方法(どこを修正したらよいか)を徹底解説しているので、学習を1人でも進めていけます。 ●実習問題で実力がバッチリ身に付く! 実習問題を随所でご用意しており、プログラミングの実力を深められます。「実行結果例」をみて、同じように動作するプログラムの作成に取り組みます。解答例はプログラム1行1行すべての動きを解説しており、理解が深まります。 本書をご利用いただく前に 第1章 Pythonの概要を理解する 1-1 プログラムの概要  1-1-1 プログラムとは  1-1-2 プログラミング言語とは  1-1-3 プログラムを開発する流れ 1-2 Pythonの概要  1-2-1 Pythonとは  1-2-2 Pythonの様々な利用シーン 第2章 Pythonの環境構築を行う 2-1 環境構築  2-1-1 Pythonのインストール  2-1-2 開発ツール 2-2 Pythonの体験操作  2-2-1 メモ帳とコマンドプロンプトでPythonの      プログラムを実行する  2-2-2 対話モードでPythonのプログラムを実行      する  2-2-3 Visual Studio CodeでPythonのプログラ      ムを実行する 第3章 Pythonの基本文法を学ぶ 3-1 記述規約  3-1-1 Pythonのプログラムが読みやすい理由  3-1-2 Pythonの書き方  3-1-3 Pythonのプログラムを読みやすくするた      めの規則 3-2 データの保持  3-2-1 変数とは  3-2-2 関数の呼び出しとデータ入力  3-2-3 リストとは  3-2-4 多次元リストとは  3-2-5 タプルとは  3-2-6 辞書とは  3-2-7 集合とは 3-3 演算子  3-3-1 演算子とは  3-3-2 算術演算子  3-3-3 累計代入演算子  3-3-4 文字列を連結する演算子  3-3-5 比較演算子  3-3-6 論理演算子 3-4 制御構造  3-4-1 制御構造の種類  3-4-2 条件分岐  3-4-3 繰り返し ~for文~  3-4-4 繰り返し ~while文~  3-4-5 繰り返し処理の制御 3-5 関数  3-5-1 関数とは  3-5-2 関数の定義 3-6 例外処理  3-6-1 例外処理とは  3-6-2 例外処理の実装 第4章 外部プログラムの呼び出し方を学ぶ 4-1 ライブラリ  4-1-1 ライブラリとは  4-1-2 ライブラリの管理ツール 4-2 モジュールの関数の呼び出し  4-2-1 モジュールの関数の呼び出し方法  4-2-2 標準ライブラリのモジュールの利用例  4-2-3 外部ライブラリのモジュールの利用例 第5章 ファイルの入出力を学ぶ 5-1 アプリケーションとやり取りする    データの形式  5-1-1 データの入出力  5-1-2 JSON  5-1-3 XML  5-1-4 CSV 5-2 ファイルの読み書き  5-2-1 テキストファイルの読み込み  5-2-2 テキストファイルの書き込み  5-2-3 JSON形式のファイルの読み込み  5-2-4 JSON形式のファイルの書き込み  5-2-5 XML形式のファイルの読み込み  5-2-6 XML形式のファイルの書き込み  5-2-7 CSV形式のファイルの読み込み  5-2-8 CSV形式のファイルの書き込み 第6章 一歩進んだプログラムに挑戦する 6-1 オブジェクト指向プログラミング  6-1-1 オブジェクトとクラス  6-1-2 クラスの作成  6-1-3 オブジェクトの作成  6-1-4 継承  6-1-5 アクセス制御 6-2 PythonによるExcelの操作  6-2-1 Excelの操作のための外部ライブラリ  6-2-2 Excelシートのセルから値の読み込み  6-2-3 Excelシートのセルへの値の書き込み 付録 付録A よく起きるエラーの一覧 付録B 研修コースのご紹介 索引

アルゴリズムの絵本 第2版 プログラミングが好きになる新しい9つの扉

株式会社アンク
翔泳社
おすすめ度
61
紹介文
コンピュータにものを考えさせる「アルゴリズム」を通じて、プログラミングの世界に第一歩を踏み出そう プログラミングとアルゴリズムの一番やさしい新定番書! プログラミング言語を習得しても、実際にコードを書いてみようとすると 「どう書いて良いかわからない」と感じる方は多いと思います。 本書はアルゴリズムとプログラムロジックの基本を通じて、 プログラミング(コードを書く)の実際を学んでいただけます。 アルゴリズムは、与えられたさまざまな課題をプログラムで効率良く 処理するためのテクニックの集合体です。これらを通じて、誰でも効率の良い 効果的なコードを作るための第一歩を踏み出すことができます。 ・絵を多用し、短い解説で絵本のようにビジュアルに理解することができます。 ・2ページを単位とした説明、基礎に絞り込んだ内容でスピーディに習得。 ・説明は基本中の基本から。「C言語の基礎」から学べます。 ・プログラミングのために必要な知識を広くフォロー、コードの書き方が身につきます。 ・環境構築から内容を最新にアップデートし、実際に試して学ぶことができます。 【「絵本」シリーズは、ラインナップをリニューアル!】 翔泳社の「絵本シリーズ」は、豊富なイラストと簡潔な解説で コンピュータ技術に入門できる初心者向けのシリーズです。 コンピュータ言語/技術の超初心者や手軽に習得したい方に最適な入門書です。 新しい「絵本シリーズ」では、旧来の分かりやすさ、親しみやすさ、 基礎に徹した内容というコンセプトはそのままに、Web/ネットが全盛となった 現在のコンピュータ技術の潮流に合わせた解説を心掛けます。 『Cの絵本』『Javaの絵本』『Pythonの絵本』などを皮切りにラインナップを順次刷新、 さらに新しい仲間を増やしてラインナップを充実していきます。 アルゴリズムの勉強をはじめる前に  ●アルゴリズムとは何か  ●プログラムができるまで  ●フローチャート  ●C言語について  ●プログラミングから実行までの流れ  ●プログラム記述時の約束 第1章 C言語の基礎  ●第1章はここがkey  ●Hello World!  ●変数と定数  ●数値型  ●配列  ●ポインタ  ●文字と文字列  ●計算の演算子  ●その他の演算子  ●ファイルの読み書き  ●キーボード入力  ●メモリの確保  ●構造体  [コラム]~変数名のつけ方~ 第2章 基本的な制御  ●第2章はここがkey  ●制御の種類と構造化  ●if文  ●for文とwhile文  ●その他の制御文  [コラム]~構造化以前のプログラム~ 第3章 制御の活用  ●第3章はここがkey  ●1から5までの和  ●配列から値を見つける(1)  ●配列から値を見つける(2)  ●平均をとる  ●棒グラフを描く  ●2つの文字列の連結  ●逆さに読むと  ●ファイルの内容を表示する  ●表?裏?コイン投げゲーム  [コラム]~スタックとキュー~ 第4章 関数の利用  ●第4章はここがkey  ●関数とは?  ●関数の定義と利用  ●main()関数  ●関数の特徴  ●関数の活用  ●再帰処理  [コラム]~関数のポインタ~ 第5章 問題への取り組み方  ●第5章はここがkey  ●問題を整理する  ●プログラムの設計  ●プログラムの記述(1)  ●プログラムの記述(2)  ●プログラムを整理する  ●テストとデバッグ  ●完成プログラム  [コラム]~ボトムアップ的・トップダウン的な考え方~ 第6章 実践的プログラミング  ●第6章はここがkey  ●仕様を分析する  ●データ形式を決める(1)  ●データ形式を決める(2)  ●基本設計の決定(1)  ●基本設計の決定(2)  ●メイン部分を作る  ●機能を作る(1)  ●機能を作る(2)  ●完成プログラム  [コラム]~時間がかかる処理~ 第7章 高度なアルゴリズム  ●第7章はここがkey  ●素数を求める  ●素因数分解  ●最大公約数を求める  ●リンクリスト(1)  ●リンクリスト(2)  ●サンプルプログラム  [コラム]~アルゴリズムの工夫~ 付録  ●プログラムでつまったら  ●プログラミングの心得  ●Visual Studioのインストール  ●Visual Studioを使った開発  ●一般的なデバッグ手法  ●Visual Studioのデバッガー

例題でわかる Pythonプログラミング入門

佐村 敏治
電気書院
おすすめ度
61
紹介文
Python(パイソン)は初心者が比較的修得しやすく、AI(人工知能)やパターン認識などの先端技術に活用されている優れたプログラミング言語です。 本書では、初心者を対象に、Pythonを使ったプログラミングの勘所をやさしく解説しました。 例題に取り組むことで、プログラミングとはどういうものかを理解し、プログラミング的思考を身につけてもらうことを目的に執筆しました。 読者の皆さんが、楽しみながらPythonの素晴らしさやプログラミングの醍醐味を感じていただけたら、著者として望外の喜びです。

なっとく! アルゴリズム

アディティア・Y・バーガバ
翔泳社
おすすめ度
61
紹介文
実際の生活の中で遭遇する身近な例をひきながら、アルゴリズムの成り立ちと基本的な考え方の道筋を、噛み砕いて教えてくれます。 数式でもない実装でもない、 半径3メートルの身近なアルゴリズムはこんなにわかりやすい! プログラミングにおいて、アルゴリズムは欠かせません。 それは「Hello World」から昨今のAIやIoTに代表される機械学習や ディープラーニングに至るまで変わりません。プログラミングとは、 裏を返せば、アルゴリズムをいかにして見通しよく実装するかにあるからです。 けれども、アルゴリズムの学習というと、七面倒臭い理屈の山と数式の谷間で 迷子になるのが、これまでの一般的な在り方でした。 そこで本書は、イラストを多用し、デファクトと言われるアルゴリズムが なぜデファクトなのか。けれども場合によってはデファクトたりえないのは なぜなのか。その差を分ける基準は何なのかを平易に解説してくれます。 アルゴリズムと聞くとアレルギー反応をおこす方でも、安心して その奥深い世界の扉から漏れてくる、豊かさの一端に触れることが出来るはずです。 【目次】 第1章 あれもこれもアルゴリズム 第2章 並べたり差し込んだり選んだり:ソート 第3章 同じ手順で何度でも:再帰 第4章 ちっちゃくしてから考えよう:クイックソート 第5章 関連付ければ話も早い:ハッシュテーブル 第6章 グラフを作れば見えてくる:幅優先探索 第7章 本からピアノへ物々交換大作戦:ダイクストラ法 第8章 問題は続くよどこまでも:貪欲法 第9章 ドロボーは計画的に:動的計画法 第10章 分類したら予測して:k近傍法 第11章 この先にはなにがあるの? 第12章 答え合わせ 【著者紹介】 Aditya Bhargava(アディティア・バーガバ) シカゴ大学でコンピューターサイエンスの修士号を取得したAditya Bhargavaは、 ハンドメイド商品のオンラインショップ、etsy.comのソフトウェアエンジニアです。 第1章 あれもこれもアルゴリズム 第2章 並べたり差し込んだり選んだり:ソート 第3章 同じ手順で何度でも:再帰 第4章 ちっちゃくしてから考えよう:クイックソート 第5章 関連付ければ話も早い:ハッシュテーブル 第6章 グラフを作れば見えてくる:幅優先探索 第7章 本からピアノへ物々交換大作戦:ダイクストラ法 第8章 問題は続くよどこまでも:貪欲法 第9章 ドロボーは計画的に:動的計画法 第10章 分類したら予測して:k近傍法 第11章 この先にはなにがあるの? 第12章 答え合わせ

図解! アルゴリズムのツボとコツがゼッタイにわかる本

中田亨
秀和システム
おすすめ度
61
紹介文
アルゴリズムとは、問題を解決するための手順や計算方法のことです。アルゴリズムを学ぶと、プログラミングはもちろん業務効率の向上や経営計画の最適化にも役立ちます。本書は、これからプログラミングを学びたい、あるいは学びなおしたい入門者のために、アルゴリズムの基礎知識と考え方を楽しく学べる入門書です。文章だけの解説はほとんどなく、イラスト図解をたくさん取り入れています。 「これからプログラミングを学ぼう」といった入門者、少しだけプログラミングを経験したことのある初心者のための「アルゴリズム」の入門書です。プログラムを作成する上で必要となる問題解決の考え方について解説します。 Chapter 01 アルゴリズムって何? 01 アルゴリズムとは?  問題を解決するための処理手順 02 日常生活で無意識に使っているアルゴリズム  お釣りの枚数 03 アルゴリズムを知っているとどんなメリットがある?  業務効率の向上や経営計画の最適化に役立つ 04 アルゴリズムとプログラミングの関係  プログラミングにおける重要性 05 構造化プログラミング  難しい問題を解くためには?  構造化プログラミングとは?  3つの制御構造 Chapter 02 変数と配列 01 データを表す「値」  式(しき)と値(あたい) 02 データの種類を表す「型」  型(かた) 03 データを入れる箱を表す「変数」  変数(へんすう) 04 データを変数に入れる「代入」  データを箱に入れる  変数の代入  計算結果の代入 05 大量のデータをまとめて入れる「配列」  配列(はいれつ)  配列要素(はいれつようそ) 06 文字列(文字の連続)を配列で表す  1文字ずつ分解して配列にする  文字列を検索するアルゴリズム 07 二次元配列  二次元配列(にじげんはいれつ) Chapter 03 アルゴリズムでよく使うデータ構造 01 「データ構造」ってどんなもの?  データ構造とは?  基本的なデータ構造 02 配列(同じ型の変数が連続して並んだ構造)  配列の特徴  配列が苦手なこと 03 リスト(データが順番につながった構造)  リストの特徴  単方向リスト  循環リスト  双方向リスト  連想記憶リスト(ハッシュ)  連想記憶リストの特徴 04 スタック(後入れ先出しのリスト構造)  スタックとは?  スタックの特徴  プッシュとポップ  日常生活でスタックが使われている場面 05 キュー(先入れ先出しのリスト構造)  キューとは?  キューの特徴  エンキューとデキュー  日常生活でキューが使われている場面 06 ツリー構造(階層関係をもつデータ構造)  ツリー構造とは?  ツリー構造の特徴  二分木(にぶんぎ)  二分木の特徴  二分探索木(にぶんたんさくぎ)  二分探索木の走査 Chapter 04 基本的なアルゴリズム 01 アルゴリズムの基本は「繰り返し」  繰り返し(反復)を使う場面  流れ図と疑似言語 02 流れ図(フローチャート)に慣れよう  流れ図に登場する記号  記号の意味  流れ図で表してみよう 03 疑似言語の読み方に慣れよう  一般的なプログラムの構造  宣言部の記述形式  手続きと関数(サブルーチン)の宣言  処理部の記述形式  分岐の記述形式  繰り返し(反復)の記述形式  前判定型と後判定型  関数(サブルーチン)の記述形式  実引数と仮引数  変数のスコープ(有効範囲) 04 データの合計値を求めてみよう  合計値を求める手順  合計値を求める流れ図(フローチャート)  合計値を求めるプログラム 05 データの平均値を求めてみよう  平均値を求める流れ図(フローチャート)  平均値を求めるプログラム 06 2つのデータを交換してみよう  データを交換する手順  配列要素を交換する流れ図(フローチャート)  配列要素を交換するプログラム 07 データの最大値を求めてみよう  最大値を求める手順  最大値を求める流れ図(フローチャート)  最大値を求めるプログラム 08 データの最小値を求めてみよう  最小値を求める手順  最小値を求める流れ図(フローチャート)  最小値を求めるプログラム Chapter 05 再帰的アルゴリズム 01 「再帰的」とは?  「合わせ鏡」のような状態 02 再帰的な処理のイメージをつかもう  お皿が空になるまで食べる  再帰処理の流れ 03 データの合計を再帰的に求めてみよう  100個の数字の合計を求めよう  流れ図 04 データの階乗を再帰的に求めてみよう  階乗とは?  流れ図とプログラム 05 「ハノイの塔」どこまで解けるかな?  ハノイの塔とは?  ハノイの塔(1階建て)  ハノイの塔(2階建て)  ハノイの塔(3階建て) 06 「ハノイの塔」をアルゴリズムで解いてみよう  N階建ての塔をどうやって解く?  N階建ての塔を移動する手順  流れ図を描く準備  ハノイ関数Hと移動の対応関係  ハノイ関数の流れ図(途中)  ハノイ関数の終了条件  ハノイ関数の流れ図(完成)  移動手順を表示するプログラム  ハノイ関数の流れを検証しよう  JavaScriptでハノイの塔を実行すると? Chapter 06 ソートアルゴリズム 01 「ソート」とは?  データの並び替え  代表的な7つのソート 02 バブルソート(基本交換法)  隣同士を比較する  バブルソートの流れ図  バブルソートのプログラム  降順(大きい順)に並べ替えるバブルソート 03 選択ソート(基本選択法)  バブルソートの改良版  選択ソートの流れ図  選択ソートのプログラム  降順(大きい順)に並べ替える選択ソート 04 挿入ソート(基本挿入法)  整列済みの配列に挿入する  挿入ソートの流れ図  挿入ソートのプログラム 05 シェルソート  挿入ソートの改良版  グループの分け方  シェルソートの流れ図  シェルソートのプログラム 06 マージソート(併合整列法)  マージソートとは?  マージソートの再帰処理  マージソート関数はどんな形?  サブリストの範囲はどう表せる?  マージソート関数の終了条件  サブリストの整列が終わったら何をする?  マージソートの流れ図  マージソートのプログラム 07 ヒープソート  ヒープソートとは?  ヒープソートの手順  ヒープソートの流れ図(全体)  ヒープソートの流れ図(最小ヒープ関数)  ヒープソートのプログラム 08 クイックソート  クイックソートとは?  クイックソートの具体例  クイックソートの手順(STEP1?STEP2)  クイックソートの手順(STEP3)  クイックソートの流れ図(全体)  グループ分割の流れ図  クイックソートのプログラム

アルゴリズムクイックリファレンス

George T. Heineman
オライリージャパン
おすすめ度
60
紹介文
サンプル豊富、実践重視のアルゴリズム本

たのしいプログラミング Pythonではじめよう!

Jason R.Briggs
オーム社
おすすめ度
60

新・明解 Javaで学ぶアルゴリズムとデータ構造 (明解シリーズ)

柴田 望洋
SBクリエイティブ
おすすめ度
60
紹介文
すべてのJavaプログラマに贈る! アルゴリズムとデータ構造入門書の最高峰!! 『明解Javaによるアルゴリズムとデータ構造』を10年ぶりに改訂。 初級レベルのJavaプログラマを対象に、 スタックやキュー、二分木などのデータ構造をはじめとして、 探索、ソートなどの、アルゴリズムの基礎について解説しています。 改訂にあたり、本文の見直しとレイアウト変更を行い、さらなるわかりやすさを目指します

入門 Python 3 第2版

Bill Lubanovic
オライリージャパン
おすすめ度
60
紹介文
プログラミング初心者向けPython入門書。5年ぶりの改訂版でPython3.9.0に対応。新機能追加でボリュームアップ。 実践を見据えた本格的な入門書の改訂版! プログラミング初心者を対象としたPythonの総括的な入門書で、前提知識がなくても取り組むことができます。プログラミングとPythonの基礎から、データベース処理、Webプログラミング、ネットワークプログラミング、初歩の並列処理といった応用までわかりやすく丁寧に解説します。「入門Python 3」の5年ぶりの改訂版でPython3.9.0に対応、f文字列などの新機能が追加され大幅にボリュームアップしています。 プログラミング初心者向けPython入門書。5年ぶりの改訂版でPython3.9.0に対応。新機能追加でボリュームアップ。

スマートな良いコードのために Pythonで学ぶアルゴリズム入門

松浦健一郎
秀和システム
おすすめ度
60
紹介文
どう動くのか仕組みを理解し、スマートなコードを実現。データ構造やアルゴリズムの現実のコードを知りスキルアップ。必読の書籍。 あなたはもっと上手にプログラムを書けるようになりたいと考えたことはありませんか? 本書は、Pythonで実際にプログラムを動かしながらデータ構造やアルゴリズムの知識を学び、実践的なプログラミング技術を身につける入門書です。かなり高度な内容まで踏み込みますが、図解でやさしく解説します。また、Pythonの仕組みを知りたい方にもおすすめします。 どう動くのか仕組みを理解し、スマートなコードを実現できる、データ構造やアルゴリズムの現実のコードを知りスキルアップできる。Pythonプログラマーの必須の書籍。 第1章 データ構造とアルゴリズムを学ぶための準備 もっと良いプログラムを書くために 計算量はアルゴリズムの効率を表す指標 Pythonでデータ構造とアルゴリズムを学ぶ Pythonインタプリタの対話モード プログラムの実行時間を計測する 章のまとめ 第2章 データ構造 メモリはデータを記憶する部品 配列はメモリによく似たデータ構造 スタックは最後に入れた値が最初に出てくる キューは最初に入れた値が最初に出てくる 連結リストは要素と要素をつないで管理する 木構造は木のような形をしたデータ構造 章のまとめ 第3章 Pythonのデータ構造 リストは要素の変更が可能な配列 リストの仕組み リストに対する操作の実行時間 タプルは要素の変更が不可能な配列 タプルの仕組み 色々なデータ構造を表現する 章のまとめ 第4章 探索のアルゴリズム 線形探索は端から順に探す 二分探索は値が大小順に並んでいるときに使う 指数探索は二分探索の前に探索範囲を絞り込む ハッシュは目的の値を一撃で探し出す 章のまとめ 第5章 Pythonにおける探索のアルゴリズム リストやタプルにおける線形探索 集合はハッシュを使って値を保持する 集合の仕組み 辞書はハッシュを使ってキーと値の組を保持する 辞書の仕組み 章のまとめ 第6章 ソートのアルゴリズム ソートは規則に基づいて値を並べ替える バブルソートは値が浮かび上がる 選択ソートは最小値や最大値を見つける 挿入ソートは適切な位置に値を挿入する クイックソートは値を左右に振り分ける マージソートはソート済みの列を併合して長くする 安定なソートは同じ値の順序を変えない 章のまとめ 第7章 Pythonにおけるソートのアルゴリズム Pythonにおけるソートの使い方 Pythonのティムソートは挿入ソートとマージソートの組み合わせ データ構造の操作に役立つ組み込み関数 データ構造の初期化に役立つ内包表記 章のまとめ

アルゴリズムパズル ―プログラマのための数学パズル入門

Anany Levitin
オライリージャパン
おすすめ度
60
紹介文
優れたアルゴリズム的思考が身に付く

明解Javaによるアルゴリズムとデータ構造

柴田 望洋
SBクリエイティブ
おすすめ度
59
紹介文
豊富なプログラム(88編)と分かりやすい図表(229点)でアルゴリズムとデータ構造の基礎をマスターして、問題解決能力を身につける一冊。 第1章 基本的なアルゴリズム 第2章 基本的なデータ構造 第3章 探索 第4章 スタックとキュー 第5章 再帰的アルゴリズム 第6章 ソート 第7章 集合 第8章 文字列探索 第9章 線形リスト 第10章 木構造

はじめてのパターン認識

平井 有三
森北出版
おすすめ度
59
紹介文
パターン認識にはじめて触れる読者に向け,基礎からわかりやすく解説した入門書です.パターン認識の概念がよく理解できるとともに,Rによる実行例など,実際に応用する際にも役立つ内容が盛り込まれています. 第1章 はじめに 第2章 識別規則と学習法の概要 第3章 ベイズの識別規則 第4章 確率モデルと識別関数 第5章 k最近傍法(kNN法) 第6章 線形識別関数 第7章 パーセプトロン型学習規則 第8章 サポートベクトルマシン 第9章 部分空間法 第10章 クラスタリング 第11章 識別器の組み合わせによる性能強化

独習Python

山田 祥寛
翔泳社
おすすめ度
59
紹介文
プログラミング初学者に向けた独習シリーズに『独習Python』が新登場。山田祥寛氏によるPython入門書の決定版。 手を動かしておぼえるPythonプログラミング ――独学に最適な“標準教科書” プログラミングの初学者に向けた独習シリーズに『独習Python』が新登場。 プログラミング言語入門書の執筆で定評のある山田祥寛氏による、 Python入門書の決定版です。 独習シリーズの強みである、手を動かしておぼえる(書いて実行して結果を確認する) 特長を生かし、Pythonの基本的な言語仕様から、標準ライブラリ、ユーザー定義関数、 オブジェクト指向構文、モジュールまで、サンプルプログラムを例示しながら 詳細かつ丁寧に解説します。 プログラミングの基礎知識がない方でも、解説→例題(サンプル)→理解度チェック という3つのステップで、Pythonでプログラミングを行う際に必要な知識・概念・機能を 体系的に習得できます。 プログラミングの入門者、これからPythonで開発を始めたい初学者から、再入門者、 学生・ホビープログラマまで、「一からPython言語を学びたい」「Pythonプログラミング の基本をしっかり身につけたい」という方におすすめの一冊です。 第1章 イントロダクション 1.1 Pythonとは? 1.2 Pythonの歴史と現状 1.3 Pythonアプリを開発/実行するための基本環境 1.4 Pythonプログラミングの基本 1.5 Pythonの基本ルール 1.6 開発/学習の前に押さえておきたいテーマ 第2章 Pythonの基本 2.1 変数 2.2 データ型 第3章 演算子 3.1 算術演算子 3.2 代入演算子 3.3 比較演算子 3.4 論理演算子 3.5 ビット演算子 3.6 演算子の優先順位と結合則 第4章 制御構文 4.1 条件分岐 4.2 繰り返し処理 4.3 ループの制御 4.4 例外処理 第5章 標準ライブラリ[基本] 5.1 ライブラリの分類 5.2 文字列の操作 5.3 日付/時刻の操作 第6章 標準ライブラリ[コレクション] 6.1 シーケンス型 6.2 セット(集合)型 6.3 辞書(dict)型 第7章 標準ライブラリ[その他] 7.1 正規表現 7.2 ファイル操作 7.3 ファイルシステムの操作 7.4 HTTP経由でコンテンツを取得する 7.5 その他の機能 第8章 ユーザー定義関数 8.1 ユーザー定義関数の基本 8.2 変数の有効範囲(スコープ) 8.3 引数のさまざまな記法 8.4 関数呼び出しと戻り値 第9章 ユーザー定義関数[応用] 9.1 デコレーター 9.2 ジェネレーター 9.3 関数のモジュール化 9.4 非同期処理 9.5 ドキュメンテーション 第10章 オブジェクト指向構文 10.1 クラスの定義 10.2 カプセル化 10.3 継承 10.4 ポリモーフィズム 第11章 オブジェクト指向構文[応用] 11.1 例外処理 11.2 特殊メソッド 11.3 データクラス 11.4 イテレーター 11.5 メタクラス 付録A 「練習問題」「このの理解度チェック」解答

Pythonで作って学べる ゲームのアルゴリズム入門

廣瀬豪
ソーテック社
おすすめ度
59
紹介文
誰もが知っている古典的なゲームをパイソンで作成して プログラミングとアルゴリズムの基本を学びましょう! プログラミング解説書のベストセラー『Pythonでつくる ゲーム開発 入門講座』の著者による オール図解のアルゴリズムの解説書。簡単かつ楽しい作例でスキルアップできる一冊です。 第1章 プログラミングとアルゴリズム  第2章 プログラミングの基礎  第3章 ミニゲームを作ろう  第4章 図形を描こう  第5章 神経衰弱を作ろう  第6章 三目並べを作ろう  第7章 リバーシ(オセロ)を作ろう〜前編  第8章 リバーシ(オセロ)を作ろう〜後編  特別付録 エアホッケーを作ろう

最適化アルゴリズム

Mykel J. Kochenderfer
共立出版
おすすめ度
59
紹介文
様々な最適化に関するトピックスを取り上げ,数学的な定式化とアルゴリズムを解説。プログラミング言語Juliaによる実装例掲載。 本書は実践的なアルゴリズムに焦点を当てた、最適化についての包括的な入門書である。 いくつかの指標を制約の範囲で最適化するシステムの設計を目的とするような工学的観点から最適化を取り扱う。 読者は、高次元空間の探索、複数の目的が競合する問題への対応、評価指標への不確実性の取り込み、といった多様な課題に対する計算論的アプローチを学ぶことができるだろう。 数学的アプローチの背後にある考え方が図と例、および演習問題によって説明される他、プログラミング言語 Julia による具体的な実装例も提供されている。 本書で扱うトピックには以下のものが含まれる。 ・微分およびその高次元への一般化 ・局所降下法と局所降下方向を定める1次法および2次法 ・最適化のプロセスにランダム性を組み込む確率的な方法 ・目的関数と制約式がともに線形である線形計画問題 ・代理モデル、確率的代理モデル、それらの最適化への利用 ・不確実性下の最適化 ・不確実性の伝搬 ・式の最適化 ・複合領域設計最適化 また付録には以下の内容が収録されている。 ・Julia 言語への入門 ・アルゴリズムの性能を評価するためのベンチマーク関数 ・微分と本書で議論される最適化手法の解析に用いられる数学的概念 本書は、数学、統計学、計算機科学、(電子工学や航空工学を含む)工学系の意欲ある学部生や大学院生が教科書として用いることができる他、専門家がリファレンスとして用いることも可能である。 [原著: Algorithms for Optimization, MIT Press, 2019] 1 イントロダクション 1.1 歴史 1.2 最適化のプロセス 1.3 標準的な最適化問題 1.4 制約 1.5 臨界点 1.6 局所的最適性の条件 1.7 等高線図 1.8 全体概要 1.9 まとめ 1.10 演習問題 2 微分・勾配 2.1 導関数 2.2 勾配 2.3 数値微分 2.4 自動微分 2.5 まとめ 2.6 演習問題 3 囲い込み法 3.1 単峰性 3.2 最初の囲い込み区間を見つける方法 3.3 Fibonacci 探索 3.4 黄金分割探索 3.5 2 次当てはめ探索 3.6 Shubert-Piyavskii法 3.7 二分法 3.8 まとめ 3.9 演習問題 4 局所降下法 4.1 降下方向への反復 4.2 直線探索 4.3 近似直線探索 4.4 信頼領域法 4.5 停止条件 4.6 まとめ 4.7 演習問題 5 1次法 5.1 勾配降下法 5.2 共役勾配法 5.3 モメンタム法 5.4 Nesterovモメンタム法 5.5 Adagrad 5.6 RMSProp 5.7 Adadelta 5.8 Adam 5.9 超勾配降下法 5.10 まとめ 5.11 演習問題 6 2次法 6.1 Newton法 6.2 セカント法 6.3 準Newton法 6.4 まとめ 6.5 演習問題 7 直接法 7.1 巡回ルール付き座標降下法 7.2 Powell法 7.3 Hooke-Jeeves法 7.4 一般化パターンサーチ法 7.5 Nelder-Meadのシンプレックス法 7.6 矩形分割法 7.7 まとめ 7.8 演習問題 8 確率的手法 8.1 ノイズ付き降下法 8.2 メッシュ適応直接探索 8.3 焼きなまし法 8.4 クロスエントロピー法 8.5 自然進化戦略 8.6 共分散行列適応進化戦略(CMA-ES) 8.7 まとめ 8.8 演習問題 9 集団に基づく手法 9.1 初期化 9.2 遺伝的アルゴリズム 9.3 差分進化 9.4 粒子群最適化 9.5 ホタルアルゴリズム 9.6 カッコウ探索 9.7 ハイブリッド法 9.8 まとめ 9.9 演習問題 10 制約条件 10.1 制約付き最適化 10.2 制約条件の種類 10.3 制約を取り除く変換 10.4 ラグランジュの未定乗数法 10.5 不等式制約 10.6 双対性 10.7 ペナルティ法 10.8 拡張ラグランジュ法 10.9 内点法 10.10 まとめ 10.11 演習問題 11 線形計画法 11.1 問題の定式化 11.2 単体法 11.3 最適性の証拠 11.4 まとめ 11.5 演習問題 12 多目的最適化 12.1 パレート最適性 12.2 制約法 12.3 重み付け法 12.4 多目的の集団に基づく手法 12.5 選好誘出 12.6 まとめ 12.7 演習問題 13 サンプリング計画 13.1 完全実施要因計画 13.2 ランダムサンプリング 13.3 一様射影計画 13.4 層別サンプリング 13.5 空間充填指標 13.6 空間充填部分集合 13.7 準ランダム列 13.8 まとめ 13.9 演習問題 14 代理モデル 14.1 代理モデルのフィッティング 14.2 線形モデル 14.3 基底関数 14.4 ノイズ入り目的関数のフィッティング 14.5 モデル選択 14.6 まとめ 14.7 演習問題 15 確率的代理モデル 15.1 ガウス分布 15.2 ガウス過程 15.3 予測 15.4 勾配測定 15.5 ノイズ入り測定値 15.6 ガウス過程のフィッティング 15.7 まとめ 15.8 演習問題 16 代理モデルに基づく最適化 16.1 予測に基づく探索 16.2 誤差に基づく探索 16.3 信頼性下限関数を用いた探索 16.4 改善確率による探索 16.5 期待改善度による探索 16.6 安全最適化 16.7 まとめ 16.8 演習問題 17 不確実性下の最適化 17.1 不確実性 17.2 集合に基づく不確実性 17.3 確率的不確実性 17.4 まとめ 17.5 演習問題 18 不確実性伝搬 18.1 サンプリング法 18.2 テイラー近似 18.3 多項式カオス 18.4 ベイジアンモンテカルロ法 18.5 まとめ 18.6 演習問題 19 離散最適化 19.1 整数計画問題 19.2 ラウンディング 19.3 切除平面法 19.4 分枝限定法 19.5 動的計画法 19.6 蟻コロニー最適化 19.7 まとめ 19.8 演習問題 20 式の最適化 20.1 文法 20.2 遺伝的プログラミング 20.3 文法進化 20.4 確率文法 20.5 プロトタイプ木 20.6 まとめ 20.7 演習問題 21 複合領域設計最適化 21.1 領域の解析 21.2 領域間の両立性 21.3 アーキテクチャ 21.4 複合領域設計実行可能 21.5 逐次最適化 21.6 個別領域実行可能 21.7 協調最適化 21.8 同時解析設計 21.9 まとめ 21.10 演習問題 付録A Julia A.1 型 A.2 関数 A.3 制御フロー A.4 パッケージ 付録B ベンチマーク関数 B.1 Ackley関数 B.2 Booth関数 B.3 Branin関数 B.4 flower関数 B.5 Michalewicz関数 B.6 Rosenbrockのbanana関数 B.7 Wheelerのリッジ関数 B.8 circle関数 付録C 数学的予備知識 C.1 漸近記法 C.2 テイラー展開 C.3 凸性 C.4 ノルム C.5 行列における解析 C.6 正定値性 C.7 正規分布 C.8 ガウス求積 付録D 解答例 文献 索引

アルゴリズム思考術:問題解決の最強ツール

ブライアン クリスチャン
早川書房
おすすめ度
59
紹介文
仕事の時間配分、書類整理から洗濯済靴下の片割れ探しまで、何をいつ行ないいつやめるか、そもそも行なうべきかの判断は難しい。だが人工知能の大本でもあるアルゴリズム論理の使い方を学べば、ビジネスや日常で迫られる判断を手早く行なえる。現代人必読の書。

これなら分かる最適化数学: 基礎原理から計算手法まで

健一, 金谷
共立出版
おすすめ度
59
紹介文
各種の最適化手法の原理や計算法をやさしく解説  最適化手法とは,利益,損失などの望ましい,あるいは望ましくない値を最大,または最小にするように設計する手法である。従来から経営学やオペレーションズリサーチ(OR)の中心テーマであったが,計算機技術の進歩によって過去には不可能と思われた複雑な問題が実際的な時間で解けるようになり,今日ではあらゆる工学分野,特に電子,情報,通信技術の設計のほとんどに浸透している。  本書はこの立場から,最適化手法の入門書として書かれたもので,経営学やORのみならず,統計的最適化や機械学習に関する話題も扱っている。また,各手法を紹介するだけでなく,その数学的背景の解説に力点を置いている。  本文中では最適化手法の要領を理解させることに重点を置き,例題を多く用いてやさしく解説している。中には独自の説明法を採用している箇所もある。また,内容の幅を広げ,読者により関心が高まるよう,本文を補足する,関連する話題や注意すべき事項を箇条書きの形で随所に挿入している。理解を促すために,各所で簡略化したり,直観的な説明を行ったが,そのような箇所にはより数学的に厳密な説明を補足している。 第1章 数学的準備 1.1 曲線と曲面 1.2 1次形式と2次形式 1.3 2次形式の標準形 第2章 関数の極値 2.1 1次関数と2次関数 2.2 関数の勾配と等高線 2.3 関数の極値 2.4 ラグランジュの未定乗数法 第3章 関数の最適化 3.1 勾配法 3.2 ニュートン法 3.3 共役勾配法 第4章 最小二乗法 4.1 式の当てはめ 4.2 連立1次方程式 4.3 非線形最小二乗法 第5章 統計的最適化 5.1 最尤推定 5.2 直線当てはめ 5.3 データの分類 5.4 不完全データからの最尤推定 第6章 線形計画法 6.1 線形計画の標準形 6.2 可能領域 6.3 線形計画の基本定理 6.4 スラック変数 6.5 シンプレックス法 6.6 退化 6.7 人工変数 6.8 双対原理 第7章 非線形計画法 7.1 非線形計画 7.2 ラグランジュ乗数 7.3 双対原理 第8章 動的計画法 8.1 多段階決定問題 8.2 動的計画法 8.3 最適経路問題 8.4 ストリングマッチング 8.5 制約のある多段階決定問題

最適輸送の理論とアルゴリズム (機械学習プロフェッショナルシリーズ)

佐藤 竜馬
講談社
おすすめ度
59
紹介文
線形代数・確率・最適化についての初歩的な知識を前提として、最適輸送をていねいに解説。まずはこの一冊から始めよう! ★まずは、この一冊から始めよう!★ 最適輸送は、ふたつの確率分布を比較するためのツールです。深層学習の勃興とGPU計算の普及により、機械学習分野でも最適輸送が広く用いられるようになりました。 本書では、線形代数・確率・最適化についての初歩的な知識を前提として、線形計画、エントロピー正則化、シンクホーンアルゴリズム、敵対的ネットワーク、スライス法などのさまざまな解法アプローチをていねいに解説します。 【主な内容】 第1章 確率分布を比較するツールとしての最適輸送 第2章 最適化問題としての定式化 第3章 エントロピー正則化とシンクホーンアルゴリズム 第4章 敵対的ネットワーク 第5章 スライス法 第6章 他のダイバージェンスとの比較 第7章 不均衡最適輸送 第8章 ワッサースタイン重心 第9章 グロモフ・ワッサースタイン距離 第10章 おわりに 第1章 確率分布を比較するツールとしての最適輸送 1.1 確率分布の比較 1.2 三種類の問題設定 1.3 最適輸送の直観的な理解 1.4 KLダイバージェンスとの比較を通した最適輸送の利点 1.5 記法・数学的な準備 1.6 本書の構成 第2章 最適化問題としての定式化 2.1 線形計画による定式化 2.2 応用例 2.3 最適輸送の双対問題 2.4 最適輸送問題の最適解の疎性 2.5 最小費用流問題と最適輸送問題の関係 第3章 エントロピー正則化とシンクホーンアルゴリズム 3.1 エントロピー正則化つき最適輸送問題 3.2 対数領域シンクホーンアルゴリズム 3.3 シンクホーンアルゴリズム 3.4 シンクホーンアルゴリズムにより得た近似解を主問題の解に変換する 3.5 シンクホーンアルゴリズムの大域収束性 3.6 微分可能最適輸送:最適値を最適化する 3.7 シンクホーンダイバージェンス 3.8 エントロピー正則化なし問題への利用 第4章 敵対的ネットワーク 4.1 敵対的ネットワークとは何か 4.2 コスト関数が距離の場合の最適輸送問題の双対問題 4.3 パラメータ化された関数を用いた解法 4.4 ワッサースタインGAN 4.5 敵対的ネットワークのその他の応用例 第5章 スライス法 5.1 一次元の最適輸送 5.2 一次元の最適輸送:一般の分布の場合 5.3 スライス法 5.4 一般化スライス法 5.5 最大化スライス法 5.6 応用例 5.7 木を用いたスライス法 第6章 他のダイバージェンスとの比較 6.1 ダイバージェンスとは 6.2 ファイ-ダイバージェンスと積分確率距離 6.3 確率分布の弱収束 6.4 サンプル複雑性 第7章 不均衡最適輸送 7.1 不均衡最適輸送の導入 7.2 不均衡最適輸送の定式化 7.3 一般化シンクホーンアルゴリズム 第8章 ワッサースタイン重心 8.1 固定サポートと自由サポートの定式化 8.2 線形計画を用いた固定サポートの問題の解法 8.3 劣勾配を用いた固定サポートの問題の解法 8.4 交互最適化による自由サポートの問題の解法 8.5 エントロピー正則化による高速化 8.6 応用例:図形モーフィング 第9章 グロモフ・ワッサースタイン距離 9.1 定式化 9.2 最適化 9.3 応用例:グリッドへの割り当て 第10章 おわりに 10.1 ソフトウェア 10.2 読書案内

基本情報技術者 大滝みや子先生のかんたんアルゴリズム解法 ~流れ図と擬似言語~ 第4版

大滝 みや子
リックテレコム
おすすめ度
59
紹介文
◆アルゴリズム問題のロングセラー書! ◆ ◆午前問題の「流れ図」から午後問題の「擬似言語」までを網羅◆ ◆基本アルゴリズムから本試験問題へとステップアップ学習を実現! ◆ 基本情報技術者試験で出題される「流れ図」、「擬似言語」といったアルゴリズム問題について、 基礎からやさしく丁寧に解説しています。 今回の改訂では、第2部の擬似言語に「応用例題」を追加し、基本例題の学習が終わったら、少し 難易度の高い応用例題を学習し、最後に実戦問題に挑戦するという3ステップ構成に変更しました。 なお、構成は、旧版と同様、流れ図と擬似言語を分けた2部構成とし、基本的かつ代表的なアルゴ リズムについて例題を豊富に掲載しています。 また、例題ごとに、理解度を確認するための「TRY!」問題や関連知識を配置し、基本知識はもちろん のこと、その周辺知識も確実に習得できるようになっています。 このように、本書は入門レベルから合格レベルまで段階をふんで着実に実力が身につく仕組みに なっています。初めての方やアルゴリズム問題が苦手な方でもスムーズに学習に取り組めます。 著者は、情報処理技術者試験対策で大人気の大滝みや子先生です!! 長年の受験指導の経験をもとに、押さえるべきポイントを、わかりやすく丁寧に解説しています。 ふだん教えてもらえない解法テクニックも満載です。 さらに、午後問題に出題されるCやJavaなどのプログラム言語の基礎学習にも最適の1冊です。 【本書の目次】 第1部 アルゴリズムと流れ図 第1章 流れ図とは 第2章 基本例題 第3章 実戦問題 第2部 擬似言語 第1章 擬似言語とは 第2章 擬似言語パターン演習 第3章 基本例題 第4章 応用例題 第5章 実戦問題 【本書の目次】 第1部 アルゴリズムと流れ図 第1章 流れ図とは 第2章 基本例題 第3章 実戦問題 第2部 擬似言語 第1章 擬似言語とは 第2章 擬似言語パターン演習 第3章 基本例題 第4章 応用例題 第5章 実戦問題

独学プログラマー Python言語の基本から仕事のやり方まで

コーリー・アルソフ
日経BP
おすすめ度
59
紹介文
本書は「Pythonだけ」を学ぶ本ではありません。Pythonを使ってプログラミングを紹介していますが、伝えたい内容はPythonに限らない「プログラミング全般」の知識です。 本書の著者、コーリー・アルソフ(Cory Althoff)は、「独学プログラマー」です。本書は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。 プログラミングを独学で身に付けるために、著者がPythonを通して学んだエッセンスが書かれています。彼の独学プログラマーとしての学び方は、Amazon.comでの本書の評価を見るとわかるように、多くの人に支持されています。 ――訳者あとがきより 第1部(Part1) 第1章 イントロダクション 第2章 さあ、はじめよう! 第3章 プログラミング入門 第4章 関数 第5章 コンテナ 第6章 文字列操作 第7章 ループ 第8章 モジュール 第9章 ファイル 第10章 知識を1つにまとめる 第11章 ハマったときの助け 第2部(Part2) 第12章 プログラミングパラダイム 第13章 オブジェクト指向プログラミングの4大要素 第14章 もっとオブジェクト指向プログラミング 第15章 知識を1つにまとめる 第3部(Part3) 第16章 Bash 第17章 正規表現 第18章 パッケージ管理 第19章 バージョン管理 第20章 知識を1つにまとめる 第4部(Part4) 第21章 データ構造 第22章 アルゴリズム 第5部(Part5)  第23章 プログラミングのベストプラクティス 第24章 プログラマーとしての最初の仕事 第25章 チームで働く 第26章 さらに学ぼう 第27章 次のステップ 第6部(Part6) 補章 より良いコードにするために 補章 継続して学ぶために 謝辞 訳者あとがき 索引 第1部(Part1) 第1章 イントロダクション 第2章 さあ、はじめよう! 第3章 プログラミング入門 第4章 関数 第5章 コンテナ 第6章 文字列操作 第7章 ループ 第8章 モジュール 第9章 ファイル 第10章 知識を1つにまとめる 第11章 ハマったときの助け 第2部(Part2) 第12章 プログラミングパラダイム 第13章 オブジェクト指向プログラミングの4大要素 第14章 もっとオブジェクト指向プログラミング 第15章 知識を1つにまとめる 第3部(Part3) 第16章 Bash 第17章 正規表現 第18章 パッケージ管理 第19章 バージョン管理 第20章 知識を1つにまとめる 第4部(Part4) 第21章 データ構造 第22章 アルゴリズム 第5部(Part5)  第23章 プログラミングのベストプラクティス 第24章 プログラマーとしての最初の仕事 第25章 チームで働く 第26章 さらに学ぼう 第27章 次のステップ 第6部(Part6) 補章 より良いコードにするために 補章 継続して学ぶために 謝辞 訳者あとがき 索引

いまどきのアルゴリズムを使いこなす PHPプログラミング開発テクニック

クジラ飛行机
ソシム
おすすめ度
59
紹介文
「PHPの概要がわかった。何か作れないかな?」そんな人にぴったりのヒントが満載!豊富なサンプルプログラムは、もちろんダウンロード可能です。 第1章 PHPと開発環境 第2章 PHPでよく使うデータ構造 第3章 便利なアルゴリズム 第4章 日本語とテキスト解析 第5章 画像とアルゴリズム 第6章 機械学習 第7章 レポート出力とデータの可視化 Appendix

情報処理教科書 出るとこだけ! 基本情報技術者 テキスト&問題集 2019年版

矢沢 久雄
翔泳社
おすすめ度
59
紹介文
効率よく基礎力をつけるテキスト+最新本試験問題の解説=1冊で合格 本書は、基本情報技術者試験の出題分野の中から、 初学者がつまずきやすい分野「テクノロジに関する基礎概念」を 集中的にていねいに解説していきます。 著者が年間100回程度行っている基本情報処理技術者の 試験対策講義のノウハウをベースに、これまで繰り返し 出題されているテーマを中心に解説していきます。 基本情報技術者試験を初めて受験する方や、他の学習書を 難しいと感じた方にも、ぜひ読んでほしい試験対策書です。 コンパクトながら真の実力がつく構成で、午前試験だけでなく、 午後試験にも通用する基礎力を養うことができます。 付録には、直近の本試験「平成30年度秋期試験」の問題を 掲載します。また、同試験のおよび平成31年度春期試験の 解答・解説をダウンロード提供します。 【本書の特長】 (1)合格に必要な基礎がしっかり身につく (2)試験によく出る問題と用語を集中的に攻略 (3)最新の本試験の解答・解説を提供 第11章で解説している問題と用語は、これまで行われた 18回の試験を分析して割り出したものです。18回の試験で 16回出題されているテーマや、13回出題された用語もあり、 これらをおさえておけば得点アップにつながることは間違いありません。 本書は、合格点に到達するための基礎力を効率よく身につけ、 最新の本試験問題で到達度を確認できるテキスト&問題集です。 【目次】 第1章 受験ガイダンス 第2章 2進数 第3章 論理演算 第4章 データベース 第5章 ネットワーク 第6章 セキュリティ 第7章 アルゴリズムとデータ構造 第8章 テクノロジ系の計算問題 第9章 マネジメント系とストラテジ系の要点 第10章 マネジメント系とストラテジ系の計算問題 第11章 試験によく出る問題と用語Top100 第12章 平成30年度 秋期 基本情報技術者試験 問題と解答 (ダウンロード提供)平成30年度秋期試験 解説 (ダウンロード提供)平成31年度春期試験 解説 ※本書の読者特典のダウンロード期限は2019年12月31日までとなります。 第1章 受験ガイダンス  1-0 なぜ基本情報技術者試験を受けるのか?  1-1 基本情報技術者試験の内容  1-2 情報処理推進機構のWebページから入手できる情報  1-3 問題解法テクニック  1-4 学習方法と学習スケジュール  1-5 試験によく出る問題と用語 第2章 2進数  2-0 なぜ2進数を学ぶのか?  2-1 10進数と2進数の変換  2-2 2進数と16進数および8進数の変換  2-3 2の補数表現と小数点形式  2-4 シフト演算と符号拡張  2-5 2進数の練習問題  2-6 2進数の練習問題の解答・解説 第3章 論理演算  3-0 なぜ論理演算を学ぶのか?  3-1 論理演算とベン図の関係  3-2 論理演算で条件を結び付ける  3-3 論理演算によるマスク  3-4 論理演算による加算  3-5 論理演算の練習問題  3-6 論理演算の練習問題の解答・解説 第4章 データベース  4-0 なぜデータベースを学ぶのか?  4-1 E-R図  4-2 関係データベースの正規化  4-3 SQL  4-4 トランザクション処理  4-5 データベースの練習問題  4-6 データベースの練習問題の解答・解説 第5章 ネットワーク  5-0 なぜネットワークを学ぶのか?  5-1 ネットワークの構成とプロトコル  5-2 OSI基本参照モデル  5-3 ネットワークの識別番号  5-4 IPアドレス  5-5 ネットワークの練習問題  5-6 ネットワークの練習問題の解答・解説 第6章 セキュリティ  6-0 なぜセキュリティを学ぶのか?  6-1 技術を悪用した攻撃手法  6-2 セキュリティ技術  6-3 セキュリティ対策  6-4 セキュリティ管理  6-5 セキュリティの練習問題  6-6 セキュリティの練習問題の解答・解説 第7章 アルゴリズムとデータ構造  7-0 なぜアルゴリズムとデータ構造を学ぶのか?  7-1 基本的なソートのアルゴリズム  7-2 基本的なサーチのアルゴリズム  7-3 基本的なデータ構造  7-4 擬似言語の読み方  7-5 アルゴリズムとデータ構造の練習問題  7-6 アルゴリズムとデータ構造の練習問題の解答・解説 第8章 テクノロジ系の計算問題  8-0 なぜテクノロジ系の計算問題が出題されるのか?  8-1 基礎理論の計算問題  8-2 コンピュータシステムの計算問題  8-3 技術要素の計算問題  8-4 開発技術の計算問題  8-5 テクノロジ系の計算問題の練習問題  8-6 テクノロジ系の計算問題の練習問題の解答・解説 第9章 マネジメント系とストラテジ系の要点  9-0 なぜマネジメント系とストラテジ系の要点を学ぶのか?  9-1 マネジメント系の要点  9-2 ストラテジ系の要点  9-3 マネジメント系とストラテジ系の要点の練習問題  9-4 マネジメント系とストラテジ系の要点の練習問題の解答・解説 第10章 マネジメント系とストラテジ系の計算問題  10-0 なぜマネジメント系とストラテジ系の計算問題が出題されるのか?  10-1 マネジメント系の計算問題  10-2 ストラテジ系の計算問題  10-3 マネジメント系とストラテジ系の計算問題の練習問題  10-4 マネジメント系とストラテジ系の計算問題の練習問題の解答・解説 第11章 試験によく出る問題と用語Top100  11-0 なぜ試験によく出る問題と用語Top100を学ぶのか?  11-1 試験によく出る問題  11-2 試験によく出る問題の解答・解説  11-3 試験によく出る用語の解説  11-4 シラバスver4.0で追加された用語の解説 第12章 平成30年度 秋期 基本情報技術者試験問題と解答  12-0 なぜ試験問題の全問を解くのか?  12-1 午前試験の問題  12-2 午前試験の解答  12-3 午後試験の問題  12-4 午後試験の解答 (ダウンロード提供)平成30年度秋期試験 解説 (ダウンロード提供)平成31年度春期試験 解説

パターン認識と機械学習 上

C.M. ビショップ
丸善出版
おすすめ度
59

Pythonエンジニア ファーストブック

鈴木 たかのり
技術評論社
おすすめ度
59

うかる! 基本情報技術者 [午後・アルゴリズム編] 2022年版 福嶋先生の集中ゼミ

福嶋 宏訓
日本経済新聞出版
おすすめ度
59
紹介文
午後問題の中心テーマ「アルゴリズム」対策のテキスト。プログラム未経験でも安心の対話形式。 基本情報技術者試験の【午後試験】で問われる「アルゴリズム分野」は 文系初学者・プログラム未経験者にとってハードルが高いものです。 本書はこの「アルゴリズム分野」を、先生と学生の対話形式でやさしく解説します。 基本情報技術者試験は出題内容の見直しが行われ、 「擬似言語問題」と「プログラム言語問題」の配点が増加しました。 これらの攻略には「アルゴリズム分野」の理解が必須です。 プログラム未経験でも大丈夫! 解説動画+まとめページで安心! ◆こんな方にオススメ! ・文系でプログラムの経験がない ・アルゴリズムってそもそも何? ・スキマ時間で勉強したい ◆身近な例で説明 アルゴリズムって、そもそも何?というところからスタート。イメージしやすい「じゃんけん」や「自動販売機」の例を紹介し、「なぜその結果になるのか」「データがどのように処理されていくか」がわかるよう、丁寧に解説しています。 ◆読みやすい対話形式 文系初学者のキャラクターと先生のやりとりで講義が進みます。 紙の英和辞典で、「school」という単語を簡単に探せるのはどうしてですか? 学生「アルファベット順に単語が並んでいるので、だいたい、どのあたりにあるかがわかるからだと思います」 …ここで重要なのは、辞書は、単語が昇順に並んでいるので、だいたいの位置がわかり、目的の単語がだいたいの位置の前にあるか後ろにあるかもわかる、ということです。 ◆まとめページも充実 第1章から第4章まで、章の終わりに「その章で学んだこと」を用意しました。 特に重要な概念や記述形式、考え方をまとめたページで、復習に最適です。第5章には「疑似言語問題の攻略法はありますか?」「覚えておきたい処理パターン」を掲載しています。 また、巻末には「CBTの受験準備」も収録しました。 ◆スマホで12年分の動画解説! 過去12年・23回分(予定)、擬似言語問題の解説動画を著者Webサイトに用意しました。 著者が実際にプログラムを作り、動作させながら解説しているので「プログラムを動かすとどうなるか」を疑似体験できます。アルゴリズムの学習を始めたばかりの初学者でも理解が進みます。 第1章 アルゴリズム入門 第2章 アルゴリズムの考え方 第3章 基本アルゴリズム 第4章 応用アルゴリズム 第5章 擬似言語問題の演習

ゲームで学ぶ探索アルゴリズム実践入門~木探索とメタヒューリスティクス

青木 栄太
技術評論社
おすすめ度
59
紹介文
ゲームAIの技術要素には大きく分けて「ルール」「探索」「機械学習」の3つがあります。近年話題になることの多い機械学習ですが、機械学習だけでは遠い将来の状況を正確に読むことは難しく、特に探索がなければ真に強いAIは生まれません。また、ゲームAIの技術を競う各種コンテストなどでは使用できるメモリ量やファイルの容量に制限が課され、機械学習を利用することが現実的ではないケースもあります。これは実務においても同様で、与えられた要件によっては今も探索技術が主要素となり得ます。本書は、この探索技術とそれを支えるアルゴリズムにフォーカスを当て、ゲームAIを題材にその重要性と魅力を楽しく学ぶための入門書です。さまざまなゲームの種別に対応した探索アルゴリズムについて、動作のしくみと実装方法を丁寧に解説します。 ■第1章 ゲームと探索の世界 1.1 ゲームAIと探索 - 1.1.1 ゲームにおけるAIと探索 - 1.1.2 ゲームの種類と探索アルゴリズム 1.2 ゲームにおける探索の魅力 - 1.2.1 個人ゲーム開発にこそ探索! - 1.2.2 大規模商業ゲーム開発にも探索! - 1.2.3 多様化するプログラミングコンテストの武器に! ■第2章 開発環境の準備 2.1 Windows Subsystem for Linux[WSL]のインストール - 2.1.1 WSLの起動確認 - 2.1.2 CPUの仮想化機能の確認 - 2.1.3 BIOS/UEFIで仮想化機能を有効化 - 2.1.4 ディストリビューションの導入 - 2.1.5 パッケージの更新 - 2.1.6 C++開発環境のインストール ■第3章 文脈のある一人ゲームに使いたい探索アルゴリズム 3.1 サンプルゲーム紹介~数字集め迷路 - 3.1.1 数字集め迷路とは - 3.1.2 数字集め迷路の実装 3.2 貪欲法[Greedy] - 3.2.1 貪欲法の特徴と動作~全ての探索アルゴリズムの基礎! これさえあれば戦える!~ - 3.2.2 貪欲法の実装 3.3 ビームサーチ - 3.3.1 ビームサーチの特徴と動作~探索空間を見極めろ! コンテスト上級者も愛用する探索! - 3.3.2 ビームサーチの実装 3.4 Chokudaiサーチ - 3.4.1 Chokudaiサーチの特徴と動作~多様性を自動で確保! お手軽で初心者にオススメ! - 3.4.2 Chokudaiサーチの実装 ■第4章 文脈のない一人ゲームに使いたい探索アルゴリズム 4.1 サンプルゲーム紹介~オート数字集め迷路 - 4.1.1 オート数字集め迷路とは - 4.1.2 オート数字集め迷路の実装 4.2 山登り法 - 4.2.1 山登り法の特徴と動作~着実によい解を探索する! シンプルで安定感のあるアルゴリズム! - 4.2.2 山登り法の実装 4.3 焼きなまし法 - 4.3.1 焼きなまし法の特徴と動作~局所解を抜け出せ! マラソンマッチでおなじみのアルゴリズム! - 4.3.2 焼きなまし法の実装 ■第5章 交互着手二人ゲームに使いたい探索アルゴリズム 5.1 サンプルゲーム紹介~交互着手数字集め迷路 - 5.1.1 交互着手数字集め迷路とは - 5.1.2 交互着手数字集め迷路の実装 5.2 MiniMax法 - 5.2.1 MiniMax法の特徴と動作~「神の一手」が打てます。そう、この手法ならね - 5.2.2 MiniMax法の実装 5.3 AlphaBeta法 - 5.3.1 AlphaBeta法の特徴と動作~無駄は許さない! MiniMax法の正統進化! - 5.3.2 AlphaBeta法の実装 5.4 反復深化[Iterative Deepening] - 5.4.1 反復深化の特徴と動作~時間を無駄にしない! 最適な木の深さを見つけよう! - 5.4.2 反復深化の実装 5.5 原始モンテカルロ法 - 5.5.1 原始モンテカルロ法の特徴と動作~盤面評価不要! 勝率のよい手を選べ! - 5.5.2 原始モンテカルロ法の実装 5.6 MCTS[モンテカルロ木探索] - 5.6.1 MCTSの特徴と動作~敵を侮るな! 強者同士の勝負をシミュレーション! - 5.6.2 MCTSの実装 5.7 Thunderサーチ - 5.7.1 Thunderサーチの特徴と動作~筆者考案! 盤面評価を利用して有益なノードを探索! - 5.7.2 Thunderサーチの実装 ■第6章 同時着手二人ゲームに使いたい探索アルゴリズム 6.1 サンプルゲーム紹介~同時着手数字集め迷路 - 6.1.1 同時着手数字集め迷路とは - 6.1.2 同時着手数字集め迷路の実装 6.2 交互着手用アルゴリズムの適用 - 6.2.1 原始モンテカルロ法の実装 - 6.2.2 MCTSの実装 6.3 DUCT[Decoupled Upper Confidence Tree] - 6.3.1 DUCTの特徴と動作~コンテストで大注目! 同時着手ならこれ! - 6.3.2 DUCTの実装 ■第7章 よりよい探索をするためのテクニック 7.1 サンプルゲーム紹介~壁有り数字集め迷路 - 7.1.1 壁有り数字集め迷路とは - 7.1.2 壁有り数字集め迷路の実装 7.2 評価関数の設計 - 7.2.1 実スコア以外の補助スコアを加える - 7.2.2 実スコア以外の補助スコアを加える方針の実装 7.3 多様性の確保方針 - 7.3.1 同一盤面除去 - 7.3.2 同一盤面除去の実装 7.4 高速化 - 7.4.1 複数のビット列で盤面を表現 - 7.4.2 複数のビット列で盤面を表現する実装 - 7.4.3 単一のビット列で盤面を表現 - 7.4.4 単一のビット列で盤面を表現する実装 - 7.4.5 コピー回数の抑制 - 7.4.6 参照カウント方式によるコピー回数抑制の実装 ■第8章 実際のゲームへの応用 8.1 コネクトフォーをプレイするAIの実装 - 8.1.1 サンプルゲーム紹介~コネクトフォーとは - 8.1.2 コネクトフォーの実装 - 8.1.3 盤面のビットボード化による高速化 - 8.1.4 コネクトフォーにビット演算を適用する実装

世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~

Gayle Laakmann McDowell
マイナビ
おすすめ度
59
紹介文
トップIT企業が行う「コーディング面接」で出された問題を通しアルゴリズムとデータ構造に関する重要な問題とその解法を分かりやすく解説。コンピュータサイエンスにおける基礎的な理解をもう一段階上のレベルに引き上げ使いこなす方法を伝授。シリコンバレー系IT企業の面接時の実際とその戦略・アプローチ・就職方法について-実際に面接採用官だった著者が詳しくアドバイスします。 1 面接の流れ 2 面接試験の舞台裏 3 特殊な状況 4 面接の前に 5 行動に関する質問 6 技術的な質問 7 オファーとその後 8 問題 9 解法 10 謝辞 11 索引 12 プロフィール

アルゴリズム実技検定 公式テキスト[エントリー~中級編] (Compass Booksシリーズ)

岩下 真也
マイナビ出版
おすすめ度
59
紹介文
これからのIT人材必修の「アルゴリズム実技検定」初の公式テキスト登場! ■アルゴリズム実技検定(PAST)とは  アルゴリズム実技検定(PAST)とは、IT人材のプログラミングスキルを可視化することを目的としたAtCoder株式会社が主催する検定試験です。 ■アルゴリズム実技検定の中級認定まで対応  本書は、「エントリー」「初級」「中級」の出題範囲を網羅的に解説しています。  プログラミングの基礎知識から、各種アルゴリズムの解説、数学的な問題解決方法まで、アルゴリズム実技検定だけでなく、これからのソフトウェアエンジニアに要求される知識を丁寧に盛り込みました。  本書を通じて学習することで、「中級」に求められる「様々なアプローチがある課題において、適切なアルゴリズムを選択し、高速なプログラムを作成」できることを目指しましょう。 ■本書の特徴 □特徴1:はじめての挑戦でもこの1冊で準備できます!  はじめてのプログラミング、はじめての検定試験でも安心して挑戦できます。 ・問題の解き方から回答方法まで丁寧に解説 ・中級範囲に出題されるアルゴリズム(問題解決方法)も細かく図解 ・Pythonの特徴から基本文法、標準入出力も例を交えて丁寧に説明 □特徴2:実際の問題を解きながら学べます!  アルゴリズム実技検定で求められる知識を問題に取り組みながら得られます。 ・はじめての挑戦でもつまずかないように、概念図を豊富に掲載 ・はじめてではわかりづらい、問題文の読み解き方も丁寧に解説 ・過去にAtCoderやアルゴリズム実技検定で出題された問題を抜粋して解説 □特徴3:プログラマーに求められる知識も身につきます!  問題を解決するだけではなく、高速なプログラムの作成方法も学習できます。 ・課題に合わせて、適切なアルゴリズムの選択方法を解説 ・複数のアプローチがありえる問題では回答パターンを紹介 ・計算量を考えてプログラムを書き換える方法も丁寧に説明 ■本書の構成  第1章 アルゴリズム実技検定の挑戦にあたって  第2章 問題の解き方  第3章 アルゴリズムとコーディング  第4章 Pythonを使ったプログラミング[エントリー編]  第5章 基礎的なアルゴリズム[初級編]  第6章 応用的なアルゴリズム[中級編]  第7章 さらなる得点を狙うために 第1章 アルゴリズム実技検定の挑戦にあたって  1.1 試験要綱  1.2 スケジュール・学習方法の手引き  1.3 アルゴリズム実技検定の特徴  1.4 本書で使用するプログラミング言語"Python"について  1.5 実行環境の準備 第2章 問題の解き方  2.1 PAST 採点の仕組みと回答方法  2.2 問題を解く順番  2.3 受験時に準備しておくべきもの 第3章 アルゴリズムとコーディング  3.1 アルゴリズムについて  3.2 データ構造について  3.3 コーディングについて 第4章 Pythonを使ったプログラミング[エントリー編]  4.1 Pythonの特徴  4.2 Python の基本文法  4.3 標準入出力の使い方  4.4 整数、小数の使い方  4.5 文字列の使い方  4.6 配列の使い方  4.7 if文を用いた条件分岐  4.8 条件判定とTrue、Falseの使い方  4.9 for文とwhile文を用いた繰り返し  4.10 辞書型の使い方  4.11 問題を解いてみよう  4.12 その他の応用的な機能  4.13 PyPyについて 第5章 基礎的なアルゴリズム[初級編]  5.1 2次元配列  5.2 全探索  5.3 グラフの基礎 第6章 応用的なアルゴリズム[中級編]  6.1 中級認定に向けて  6.2 計算量  6.3 幅優先探索と深さ優先探索  6.4 動的計画法  6.5 集合に対する全探索と動的計画法  6.6 数学的問題  6.7 累積和  6.8 貪欲法  6.9 二分探索  6.10 最短路問題  6.11 最小全域木問題  6.12 組み合わせと数え上げ問題  6.13 クエリの処理 第7章 さらなる得点を狙うために  7.1 アルゴリズムを組み合わせる  7.2 頻出考察テクニックを身につける  7.3 複雑な解法を整理して解ききる 付録:さまざまなPythonの関数と記法

パターン認識と機械学習 下 (ベイズ理論による統計的予測)

C.M. ビショップ
丸善出版
おすすめ度
59

リバーシのアルゴリズム C++&Java対応―「探索アルゴリズム」「評価関数」の設計と実装 (I・O BOOKS)

Seal Software
工学社
おすすめ度
59
紹介文
本書では、多くの人のなじみの深いリバーシを題材に、思考ゲームを解くプログラムの作り方を解説します。本書を一通り読めば、思考ゲームが極めて単純な原理、すなわちMinimaxアルゴリズムに基づいて手を選んでいるということが分かるはずです。 1章 イントロダクション 2章 ボードの設計と実装 3章 探索アルゴリズム 4章 評価関数 5章 定石 6章 ゲームの実装

シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全

酒井 潤
KADOKAWA
おすすめ度
59
紹介文
現役シリコンバレーエンジニアが教える「最強のプログラミング」講義! 10万人が選んだ人気No.1オンライン講座が 超わかりやすくパワーアップして書籍化! 海外企業でも通用する 一流のプログラミング技術が学べます! ★基礎から応用、一流コードスタイルまで1冊で学べる★ 【応用編】ではニーズの高い実践的テクニックを中心に、 【入門編】では基礎から1歩ずつ、わかりやすく解説。 シリコンバレーのトップIT企業で活躍する著者が 世界標準のPythonスキルを一気に伝えます。 ★海外でも通用する 一流のプログラミング技術が身につく★ 知っていましたか?  アメリカのエンジニアの年収は日本の5~10倍です。 本書は「いつか海外で活躍したい」、 そんな夢の実現も強力にバックアップしてくれる 「海外進出の道しるべ」ともなる一冊です。 ★10万人が選んだ人気No.1講座の書籍化★ 本書のもととなったのは、オンライン講座Udemyで人気No.1を獲得したPython講座。 本格的な内容をわかりやすく伝える著者の講座は人気が高く、延べ20万人以上が受講しています(全講座計)。 本書はさらに内容を充実させてパワーアップ! 自分のペースでしっかり学べます。 独学の強い味方、「サンプルコード」の無料ダウンロードサービス付き。 ★エンジニアの成功戦略も教えます★ コラムでは、エンジニアのキャリア戦略の立て方、成功するポイント、独学のコツなども紹介。 文系出身、TOEIC300点代からスタートした著者が渾身のエールを送ります。 ★用語集、Pointなども充実★ コードを書くときの注意点、知っておきたい豆知識、 開発の現場で必要なことなどは 「Point」としてたっぷり掲載。 巻末には「用語集」も収録し、 徹底して実践的な内容となっています。 オンライン講座Udemyで9万人以上が選んだ人気No.1講座を完全書籍化! 超わかりやすくパワーアップして、基礎から応用、一流コードスタイルまで、世界で通用する「最強のプログラミング」が学べる! 学習を始める前に ~Pythonの環境設定 【入門編】 Lesson 1 Pythonの基本  1 変数の宣言と数値の計算をマスターしよう  2 文字列のさまざまな操作方法 Lesson 2 データ構造  1 複数データを並列にまとめる  2 変更できないリスト? いえ、タプルです  3 キーと値をセットで記憶する辞書型  4 データ同士の演算ができる集合 Lesson 3 制御フロー  1 読みやすいコードを書こう  2 条件に応じて処理を分岐させよう  3 繰り返し処理でデータを一気に処理しよう Lesson 4 関数と例外処理  1 何度も実行する処理の関数を作ろう  2 関数の応用をマスターしよう  3 内包表記でリストをシンプルに生成しよう  4 変数の有効範囲  5 例外処理 Lesson 5 モジュールとパッケージ  1 作成したパッケージをインポートしよう  2 Pythonのライブラリの使い方 Lesson 6 オブジェクトとクラス  1 クラスとメソッド  2 クラスをもっと活用してみよう Lesson 7 ファイル操作とシステム  1 ファイルの基本的な操作  2 ファイルの便利な活用方法  3 圧縮ファイルを扱おう  4 さらに高度なファイルに関する操作 【演習編】 Lesson 8 簡単なアプリケーションを作ってみよう 【応用編】 Lesson 9 コードスタイル  1 Pythonのコードスタイル  2 さらにくわしくPythonの書き方を知ろう Lesson 10 コンフィグとロギング  1 設定ファイルのさまざまな形式  2 ロギングの基本と適切な書き方  3 ログをメールで送信しよう  4 実行環境を切り替えて使う Lesson 11  Webとネットワーク  1 Webでよく使うファイル形式  2 Pythonで通信してみよう  3 PythonでWeb サーバーを作ろう  4 Webスクレイピングしてみよう Lesson 12 並列化  1 マルチスレッドで並列化しよう  2 マルチプロセスによる並列化  3 高水準のインターフェースを使って並列化しよう Lesson 13 データ解析  1 データ解析を始める前に  2 データをまとめて扱うnumpy  3 pandasで表形式のデータを扱う  4 matplotlibでグラフを描画する  5 scikit-learnで機械学習を行う  6 株価のデータ解析と予測

アルゴリズム図鑑 増補改訂版 絵で見てわかる33のアルゴリズム

石田 保輝
翔泳社
おすすめ度
59
紹介文
全世界で250万人が学んだアプリの書籍化、待望の増補改訂版!徹底的に図解した、「いちばんわかりやすいアルゴリズムの本」です。 イメージがつかめるから、わかる!楽しい! アルゴリズムをまるごとイラストにしました。 【本書のポイント】 ・基本的な33のアルゴリズム+7つのデータ構造をすべてイラストで解説 ・誌面がフルカラーなので、図の「動き」がわかりやすい ・各アルゴリズムの考え方や計算効率、問題点もフォロー ・全世界250万人が学んだ大人気アプリを書籍化 【内容紹介】 アルゴリズムはどんな言語でプログラムを書くにしても不可欠ですが、現場で教わることはめったになく、かといって自分で学ぶには難しいものです。 本書は、アルゴリズムを独学する人のために作りました。はじめて学ぶときにはイメージしやすく、復習するときには思い出しやすくなるよう、基本的な33のアルゴリズム+7つのデータ構造をすべてイラストにしています。ソートやグラフなどの「動き」を図で追うことで、考え方や仕組みを理解する手助けをします。 よいプログラムを書くために知っておかなきゃいけないアルゴリズムの世界を、楽しく学びましょう。 【目次(抜粋)】 ●序章 アルゴリズムの基本 ●第1章 データ構造 リスト/配列/スタック など ●第2章 ソート バブルソート/選択ソート/マージソート など ●第3章 配列の探索 線形探索/2分探索 ●第4章 グラフアルゴリズム 幅優先探索/ベルマン-フォード法/A*/クラスカル法/マッチングアルゴリズム など ●第5章 セキュリティのアルゴリズム 暗号の基本/公開鍵暗号方式/デジタル署名 など ●第6章 クラスタリング k-means法 など ●第7章 データ圧縮 ランレングス符号 など ●第8章 その他のアルゴリズム ユークリッドの互除法/ページランク/ハノイの塔 など 【旧版との主な違い】 ・7つのアルゴリズム+2つ性質の解説を加筆(クラスカル法、プリム法、マッチングアルゴリズム、ランレングス符号、一意復号可能符号、瞬時符号、ハフマン符号、文字列照合、クヌース-モーリス-プラット法) 序章 アルゴリズムの基本 0-1 アルゴリズムとは? 0-2 計算時間の測り方 第1章 データ構造 1-1 データ構造とは? 1-2 リスト 1-3 配列 1-4 スタック 1-5 キュー 1-6 ハッシュテーブル 1-7 ヒープ 1-8 2 分探索木 第2章 ソート 2-1 ソートとは? 2-2 バブルソート 2-3 選択ソート 2-4 挿入ソート 2-5 ヒープソート 2-6 マージソート 2-7 クイックソート 第3章 配列の探索 3-1 線形探索 3-2 2分探索 第4章 グラフアルゴリズム 4-1 グラフとは? 4-2 幅優先探索 4-3 深さ優先探索 4-4 ベルマン-フォード法 4-5 ダイクストラ法 4-6 A* 4-7 クラスカル法 4-8 プリム法 4-9 マッチングアルゴリズム 第5章 セキュリティのアルゴリズム 5-1 セキュリティとアルゴリズム 5-2 暗号の基本 5-3 ハッシュ関数 5-4 共通鍵暗号方式 5-5 公開鍵暗号方式 5-6 ハイブリッド暗号方式 5-7 ディフィ- ヘルマン鍵交換法 5-8 メッセージ認証コード 5-9 デジタル署名 5-10 デジタル証明書 第6章 クラスタリング 6-1 クラスタリングとは? 6-2 k-means 法 第7章 データ圧縮 7-1 データ圧縮と符号化 7-2 ランレングス符号 7-3 一意復号可能符号 7-4 瞬時符号 7-5 ハフマン符号 第8章 その他のアルゴリズム 8-1 ユークリッドの互除法 8-2 素数判定法 8-3 文字列照合 8-4 クヌース - モーリス - プラット法 8-5 ページランク 8-6 ハノイの塔

情報処理教科書 応用情報技術者 テキスト&問題集 2019年版

日高 哲郎
翔泳社
おすすめ度
59
紹介文
正統派のテキスト&問題集!7回分の過去問題解説で演習力もアップ! これ1冊で効率よく合格!テキストと問題で実践力をアップ! 本書は、テキストと問題が1冊に入ったオールインワンの 試験対策書です。“何”が“どう”出るのかが分かるテーマ別の 知識解説で無理なく学び、よく出る問題を厳選した確認問題で 実力をチェックできます。さらに直近の本試験にも対応しています。 分野別に基礎知識を解説する各章には、本文の簡潔な解説に加え、 欄外を利用して、用語解説や、試験で問われやすいポイント、 誤答を防ぐためのノウハウなどさまざまな情報を掲載しています。 過去問題を分析し、最新の用語も解説を加えているので、 2019年度の春期・秋期試験に標準を合わせた学習ができます。 各章の確認問題は、再出題されやすい年代の過去問題から 厳選しています。節末には午前問題、章末には午後問題を 配しているため、個別の基礎知識から広範囲の発展的な テーマまで習得することができます。 巻末には、2018年春期試験問題・解説を収録しています。 テーマ別の学習に加えて、直近の本試験演習を行うことで、 最新の試験傾向にも対応できます。 【本書の特徴】 (1)基礎知識の習得から問題演習までを1冊に凝縮 (2)25年以上、数々の合格者を輩出してきた解説ノウハウでわかりやすく学習できる (3)2016、2017年度春期・秋期試験および2018年度秋期、2019年度春期試験の、解答解説をPDFで提供 ※本書の読者特典のダウンロード期限は2019年12月31日までとなります。 応用情報技術者試験と基本情報技術者試験の違い 第1章●テクノロジ系  1.1 計算の基礎理論  1.2 プログラムの基礎理論  1.3 数理応用  1.4 プログラム言語  1.5 アルゴリズム 第2章●テクノロジ系  2.1 プロセッサ  2.2 メモリアーキテクチャ  2.3 入出力装置と入出力デバイス 第3章●テクノロジ系  3.1 システム構成技術  3.2 システムの性能・信頼性 第4章●テクノロジ系  4.1 OS の基本機能  4.2 記憶管理と同期・排他制御 第5章●テクノロジ系  5.1 データベース方式と設計  5.2 関係代数とデータベース言語  5.3 トランザクション処理  5.4 データベース応用 第6章●テクノロジ系  6.1 通信プロトコル  6.2 符号化と伝送  6.3 ネットワーク  6.4 ネットワーク応用 第7章●テクノロジ系  7.1 セキュリティ対策  7.2 情報セキュリティ対策とガイドライン 第8章●テクノロジ系  8.1 開発環境と開発手法  8.2 要求分析・設計技法  8.3 テスト・レビューの方法 第9章●テクノロジ系  9.1 アプリケーションシステムの構築  9.2 システム構築の関連知識  9.3 システム運用・保守 第10章●マネジメント系  10.1 プロジェクトマネジメント  10.2 サービスマネジメント 第11章●ストラテジ系  11.1 情報システム戦略とシステム企画  11.2 経営戦略マネジメント  11.3 ビジネスインダストリ  11.4 企業活動  11.5 法務  11.6 標準化 第12章  12.1 問題  12.2 解答・解説 第13章  13.1 問題  13.2 解答・解説 付録 応用情報技術者になるには

Head First Python 第2版 ―頭とからだで覚えるPythonの基本

Paul Barry
オライリージャパン
おすすめ度
59
紹介文
イラストや写真を多用したビジュアル重視の紙面で初心者に直観的に理解できると人気のHead FirstシリーズのPython版 人気の入門書、Head Firstシリーズ待望のPythonバージョン! イラストや写真を多用したビジュアル重視の紙面で初心者に直観的に理解できると人気のHead FirstシリーズのPython版です。前半でPythonの基本を一通り説明してから、実際に独自のWebアプリケーションをステップバイステップで構築する作業通じて、データベース管理、例外処理、データ処理などの理解を深めていきます。手を動かしながら学べる入門書の決定版です。

ゼロから作るDeep Learning ❷ ―自然言語処理編

斎藤 康毅
オライリージャパン
おすすめ度
59
紹介文
大ベストセラーの続編。さらに作る、さらに深くDeep Learningに迫る! 大ベストセラーの続編。さらに作る、さらに深くDeep Learningに迫る! コンピュータの専門書としては異例の大ヒットを記録した『ゼロから作るDeep Learning』の続編。第二弾の本書では、自然言語処理や時系列データ処理に焦点を当て、ディープラーニングを使ってさまざまな問題に挑みます。word2vecやRNN(リカレントニューラルネットワーク)、LSTMやGRU、seq2seqやAttention……ディープラーニングを支えるこれら最先端の技術を実装レベルでマスターできます。前作同様、平坦な言葉で分かりやすくをモットーに、高度に見える技術の裏側をじっくり説明し、実際に作ることで理解を深めます。最後までコンセプトは変わらない。ゼロから作る!

プログラマーになりたい! 改訂新版

長岡 英史
日経BP
おすすめ度
59
紹介文
プログラマーを仕事にしたいなら、まずはひと通りの“開発”を体験してみませんか。スキルアップのための指針が必ず見つかります! ■ 開発の仕事をWebアプリケーションで実体験! 「プログラマーが足りない!」との指摘をよく耳にします。プログラマーやソフトウェアエンジニアを目指している人も多いことでしょう。でも、ゼロから目指すとなると未経験ということに…。何から勉強すればいいか、迷うこともあるのではないでしょうか。 そこで、まずは本書でソフトウェアの開発を“経験”してみませんか? 本書では、たとえプログラミング経験がない人でも、プログラムを作って、サーバーに転送し、誰にでも使ってもらえるようにWeb上のサービスとして公開するところまでできるよう、必要な作業やプロセスを解説しました。プログラミング経験がまったくなくても、本書の解説に沿って作業を進めていけば自分のサービスとしてアプリケーションを公開するところまでひと通りの開発を自分の手で実現できます。 本書を通じて開発したWebアプリケーションは、面接でアピールできる自分の実績になります。面接の場ではぜひ胸を張って「こういうアプリケーションを独力で公開しました」と見てもらってください。 プログラミングを学ぶ際の王道は、文法の基礎からコツコツと学んでいくこと。それはもちろん大事です。でも、それだけだといつになったら何らかのアプリケーションを作れるようになるのか、その道筋がわからず行き詰まってしまう人も少なくありません。 その点で、本書でコーディングからデプロイまで、アプリケーション開発を“実際にやってみる”ことにより、コツコツと学んだ基礎が実際の開発現場でどのように役立つのか、必要とされるのかを実感することができるでしょう。もし、基礎を学びながらモヤモヤとしたものを抱え、学習がはかどらなくなってしまっているのなら、いったん本書で全体像を把握してみることをお薦めします。全体を見渡すことで、基礎の重要性がわかると学習の効率も格段に上がるはず。 本書で取り上げた主なサービスやツールは、AWS(Amazon Web Services)、Django、Git、Herokuです。すべてクラウドで完結しているので、お手元の環境のOSやスペックに依存せず、Webを利用できる環境であれば誰でも同じように開発プロセスをトレースできます。 第1章 プログラマーと開発の仕事 第2章 Webアプリケーション開発の基本 第3章 Pythonの基礎の基礎 第4章 Webアプリ開発――開発環境の作成 第5章 Webアプリ開発――コーディング 第6章 Webアプリ開発――デプロイ 第7章 これからのスキルアップ戦略

プログラマーなら知っておきたい40のアルゴリズム 定番・最新系をPythonで実践! (impress top gear)

Imran Ahmad
インプレス
おすすめ度
59
紹介文
さまざまなアルゴリズムを一挙に把握できる。問題解決力、データ活用力を養成!>>本書は、アルゴリズムの基本から始まり、検索やソートなどの実例を示します。より複雑なアルゴリズムとしては、線形計画法、ページランキング、グラフアルゴリズムを説明。機械学習アルゴリズム背後のロジックも理解できるようにします。不正分析やレコメンデーションエンジンのケーススタディを取り上げ、データ処理・大規模処理・暗号化のアルゴリズムも紹介。本書は、さまざまなアルゴリズムを活用したい方にとってその手掛かりとなるガイドブックです。

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

Al Sweigart
オライリージャパン
おすすめ度
59
紹介文
手作業だと膨大に時間がかかる処理を一瞬でこなすPython 3プログラムの作り方について学べる入門書。 Pythonによる自動処理入門。とにかく、わかりやすい! ファイル名の変更や表計算のデータ更新といった作業は、日々の仕事の中で頻繁に発生します。ひとつふたつ修正するだけであれば問題はありません。しかし、それが数十、数百となってくると手に負えません。そのような単純な繰り返し作業はコンピュータに肩代わりしてもらうとすごくラクになります。本書では、手作業だと膨大に時間がかかる処理を一瞬でこなすPython 3プログラムの作り方について学びます。対象読者はノンプログラマー。本書で基本をマスターすれば、プログラミング未経験者でも面倒な単純作業を苦もなくこなす便利なプログラムを作れるようになります。さらに、章末の練習問題を解くことで、類似のタスクを自動処理するスキルをもっと高めることができます。

アルゴリズム的思考力が身につく! プログラミングコンテストAtCoder入門

大槻 兼資
KADOKAWA
おすすめ度
59
紹介文
プログラマに必須のアルゴリズムの知識がAtCoderで楽しく身につく! AtCoder株式会社は、日本発のプログラミングコンテスト運営会社として2012年6月20日に設立され、年々活動の幅を拡げてきました。 AtCoderの開催するコンテストは、「与えられた問題を解決するアルゴリズムを考え、それを正しく実装する」ことを競技化したものです。 本書は「AtCoderでアルゴリズムを学びたい」「AtCoderのコンテストに参加したい」という方に向けたAtCoderの入門書です。 コンテストで出題された過去問を用いて、問題の解き方を体系的に解説しました。一つ一つの問題を解説する際には、「なぜそのように考えるのか」が明快になるように心がけました。 筆者は、プログラマのための技術情報共有サービスサイトQiitaに、次のタイトルの記事を投稿しています(2018年3月)。 「AtCoderに登録したら次にやること~これだけ解けば十分闘える!過去問精選10問~」 この記事は、AtCoder の過去問10 問を実際に解くことで、読者がAtCoderへスムーズに入門できるように試みたものです。 本書はこの記事にいくつかのトピックを追加して、さらにC++ とPython3の両言語で学べるようにして、できあがりました。 AtCoderのコンテストは、参加者の人生を大きく変える力があります。 コンテストの問題を解いていくことで、アルゴリズム的思考力が身につきます。コンテストでよい成績を収めてレーティングを上げると、市場価値も高まります。また、コンテストに参加することで他の参加者とのつながりを得て、交流を深めることもできます。そしてなにより、AtCoder のコンテストは、ゲームのように楽しいものです。 ~「まえがき」より~ 登録者数30万人超のプログラミングコンテストサイト「AtCoder」に対応した初の書籍。アルゴリズムの知識とPythonとC++によるコーディングを専門家が指南!コーディングテスト対策にも◎ 第1章 AtCoderとは 第2章 AtCoderの始め方 第3章 初級編~ここからスタート!~ 第4章 中級編~典型を徹底マスター~ 第5章 計算量 第6章 上級編~本格的なアルゴリズムの世界へ~

Rによるやさしい統計学

山田 剛史
オーム社
おすすめ度
59
紹介文
第1部 基礎編(Rと統計学 1つの変数の記述統計 2つの変数の記述統計 母集団と標本 統計的仮説検定 ほか) 第2部 応用編(ベクトル・行列の基礎 データフレーム 外れ値が相関係数に及ぼす影響 統計解析で分かること・分からないこと 二項検定 ほか) 付録

詳解 確率ロボティクス Pythonによる基礎アルゴリズムの実装 (KS理工学専門書)

上田 隆一
講談社
おすすめ度
59
紹介文
初学者が学びやすいように、PythonのJupyter Notebookを利用した。第一人者が書き下ろす至極の入門書! ◆◆日本機械学会教育賞 受賞(2020年度)!!◆◆ 僕たちは、こんな本を待っていた。 Sebastian Thrunらの名著『確率ロボティクス』(マイナビ)の翻訳者であり、 同分野の第一人者でもある、上田隆一氏が書き下ろす至極の入門書!   ・理論→実装という一貫した流れで、丁寧に解説。まさにバイブル! ・Jupyter Notebook対応だから、すぐに実践できる! ・コードはGitHubで全部公開! 【第1章「はじめに」より抜粋】  本書は、確率をロボットの認識機能や制御に用いることを考える分野「確率ロボティクス」の入門書です。ロボットの開発者、研究者になるには機械、計算機、制御に関する勉強も必要なうえ、上記のような状況なので、確率論、統計学の理解も重要になってきています。たくさん勉強しなければならないので「手短に」といいたいところですが、確率というものに実感がもてるまでには頭の訓練が必要です。  筆者は学生のとき、確率に対する実感を養うために(実際は家賃込みの月6万円の仕送りを増やすために)、学生寮、後楽園、高田馬場あたりの「現場」でかなりの訓練をして仕送りを減らしていましたが、そちらをおすすめするわけにはいきません。そこでロボティクスでよく使われるアルゴリズムを書いて動かしてもらい、実感をもってもらおうと企画したのが本書です。 【主な内容】 第1部 準備 第1章 はじめに 第2章 確率・統計の基礎 第3章 自律ロボットのモデル化 第4章 不確かさのモデル化 第2部 自己位置推定とSLAM 第5章 パーティクルフィルタによる自己位置推定 第6章 カルマンフィルタによる自己位置推定 第7章 自己位置推定の諸問題 第8章 パーティクルフィルタによるSLAM 第9章 グラフ表現によるSLAM 第3部 行動決定 第10章 マルコフ決定過程と動的計画法 第11章 強化学習 第12章 部分観測マルコフ決定過程 付録A ベイズ推論によるセンサデータの解析 付録B 計算 第1部  準備 第1章 はじめに 1.1 「分からない」を扱う 1.2 確率ロボティクスの歴史 1.3 本書について 第2章 確率・統計の基礎 2.1 センサデータの収集とJupyter Notebook 上での準備 2.2 度数分布と確率分布 2.3 確率モデル 2.4 複雑な分布 2.5 多次元のガウス分布 2.6 まとめ 第3章 自律ロボットのモデル化 3.1 想定するロボット 3.2 ロボットの動き 3.3 ロボットの観測 3.4 コードの保存と再利用 3.5 まとめ 第4章 不確かさのモデル化 4.1 ノートブックの準備 4.2 ロボットの移動に対する不確かさの要因の実装 4.3 ロボットの観測に対する不確かさの要因の実装 4.4 まとめ 第2部  自己位置推定とSLAM 第5章 パーティクルフィルタによる自己位置推定 5.1 自己位置推定の問題と解法 5.2 パーティクルの準備 5.3 移動後のパーティクルの姿勢更新 5.4 観測後のセンサ値の反映 5.5 リサンプリング 5.6 出力の実装 5.7 まとめ 第6章 カルマンフィルタによる自己位置推定 6.1 信念分布の近似と描画 6.2 移動後の信念分布の更新 6.3 観測後の信念分布の更新 6.4 まとめ 第7章 自己位置推定の諸問題 7.1 KLDサンプリング 7.2 より難しい自己位置推定 7.3 推定の誤りの考慮 7.4 MCLにおける変則的な分布の利用 7.5 まとめ 第8章 パーティクルフィルタによるSLAM 8.1 逐次SLAMの解き方 8.2 パーティクルフィルタによる演算 8.3 パーティクルの実装 8.4 ランドマークの位置推定の実装 8.5 重みの更新の実装 8.6 FastSLAM 2.0 8.7 まとめ 第9章 グラフ表現によるSLAM 9.1 問題の定式化 9.2 仮想移動エッジによる軌跡の算出 9.3 移動エッジの追加 9.4 地図の推定 9.5 センサ値が2変数の場合 9.6 まとめ 第3部 行動決定 第10章 マルコフ決定過程と動的計画法 10.1 マルコフ決定過程 10.2 経路計画問題 10.3 方策の評価 10.4 価値反復 10.5 ベルマン方程式と最適制御 10.6 まとめ 第11章 強化学習 11.1 Q学習 11.2 Sarsa 11.3 n-step Sarsa 11.4 Sarsa(λ) 11.5 まとめ 第12章 部分観測マルコフ決定過程 12.1 POMDP 12.2 Q-MDP 12.3 ランドマークの足りない状況でのナビゲーション 12.4 AMDP 12.5 まとめ 付録A ベイズ推論によるセンサデータの解析 付録B 計算

Pythonスタートブック [増補改訂版]

辻 真吾
技術評論社
おすすめ度
59

退屈なことはPythonにやらせよう 第2版 ―ノンプログラマーにもできる自動化処理プログラミング

Al Sweigart
オライリージャパン
おすすめ度
59
紹介文
日常業務でよく直面する面倒で退屈な作業を、Pythonと豊富なモジュールを使って自動化!ベストセラーの改訂版。 和書5万部突破のベストセラー書の改訂版! 一歩先行くハイパフォーマンスなビジネスパーソンからの圧倒的な支持を獲得し、自作RPA本の草分けとして大ヒットしたベストセラー書の改訂版。劇的な「業務効率化」「コスト削減」「生産性向上」を達成するには、単純な繰り返し作業の自動化は必須です。本書ではWordやExcel、PDF文書の一括処理、Webサイトからのダウンロード、メールやSMSの送受信、画像処理、GUI操作といった日常業務でよく直面する面倒で退屈な作業を、Pythonと豊富なモジュールを使って自動化します。今回の改訂では、GmailやGoogleスプレッドシートの操作、Pythonと各種モジュールの最新版への対応、演習等を増補しています。日本語版では、PyInstallerによるEXEファイルの作成方法を巻末付録として収録しました。

新・明解Pythonで学ぶアルゴリズムとデータ構造 (新・明解シリーズ)

柴田望洋
SBクリエイティブ
おすすめ度
59
紹介文
最高のアルゴリズム入門書 すべてのPythonプログラマに贈る! アルゴリズムとデータ構造入門書の最高峰。 最高のアルゴリズム入門書 本書は、Pythonで実装した豊富なプログラム例を通じて、アルゴリズムとデータ構造の基礎を身につけるためのテキストです。 基本的なアルゴリズムとデータ構造に始まって、目的とするデータを見つける探索、データの並びを一定の順序で並びかえるソート、そして、スタック・キュー・再帰的アルゴリズム・線形リスト・2分探索木などを学習します。 解説にあたっては、難しい理論や概念を視覚的なイメージで理解できるように、213点もの図表を提示しています。本書に示す136編のプログラムは、単なるサンプルではなく、実際に動作するものばかりです。すべてのプログラムを読破すれば、かなりのコーディング力が身につくはずです。 最高のアルゴリズム入門書 すべてのPythonプログラマに贈る! アルゴリズムとデータ構造入門書の最高峰。 第1章 基本的なアルゴリズム 第2章 データ構造と配列 第3章 探索 第4章 スタックとキュー 第5章 再帰的アルゴリズム 第6章 ソート 第7章 文字列探索 第8章 線形リスト 第9章 木構造

PythonでExcel、メール、Webを自動化する本

中嶋英勝
SBクリエイティブ
おすすめ度
59
紹介文
プログラミング初心者でも全部できる! Excelシート間のコピペをはじめ、単純なパソコン仕事は小さなプログラムを書くことで自動で行うことができます。 こうしたプログラムを書けるようになることが、自分の仕事を効率化したい社会人にとって大きな武器になることは間違いありません。 本書ではプログラミング言語Pythonを使って、パソコン仕事の中心であるExcel作業を自動化する方法を紹介します。 Excelの自動化といえば「マクロ・VBA」が定番ですが、Pythonの強みは ・Excelアプリを起動しなくてよい ・メールやWebブラウザなども簡単に自動化できる という点にあります。 本書ではExcelとともにメール、Webの自動化もしっかり扱います。これにより、Webから抽出したデータをExcelファイルに保存してメールで送信、といった連携も行えるようになり、仕事での活用の幅が広がります。 プログラミング初心者である社会人が、実際に自分の仕事が自動化できるように、必要な情報をもれなく丁寧に解説することを心掛けました。本書を片手に「新しい仕事のやり方」を始めましょう! <本書の方針> ・オブジェクトなどの難しいプログラム理論は一切使いません。 ・一番単純な道具だけで、準備に時間をかけず、すぐ始められます。 ・実践的な例題で、実務で本当に使えるプログラムを紹介します。 第1章 Pythonプログラミングの基本 1-1 プログラムを書いて実行する方法を覚える 1-2 変数を使ったコードを書いてみよう 1-3 複数のデータはリストに入れる 1-4 複数のデータをループで処理する 1-5 データの状態に応じて処理を分ける 1-6 IDLEを使いやすく設定する 第2章 PythonでExcelファイルを操作する 2-1 Excelファイルの基本構造を理解しよう 2-2 ブックの開き方・保存方法を覚えよう 2-3 プログラムでセルの値を読み書きしよう 2-4 セルを1行ずつ読み書きする 2-5 シートの操作方法を覚えよう 2-6 複数のシートをまとめる 2-7 絶対に覚えておきたいプログラミングのコツ 第3章 PythonでCSVファイルを操作する 3-1 CSVファイルを読み込んでみよう 3-2 CSVファイルにデータを書き込んでみよう 3-3 Excelブックと相互に変換する 第4章 Excelファイルの転記・集計をPythonでおこなう 4-1 転記・集計を実現するExcelの三大関数とは 4-2 Excelのマスタを取り込む 4-3 Excelのマスタからデータを検索する 4-4 表のデータを別のブックに転記する 4-5 条件を満たすデータの個数や合計を求める 4-6 Pythonで自動化するメリットとは 第5章 帳票作成をPythonでおこなう 5-1 請求書作成の手順を整理する 5-2 顧客ごとの売上データの絞り込み 5-3 顧客ごとの請求書を作成する 5-4 請求書を印刷してPDFとして保存しよう 5-5 業務全体ではExcelと良いとこ取りを目指す 第6章 Pythonでもっと作業を自動化するには 6-1 Pythonの強みは豊富なライブラリ 6-2 PythonならメールもWebも自動化できる 第7章 Pythonで複数の人にまとめてメール送信する 7-1 メールサーバーとの交信方法 7-2 メールで送るメッセージを作成する 7-3 メールを自動送信する 第8章 PythonでWebから情報を収集する 8-1 Seleniumのインストール 8-2 ブラウザを操作してみる 8-3 Selenium IDEでブラウザ操作を記録 8-4 Webページから情報を読み取る 8-5 実際のWebページから情報を読み取る 8-6 Webからの情報収集を自動化する

Python2年生 データ分析のしくみ 体験してわかる! 会話でまなべる!

森 巧尚
翔泳社
おすすめ度
59
紹介文
こんどはデータ分析に挑戦!「数式一切なし」で理解できちゃう!データ分析のきほんとしくみ Pythonでデータ分析を体験してみよう! 【データ分析を一緒に体験しよう】 スクレイピングなどで集めた大量のデータ。 どうやって分析してたらよいか、困っていませんか? 「数式があって難しそう」 「プログラムも大変そう」 と思っている方も多いはず。 本書は、そうした方に向けて、サンプルを元にやさしく データ分析の方法を解説しています。 【Python2年生について】 「Python2年生」は、「Python1年生」を読み終えた方を対象とした入門書です。 ある程度、技術的なことを盛り込み、本書で扱う技術について身に着けてもらいます。 『Python2年生 スクレイピングのしくみ』(ISBN:9784798161914)も刊行されています。 【対象読者】 ・データの分析方法を知りたい初心者 【本書のポイント】 ヤギ博士&フタバちゃんと一緒に、データ分析の考え方から丁寧に解説。 データを分析する時に必要な前処理の方法や、データの集まりの見方、 データを見やすいグラフにする方法、データの分布の見方、予測の立て方を 解説する書籍です。 【著者プロフィール】 森 巧尚(もり・よしなお) アプリの開発や、技術書や電子工作マガジンなどでの執筆活動。関西学院大学非常勤講師、 関西学院高等部非常勤講師、成安造形大学非常勤講師、プログラミングスクールコプリ講師など、 プログラミングに関する幅広い活動を行っている。 近著に『Python1年生』、『Python2年生 スクレイピングのしくみ』、 『Java1年生』、『動かして学ぶ!Vue.js開発入門』(いずれも翔泳社)、 『楽しく学ぶ アルゴリズムとプログラミングの図鑑』(マイナビ出版)などがある。 第1章 データ分析って何? LESSON 01 データ分析って何 LESSON 02 データ分析の手順:PPDACサイクル LESSON 03 Jupyter Notebookをインストールしよう LESSON 04 Jupyter Notebookの使い方 第2章 集めたデータは前処理が必要 LESSON 05 表データを読み込もう LESSON 06 データをざっくりと眺める LESSON 07 データのどこを使う? LESSON 08 データのミスをチェックする 第3章 データの集まりをひとことでいうと?:代表値 LESSON 09 データを平らに均(なら)す LESSON 10 平均値を代表といっていいの? LESSON 11 平均値が同じなら、同じといっていいの? 第4章 図で特徴をイメージしよう:グラフ LESSON 12 データのばらつきがわかる LESSON 13 基本的なグラフを作ろう LESSON 14 ばらつきのわかるグラフ LESSON 15 グラフをわかりやすく調整する 第5章 これって普通なこと?珍しいこと?:正規分布 LESSON 16 データのばらつきを数値で表す LESSON 17 自然なばらつき LESSON 18 この値は普通なこと?珍しいこと? LESSON 19 このデータは自然なばらつき? LESSON 20 違うばらつきのデータでの比較ができる 第6章 関係から予測しよう:回帰分析 LESSON 21 2種類のデータの関係性の強さ:相関係数 LESSON 22 散布図の上に線を引いて予測 LESSON 23 総当たりで表示させる散布図 LESSON 24 アヤメのデータを見てみよう

仕事ではじめる機械学習

有賀 康顕
オライリージャパン
おすすめ度
59
紹介文
機械学習やデータ分析の道具をどのようにビジネスに生かしていけば良いのか、「仕事で使う」という観点から整理。 機械学習を実際の業務で利用する時に知っておくべき全体像が分かる! 機械学習やデータ分析の道具をどのようにビジネスに生かしていけば良いのか、不確実性の高い機械学習プロジェクトの進め方などを「仕事で使う」という観点から整理します。 プロジェクトのはじめ方や、システム構成、学習のためのリソースの収集方法など、読者が「実際どうするの?」と気になるであろう点を中心にまとめています。「人工知能でいい感じの成果を出してくれ」とあいまいな指示をされたとき、本書で学んだことが活きてくるに違いありません。

最短コースでわかる Pythonプログラミングとデータ分析

赤石 雅典
日経BP
おすすめ度
59
紹介文
Pythonの基本からデータ分析まで、1冊で学べる本。データを分析するのに必要最小限の知識を最短コースで習得できる。  身近なデータをPythonで分析できるようになるための知識を、最短コースで身に付けられる本です。Pythonのホントの基本から、データ分析に必要なPythonライブラリの使い方、データ分析の実践例までを一気に学べます。プログラミングの経験がない方もこの1冊を読めば、実際のデータ分析を始められます。    ベストセラーの「最短コースでわかる ディープラーニングの数学」「Pythonで儲かるAIをつくる」などを執筆した著者が送るデータ分析&AI書籍の第4弾。いつもの平易な解説で、初学者も安心して学べます。  本書は次のような方に最適です。 (1)プログラミング言語自体を知らないが、データ分析のためにこれから勉強したいという方 (2)Pythonのプログラミングは理解しているが、pandasなどの分析用ライブラリがわからないのでAI書籍の実習コードが読めない方 (3)データ分析の全体像がつかめず、いざデータ分析をしようとすると、どこから手を付けていいかわからない方  本書において、Pythonプログラミングとデータ分析を「最短コース」で学べるようにしたポイントは三つあります。 (1)学習内容を最低限に抑える  Python自体も、pandasなどの分析用ライブラリも、機能は多いですが、データ分析で本当に必要なものは意外と多くありません。各領域で本当に必要な機能に絞り込んで解説しています。データ分析の実務でほとんど登場しないPythonの機能は、思い切って全部落としました。Pythonやpandas、Matplotlibなど、それぞれを分厚い本で学ぶ必要はなく、本書1冊で身に付けられます。 (2)演習問題でプログラミングの実地訓練を積む  テーマ(節)ごとに演習問題を設けていて、実際のコーディングによる訓練でプログラミングの実務スキルが身に付きます。 (3)開発環境(Google Colab)上の試行錯誤で体得  関数の細かい挙動について、トライアンドエラーを繰り返して体験・実験により理解できます。  実際にデータ分析ができるようになるには、さらに「洞察の導出」という難しいタスクがあります。このタスクは内容が抽象的なだけに、なかなか体系的には学べません。そこで本書では「この業務要件でこのデータを分析した場合、こんな洞察が得られる」という話をたくさん入れ込みました。このような具体例を通して、自分自身のテーマに対して洞察を導くためのヒントが得られます。  本書を読了した方は、プログラミングとデータ分析という必須スキルを身に付けられ、ニーズの高いDX人材のど真ん中に位置できます。 Pythonの基本からデータ分析まで、1冊で学べる本。データを分析するのに必要最小限の知識を最短コースで習得できる。 1章 Pythonプログラミング入門  Google Colabの基本操作、変数、データ型、 条件分岐、関数とメソッド、リストとループ処理、タプルと辞書、関数定義、やや高度なループ処理 2章 データ分析ライブラリ入門編  ライブラリ入門、NumPy入門、Matplotlib入門、pandas入門 3章 データ分析ライブラリ中級編  pandas活用、データ読み込み、確認・加工(前処理)、集計、可視化、検索・結合、日付データの処理 4章 データ分析実践編  公開データセットから知見を導出、相関関係と因果関係の違い、仮説と検証

漫画でわかる デジタルマーケティング×データ分析

上野 佑馬(ウマたん)
ビジネス教育出版社
おすすめ度
59
紹介文
個人の地域密着型アウトドアショップがデジタルマーケティングで業績を飛躍的にアップさせていくストーリーに乗せて、DMの基礎を… 個人の地域密着型アウトドアショップがデジタルマーケティングで業績を飛躍的にアップさせていくストーリーに乗せて、DMの基礎を学ぶ

みんなのPython 第4版

柴田 淳
SBクリエイティブ
おすすめ度
58
紹介文
今、最も熱いプログラミング言語、それがPython Python入門書のデファクトスタンダードが4年ぶりに大改訂。 近年、Pythonの利用が、機械学習、AIなどの科学技術分野へ 大きく広がっている現状を踏まえて、すべてのパートに手を入れ いくつかの新章を追加しました。 次の10年を担うPythonプログラマを養成するための一冊。 Chapter01 プログラミング言語Python Chapter02 Pythonでプログラミングをはじめよう Chapter03 Pythonの基礎をマスターする Chapter04 組み込み型を使いこなす Chapter05 Pythonと関数型プログラミング Chapter06 クラスとオブジェクト指向開発 Chapter07 クラスの継承と高度なオブジェクト指向機能 Chapter08 モジュール Chapter09 スコープとオブジェクト Chapter10 例外処理 Chapter11 標準ライブラリを使う Chapter12 Pythonとデータサイエンス Chapter13 Pythan2 ・AnacondaやJupyter Notebookなど、Pythonの最新開発環境に対応 ・NumPy、matplotlibなどの科学技術系ライブラリに対応 ・Windows、macOS、Linux対応 Chapter01 プログラミング言語Python Chapter02 Pythonでプログラミングをはじめよう Chapter03 Pythonの基礎をマスターする Chapter04 組み込み型を使いこなす Chapter05 Pythonと関数型プログラミング Chapter06 クラスとオブジェクト指向開発 Chapter07 クラスの継承と高度なオブジェクト指向機能 Chapter08 モジュール Chapter09 スコープとオブジェクト Chapter10 例外処理 Chapter11 標準ライブラリを使う Chapter12 Pythonとデータサイエンス Chapter13 Pythan2

Cython ―Cとの融合によるPythonの高速化

Kurt W. Smith
オライリージャパン
おすすめ度
58
紹介文
Pythonの表現性とC/C++の速さを備えたCythonを使って、パフォーマンス向上を図るための手法を披露。 Pythonの「遅さ」を解消するCythonの解説書! 豊富なライブラリで科学計算から金融工学まで利用が広がるPythonですが、速度が遅いという弱点を抱えています。この「遅さ」を解消すべく登場したのがCythonです。本書はPythonの表現性とC/C++の速さを備えたCythonを使って、パフォーマンス向上を図るための手法を示します。科学技術計算や統計分析の分野では恒常的にある「Pythonの速度を向上させたい」というニーズに応える一冊。

Python3年生 機械学習のしくみ 体験してわかる! 会話でまなべる!

森 巧尚
翔泳社
おすすめ度
58
紹介文
待望の「機械学習のしくみ」が登場!ヤギ博士&フタバちゃんと一緒に機械学習の世界を体験してみよう! ヤギ博士・フタバちゃんと一緒に 機械学習のしくみを学ぼう! 【機械学習をいちから学んでみよう!】 「最近よく耳にする人工知能と機械学習について知りたい」 「機械学習ってどのようなことをするの?」 と思っている方は多いと思います。 本書はそうした方に向けて「機械学習」について いちからやさしく解説します。 【Python3年生について】 「Python1年生」「Python2年生」を読み終えた方を対象とした入門書です。 (※「Python3年生」から初めて学ぶ方でもわかるように工夫しています) 【読者対象】 機械学習の初心者 【本書のポイント】 ヤギ博士&フタバちゃんと一緒に、 機械学習のしくみについて、 サンプルを動かしながら、 楽しく学ぶことができます。 【著者プロフィール】 森 巧尚(もり・よしなお) アプリの開発や、技術書や電子工作マガジンなどでの執筆活動。 関西学院大学非常勤講師、関西学院高等部非常勤講師、 成安造形大学非常勤講師、大阪芸術大学非常勤講師、プログラミングスクールコプリ講師など、 プログラミングに関する幅広い活動を行っている。 近著に『Python1年生』、『Python2年生 スクレイピングのしくみ』、『Python2年生 データ分析のしくみ』、 『Java1年生』、『動かして学ぶ! Vue.js開発入門』(いずれも翔泳社)、 『楽しく学ぶ アルゴリズムとプログラミングの図鑑』(マイナビ出版)などがある。 第1章 機械学習の準備 01 機械学習ってなんだろう? 02 分けることは、わかること 03 機械学習の準備をしよう 第2章 サンプルデータを見てみよう 04 scikit-learn のサンプルデータセット 05 サンプルデータセットを自動生成しよう 第3章 機械学習の手順を理解しよう 06 データを用意する 07 データを学習用とテスト用に分ける 08 モデルを選んで、学習する 09 モデルをテストする 10 新しい値を渡して、予測する 11 分類の状態を可視化しよう 第4章 機械学習のいろいろなアルゴリズム 12 回帰:線形回帰 13 分類:ロジスティック回帰 14 分類:SVM(サポートベクターマシン) 15 分類:決定木 16 分類:ランダムフォレスト 17 分類:k-NN(k 近傍法) 18 クラスタリング:k-means(k 平均法) 第5章 チノふたたび! 画像から数字を予測しよう 19 データを準備する 20 学習データを準備する 21 学習させる 22 予測させる 23 教師なし学習を利用して、データをイメージしよう 24 さらに先へ進もう

競技プログラミングの鉄則 ~アルゴリズム力と思考力を高める77の技術~ (Compass Booksシリーズ)

米田 優峻
マイナビ出版
おすすめ度
58
紹介文
"競プロ" で必要なテクニックを1冊に凝縮! 競技プログラミング(競プロ)は、問題を解くことでプログラミング能力を競う大会です。本書では、競プロで必要なアルゴリズム・データ構造・考察テクニックを丁寧に解説します。さらに、知識を定着させるための例題・演習問題が150問以上掲載されています。 本書は、競プロのコンテストで勝ちたい、アルゴリズムを本格的に学びたい、技術力向上に繋げたいなど、様々な目的で利用できるものとなっています。   [本書の特徴]  ・競プロで必要な77個のテクニックを網羅 ・320点超のフルカラーの図でわかりやすく解説 ・知識を身に付ける演習問題153問 ・全問題が「自動採点システム」に対応 ・新傾向の「ヒューリスティック・最適化」も解説   [本書の構成]  序章 競技プログラミング入門 第1章 アルゴリズムと計算量 第2章 累積和 第3章 二分探索 第4章 動的計画法 第5章 数学的問題 第6章 考察テクニック 第7章 ヒューリスティック 第8章 データ構造とクエリ処理 第9章 グラフアルゴリズム 第10章 総合問題 終章 さらに上達するには   [本書で扱うトピック(抜粋)]  全探索/2進法/一次元の累積和/二次元の累積和/配列の二分探索/答えで二分探索/しゃくとり法/半分全列挙/部分和問題/ナップザック問題/ビットDP/最長増加部分列問題/素数判定法/ユークリッドの互除法/繰り返し二乗法/包除原理/ゲーム問題/偶奇を考える/一手先を考える/後ろから考える/山登り法/焼きなまし法/ビームサーチ/スタック/キュー/優先度付きキュー/連想配列/文字列のハッシュ/ダブリング/セグメント木/深さ優先探索/幅優先探索/ダイクストラ法/Union-Find/最小全域木問題/最大フロー問題/二部マッチング問題/ほか多数 序章 競技プログラミング入門 第1章 アルゴリズムと計算量 第2章 累積和 第3章 二分探索 第4章 動的計画法 第5章 数学的問題 第6章 考察テクニック 第7章 ヒューリスティック 第8章 データ構造とクエリ処理 第9章 グラフアルゴリズム 第10章 総合問題 終章 さらに上達するには

Python2年生 スクレイピングのしくみ 体験してわかる!会話でまなべる!

森 巧尚
翔泳社
おすすめ度
58
紹介文
データ収集の基本!スクレイピングを体験してみよう! Pythonでスクレイピングを体験してみよう! 【スクレイピングとは】 機械学習やデータ分析になくてはならない「データ」。 このようなデータは、インターネット上に膨大にありますが、Pythonを使えば効率よくデータ収集できます。 こうした手法を「スクレイピング」といいます。 サイト自体もオープンデータ化が進んでおり、データを集めやすい環境が整ってきています。 【Python2年生について】 「Python2年生」シリーズは、「Python1年生」を読み終えた方を対象とした入門書です。 ある程度、技術的なことを盛り込み、本書で扱う技術について身に着けてもらいます。 【ターゲット】 ・ネット上からデータ収集を行う初心者 ・データ分析の手前の初心者 【本書の売り】 ヤギ博士&フタバちゃんと一緒に、インターネットからのファイルのダウンロード方法、 HTML解析の方法、いろいろなデータの読み書き、 APIの使い方といったデータ収集と便利なライブラリを利用した簡単な可視化手法を解説する書籍です。 また最終的にデータ収集を自動化する方法も簡単に解説します。 第1章 Pythonでデータをダウンロード  LESSON 01 スクレイピングってなに?  LESSON 02 Pythonをインストールしてみよう  LESSON 03 requestsでアクセスしてみよう 第2章 HTMLを解析しよう  LESSON 04 HTMLを解析してみよう  LESSON 05 ニュースの最新記事一覧を取得してみよう  LESSON 06 リンク一覧をファイルに書き出そう  LESSON 07 画像を一括ダウンロードしよう 第3章 表データを読み書きしよう  LESSON 08 pandasを使ってみよう  LESSON 09 さまざまなデータの加工  LESSON 10 グラフで表示してみよう  LESSON 11 Excelファイルを読み書きしてみよう 第4章 オープンデータを分析してみよう  LESSON 12 オープンデータってなに?  LESSON 13 郵便局:郵便番号データ  LESSON 14 e-Stat:政府統計の相互窓口  LESSON 15 キッズすたっと:探そう統計データ  LESSON 16 自治体のデータ:データシティ鯖江 第5章 Web APIでデータを収集しよう  LESSON 17 Web APIってなに?  LESSON 18 OpenWeatherMapってなに?  LESSON 19 現在の天気を調べよう  LESSON 20 現在から5日間(3時間ごと)の天気を調べよう

Python最速データ収集術 〜スクレイピングでWeb情報を自動で集める (IT×仕事術)

清水 義孝
技術評論社
おすすめ度
58
紹介文
「競合商品のデータを毎回探すのは大変」 「常にチェックしている売上ランキングをまとめおきたい」 「情報を集めるのに手間取って、じっくり分析する時間がない」 こんな情報収集の悩みは、プログラムを使えば解決できます! 多くのビジネスにおいて、自社や他社の商品情報や人気トレンド、口コミ評判などのデータ収集・分析は欠かせません。しかし、膨大なネット上の情報を手作業で集めるのは容易ではありません。データ収集に時間がかかりすぎてしまい、本来の目的である分析に時間をかけられないケースも多いでしょう。 そんなときは、データ収集をプログラムで自動化してみましょう! 本書では、プログラミング言語Python(パイソン)を使ったスクレイピングという技術で、WebページやSNSなどから自動でデータ収集する方法を学べます。初心者でも実践できるように、プログラミングやWebページのしくみの知識は必要最小限に抑え、練習用のページやサンプルのプログラムでスクレイピングを実践しながら学びます。練習用ページなどには、実際のビジネス利用シーンをイメージしやすい事例を用意しました。 プログラミングで業務を自動化・効率化したいビジネスパーソン必見の1冊です! ●はじめに ■第1章 データ収集をハックする ■■1-1 プログラムを使って自動でデータを集める ■■■データを集める重要性が高まっている自動収集の必要性とメリット ■■■本書で取り上げるトピック ■■1-2 自動で集められるデータとは ■■■データの分類を知る ■■■データの提供方法を知る ■■■本書で取り上げる自動収集データ ■■1-3 自動収集の注意点を押さえる ■■■1. サイトの利用規約を守る ■■■2. データ取得には十分な間隔をあけて、サーバーに負担をかけすぎない ■■■3. 取得したデータの利用に際しては、著作権や個人情報を侵害しない ■第2章 Webからデータを集める準備 ■■2-1 データ収集に役立つPython ■■2-2 Pythonが使える環境を準備する ■■■Anacondaを準備する ■■■Jupyter Notebookの使い方を理解する ■■■Jupyter Notebookを起動する ■■■Pythonのプログラムを実行する ■■■エディットモード・コマンドモードを理解する ■■■ショートカットキーを理解する ■■■作成したノートブックを保存する ■■■Jupyter Notebookを終了する ■■2-3 Python超入門 ■■■データ型と変数を理解する ■■■数値計算をする ■■■文字や数値を画面に出力する(print関数) ■■■データ構造を押さえる(リスト、タプル、辞書) ■■■条件で処理を分岐させる(if文、else) ■■■くり返し処理を押さえる(for文、while文) ■■■関数で何度もおこなう処理をまとめる ■■■ライブラリの使い方を理解する ■第3章 データ自動収集のしくみを押さえる ■■3-1 Webページ・WebAPIのしくみを理解する ■■■Webページの通信方法を押さえる ■■■HTMLを理解しよう ■■■HTMLタグの種類を押さえる ■■■HTMLタグの属性を押さえる ■■■HTMLの階層構造を理解する ■■■CSSを理解しよう ■■■JavaScriptを知ろう ■■■Web APIを理解しよう ■■3-2 データのフォーマットや種類を理解する ■■■フォーマットの種類と特徴 ■■■データのおもな種類とオープンデータ ■■3-3 Webページからデータを取得する方法を理解する ■■■データ取得の3ステップ ■■3-4 ステップ1:HTMLをダウンロードする ■■■requestsをインストールする ■■■requestsの使い方を理解する ■■■ダウンロードしたHTMLの内容を確認する ■■3-5 ステップ2:データを抽出する ■■■Beautiful Soupをインストールする ■■■Beautiful Soupの使い方を理解する ■■■Chrome開発者ツールの使い方を理解する ■■■データを抽出する3つの方法 ■■■抽出方法1 要素を検索して取り出す ■■■抽出方法2 HTMLの階層を移動して探し出す ■■■抽出方法3 CSSセレクタを用いて要素を指定する ■■■3つの抽出方法の選び方 ■■■3つの方法を組み合せて使う ■■■CSSセレクタをもっと理解する ■■3-6 ステップ3:データを保存する ■■■テキストデータを保存する ■■■バイナリデータ(画像、PDF、EXCELファイル)を保存する ■■3-7 Webページから実際にデータを取得する ■■■練習用ページを確認する ■■■作成するプログラムを理解する ■■■データ取得方法を検討する ■■■一覧・詳細ページからデータを取得する ■■■取得したデータを保存する ■第4章 Pythonでデータを自動で集める ■■4-1 売れ筋ランキング情報を収集しよう ■■■売れ筋でマーケットトレンドを把握しよう ■■■Webページからの情報収集の準備 ■■■データ取得方法を検討する ■■■ライブラリをインポートする ■■■一覧ページからデータを取得する ■■■詳細ページからデータを取得する ■■4-2 人気商品の画像情報を集めよう ■■■活用の幅が広がる画像情報 ■■■画像情報収集の準備 ■■■データ取得方法を検討するライブラリをインポートする ■■■一覧ページからデータを取得する ■■■一覧ページから取得したデータを保存する ■■■画像データをダウンロード・保存する ■■4-3 メディアから記事情報を収集しよう ■■■メディアから定性情報を収集しよう ■■■記事情報収集の準備 ■■■データ取得方法を検討する ■■■ライブラリをインポートする ■■■記事データを取得する ■■■取得した記事データを保存する ■■4-4 オープンデータの統計情報を収集しよう ■■■オープンデータで自社サービスを強化しよう ■■■政府統計の総合窓口e-Statとは ■■■e-Stat APIの基本的な使い方 ■■■統計データを取得する ■■■取得した統計データを保存する ■■4-5 TwitterAPIから口コミ情報を集めよう ■■■口コミ情報でサービス・製品の改善点を分析しよう ■■■Twitter APIを準備する ■■■Twitter APIの基本的な使い方 ■■■ツイートデータを取得する取得したツイートデータを保存する ■第5章 集めたデータを活用しやすい形にする ■■5-1 データ活用までに必要な準備 ■■5-2 保存したデータを取り出す ■■■データ表の形式を理解する ■■■CSVファイルを読み込む ■■■読み込んだデータを確認する ■■5-3 データを整形する ■■■不要な列データを取り除く ■■■欠損データに対応する ■■■データ型を変換する ■■■整形したデータを保存する ■■5-4 データをグラフで表示する ■■■必要な行だけを取り出す ■■■データフレームを結合する ■■■統計値を取得する ■■■グラフに表示する ●索引 ●著者プロフィール

Pythonでつくる ゲーム開発 入門講座

廣瀬 豪
ソーテック社
おすすめ度
58
紹介文
大手メーカーで活躍してきたクリエイターが ゲーム開発のノウハウをゼロから教えます! 本書はPythonを使用した、ゲームプログラミングの解説書です。 類書とは異なり、終始一貫「ゲーム開発」に焦点を当て、 今書いているプログラムがどのような"動き"に反映され、 どのような"面白さ"に結びつくのかを、正しく学ぶことができます。 一般的なソフト開発ではなく「ゲーム開発の作法」をきちんと学ぶことによって、ゲーム好きな読者の皆さんの就職や趣味といったリアルな世界がより充実してくれることを願い、出版されました。 【読者対象】 ○ゲーム業界に就職したい学生・社会人 ○SNSや同人で自作ゲームを発表したい方 ○落ち物パズル、RPGの作り方を知りたい方 ○一般ソフトとゲーム制作の違いを知りたい方 ○Pythonを始めたけど作るものが浮かばない方 ……高校生ぐらいから読めます! 【本書の特長】 ○業界の基礎知識やプログラマーの役割からきちんと解説 ○Pythonの基本文法をしっかり解説、プログラミング初心者も安心 ○プログラム1行ごとに説明を付けており、理解しやすい ○豊富な図解とイラストを用い、イメージで理解できる ○開発に必要な素材はすべて無償ダウンロードできる クイズ、すごろく、おみくじ、診断アプリ、迷路、自動生成ダンジョン、落ち物パズル、本格PRGなど……簡単なミニゲームから難しいものまで幅広く教材を用意しています。 さらに、読者特典として3つのおまけゲームもプレゼント! すべてのゲームをつくり終えた時、あたなのプログラミングスキルは何倍にも向上しているに違いありません。 本書を機に、ぜひゲームプログラミングの世界に飛び込んでみてください! Prologueゲームプログラマーになろう! Chapter 1 Pythonのインストール Lesson 1-1 Pythonとは? Lesson 1-2 Pythonのインストール Lesson 1-3 Pythonを起動しよう COLUMN ゲームクリエイターって儲かるの? Chapter 2 Pythonを始めよう Lesson 2-1 計算してみる Lesson 2-2 文字列を出力する Lesson 2-3 カレンダーを出力する Lesson 2-4 プログラミングの準備 Lesson 2-5 プログラムを記述しよう Lesson 2-6 入出力命令を知ろう Lesson 2-7 プログラムの記述の仕方 COLUMN ゲームが完成するまで Chapter 3 プログラミングの基礎を学ぼう Lesson 3-1 変数と計算式 Lesson 3-2 リストについて Lesson 3-3 条件分岐について Lesson 3-4 繰り返しについて Lesson 3-5 関数について COLUMN ゲームの開発費はどれくらい? その1 Chapter 4 importの使い方 Lesson 4-1 モジュールについて Lesson 4-2 カレンダーの復習 Lesson 4-3 日時を扱う Lesson 4-4 乱数の使い方 COLUMN RPGで逃げるのに失敗する確率 Chapter 5 CUIでつくるミニゲーム Lesson 5-1 CUIとGUI Lesson 5-2 クイズゲームを作る Lesson 5-3 すごろくを作る Lesson 5-4 消えたアルファベットを探すゲームを作る COLUMN ゲームの開発費はどれくらい? その2 Chapter 6 GUIの基礎1 Lesson 6-1 GUIについて Lesson 6-2 ラベルを配置する Lesson 6-3 ボタンを配置する Lesson 6-4 キャンバスを使う Lesson 6-5 おみくじを引くソフトを作る COLUMN キャンバスに図形を表示する Chapter 7 GUIの基礎2 Lesson 7-1 テキスト入力欄を配置する Lesson 7-2 複数行のテキスト入力欄を配置する Lesson 7-3 チェックボタンを配置する Lesson 7-4 メッセージボックスを表示する Lesson 7-5 診断ゲームを作る COLUMN RGBによる色指定 Chapter 8 本格的なゲーム開発の技術 Lesson 8-1 リアルタイム処理を実現する Lesson 8-2 キー入力を受け付ける Lesson 8-3 キー入力で画像を動かす Lesson 8-4 迷路のデータを定義する Lesson 8-5 二次元画面のゲーム開発の基礎 COLUMN ゲームソフトを完成させるには Lesson 8-6 ゲームとして完成させる COLUMN デジタルフォトフレームを作る Chapter 9 落ち物パズルを作ろう! Lesson 9-1 ゲームの仕様を考える Lesson 9-2 マウス入力を組み込む Lesson 9-3 ゲーム用のカーソルの表示 Lesson 9-4 マス上のデータを管理する Lesson 9-5 ブロックを落下させるアルゴリズム Lesson 9-6 クリックしてブロックを置く Lesson 9-7 ブロックが揃ったかを判定するアルゴリズム Lesson 9-8 正しいアルゴリズムを組み込む Lesson 9-9 タイトル画面とゲームオーバー画面 Lesson 9-10 落ち物パズルの完成 COLUMN winsoundで音を鳴らす Chapter 10 Pygameの使い方 Lesson 10-1 Pygameのインストール Lesson 10-2 Pygameのシステム Lesson 10-3 画像を描画する Lesson 10-4 図形を描画する Lesson 10-5 キー入力を行う Lesson 10-6 マウス入力を行う Lesson 10-7 サウンドを出力する COLUMN Pygameで日本語を使う Chapter 11 本格RPGを作ろう! 前編 Lesson 11-1 ロールプレイングゲームについて Lesson 11-2 迷路を自動生成する Lesson 11-3 ダンジョンを作る Lesson 11-4 ダンジョン内を移動する Lesson 11-5 戦闘シーンを作る その1 Lesson 11-6 戦闘シーンを作る その2 Lesson 11-7 戦闘シーンを作る その3 COLUMN ゲームの画面演出 287 Chapter 12 本格RPGを作ろう! 後編 Lesson 12-1 ロールプレイングゲームの全体像 Lesson 12-2 ファイルのダウンロードとプログラムの実行 Lesson 12-3 プログラムリスト Lesson 12-4 プログラムの詳細 COLUMN Pythonでのファイル処理 Chapter 13 オブジェクト指向プログラミング Lesson 13-1 オブジェクト指向プログラミングについて Lesson 13-2 クラスとオブジェクト Lesson 13-3 tkinterを使ってオブジェクト指向を学ぶ Lesson 13-4 オブジェクト指向プログラミングをもっと学ぶ COLUMN 筆者も苦労したオブジェクト指向プログラミング Appendix 池山高校Python研究部 Intro ゲームをつくろう! 1つ目 一筆書き迷路ゲーム 2つ目 英単語学習ソフト 3つ目 ブロック崩し

ゲーム作りで楽しく学ぶ Pythonのきほん

森 巧尚
マイナビ出版
おすすめ度
58
紹介文
ゲームを作りながらPythonを楽しく学ぶ! プログラミングを習得する一番効率的な方法、それはゲームを作りながら学ぶこと。 文法だけを学んでも、何に、どうやって使うかわからないままでは、きちんとプログラミングを覚えたとは言えません。 本書の特徴は「プログラミング学習に最適なPythonを使って」、「ゲームを作りながらプログラミングの実践的な考え方を身に付けられる」ことです。 PART1では「Pythonの基礎知識」を学び、PART2ではその知識をもとにpygameを使って「ゲームを作る」2つのパートで構成されています。 「いきなりゲームを作るなんて難しそう!」 そう感じる人もいるかもしれませんが大丈夫。 まずは、サンプルコードを真似しながら手を動かしてプログラムが動くことを実感してみましょう。 Pythonに詳しいやさしいカエルくんがしっかり丁寧に教えてくれます。 サンプルファイルもダウンロードできるから、自分で書いたプログラミングが動かないときもしっかりサポート。 プログラミングで一番大切なことは、命令をたくさん覚えることでも、エラーなく正しく書くことでもありません。 もちろんそれらも大事。でも一番は、「自分で考えたアイデアをカタチにする」ことなんです。 「ゲームってこうやって作るんだ」「シューティングゲームってこうやって動いていたんだ!」 新しい発見をしながら学習した知識は、しっかり身に付きます。 自分で考えたゲームやアイデアを形にできる瞬間は、とても楽しいですよ。 「プログラミングには興味があるけど、どうやって勉強したらいいんだろう?」 「何度も挑戦してるけど難しくて脱落してしまった……」 そんなふうに考えているプログラミング入門者、Python入門者にぜひ手に取っていただきたい1冊です! 【本書で作るゲーム】 PART1ではPythonの基礎を学びながら「体重と身長を入力してBMI値を出す」簡単なアプリのようなものを作っていきます。 PART2ではpygameをインストールして、 ・「衝突判定を使ったアクションゲーム」、 ・「ボール反射を利用したブロック崩しゲーム」、 ・「集大成のシューティングゲーム」 など本格的なゲームを作っていきます。 作れるゲームが増えていくことで感じる「できた!」という達成感は、まるでゲームをクリアしたときのような快感にも似ていますよ。 【本書の特徴】 ・ゲームを作りながらPythonとプログラミングの基本が学べる ・Pythonに詳しいカエルくんがやさしく教えてくれる ・『お手本のコードを真似して書く』→『動かす』の積み重ねで知識が定着、しっかり身に付く ・ダウンロードできるサンプルファイルつき ========================================================== PART 1 Pythonを学ぼう ========================================================== CHAPTER 1 Pythonってなに? ---------------------------------------------------------- 1.1 Pythonを始めよう 1.2 Pythonのインストール 1.3 IDLEでPythonに触れてみよう 1.4 最初の命令はprint 1.5 ファイルを作ってプログラミング ---------------------------------------------------------- CHAPTER 2 プログラムの基本1 順次、変数 ---------------------------------------------------------- 2.1 プログラムの3つの基本 順次、分岐、反復 2.2 順次 上から順番に、実行する 2.3 変数 2.4 データ型 2.5 ユーザーからの入力はinput 2.6 inputと計算でアプリを作ろう! ---------------------------------------------------------- CHAPTER 3 プログラムの基本2 条件分岐、ランダム ---------------------------------------------------------- 3.1 分岐 もしも~だったら、○○する 3.2 ランダム コンピュータのサイコロ 3.3 if文とランダムでアプリを作ろう ---------------------------------------------------------- CHAPTER 4 プログラムの基本3 反復、たくさんのデータ ---------------------------------------------------------- 4.1 たくさんのデータはリストに入れて使う 4.2 反復 同じ処理をくり返す 4.3 range くり返す範囲を決める 4.4 リストでアプリを作ろう ---------------------------------------------------------- CHAPTER 5 プログラムをまとめる 関数、ループ ---------------------------------------------------------- 5.1 関数 仕事をひとまとめにする 5.2 モジュールで分割 5.3 ループ 条件を満たす間くり返す 5.4 関数とループでアプリを作ろう ========================================================== PART 2 ゲームを作ろう ========================================================== CHAPTER 1 pygameで絵を描こう ---------------------------------------------------------- 1.1 pygameでゲームを作ろう 1.2 pygameの基本 1.3 図形や、文字、画像を描こう 1.4 グラフィックスを動かそう ---------------------------------------------------------- CHAPTER 2 キーやマウスで動かそう ---------------------------------------------------------- 2.1 キーで絵を動かそう 2.2 マウスで絵を動かそう 2.3 ボタンを作ろう ---------------------------------------------------------- CHAPTER 3 画面の切り換えで紙芝居 ---------------------------------------------------------- 3.1 1ページを1つの関数にまとめる 3.2 一本道の紙芝居 3.3 枝分かれの紙芝居 ---------------------------------------------------------- CHAPTER 4 衝突判定でアクションゲーム ---------------------------------------------------------- 4.1 キャラクターを上下左右に移動する 4.2 他のRectとの衝突判定 4.3 複数のRectとの衝突判定 4.4 ワナをたくさんばらまく 4.5 ワナと衝突したらゲームオーバー 4.6 ゴールと衝突したらゲームクリア 4.7 追いかけてくるオバケ登場! ---------------------------------------------------------- CHAPTER 5 ボールを反射してブロック崩し ---------------------------------------------------------- 5.1 ボールをバーで打ち返す 5.2 ボールが画面の下に移動したら、ゲームオーバー 5.3 ブロックをたくさん並べる ---------------------------------------------------------- CHAPTER 6 ブロック崩しから、シューティングゲームへ ---------------------------------------------------------- 6.1 自機を左右に移動 6.2 UFOが落下する 6.3 自機とUFOが衝突したら、ゲームオーバー 6.4 弾とUFOが衝突したら、UFOが消える 6.5 星を降らせて、スコアを追加 ========================================================== APPENDIX 巻末付録 Pygameリファレンス ========================================================== ・Pygameの命令一覧 ・色の名前リストプログラム

アルゴリズムとデータ構造 (岩波講座 ソフトウェア科学 3)

石畑 清
岩波書店
おすすめ度
58

マスターアルゴリズム 世界を再構築する「究極の機械学習」

ペドロ・ドミンゴス
講談社
おすすめ度
58
紹介文
アルゴリズムの歴史を神経科学、進化生物学、物理学、統計学、計算機科学の観点から展開し、究極のマスターアルゴリズを模索する。 世界有数の研究者による“機械学習の説明書“。2015年アメリカでの発売当初から研究者の間で話題となった力作が、『パターン認識と機械学習』などの翻訳を手がけた神嶌敏弘博士の訳で満を持して刊行。一般向けのきめ細やかな訳注も加えた。 囲碁AI、AmazonやNetflixのお薦め機能、iPhoneのSiri。私たちの生活に溶け込んでいる機械学習とは何か? 観測衛星、DNAシーケンサ、量子加速器などのデータから、機械学習は自然界の謎をすべて解き明かすのか? 蓄えられた莫大なデータはアメリカ大統領選から企業のサービスまで影響を与え、陸・海・空を機械学習で自動操縦される無人車両が飛び交う。機械学習によって、世界はどう変わるのか? アルゴリズムの歴史を解説するとともに、世界を再構築する究極の「マスターアルゴリズム」の存在を探究。 マスターアルゴリズムが存在する根拠を、神経科学、進化生物学、物理学、統計学、および計算機科学の観点から軽妙かつ縦横に展開する。知的好奇心が沸き立つ1冊。六七質のイラストが世界観を表現。 ペドロ・ドミンゴス(著者) ワシントン大学ポール・アレン コンピュータサイエンス&エンジニアリング学部教授。AAAS(アメリカ科学振興協会)およびAAAI(人工知能振興学会)フェロー。1992年リスボン工科大学Instituto SuperiorTecnico修士課程修了(電子工学・コンピュータサイエンス)。1997年カリフォルニア大学アーバイン校にて博士取得(情報・コンピュータサイエンス)。マルコフ論理ネット、影響最大化問題、データストリーム、敵対的学習、sum-productネットなど顕著な業績が知られている、世界有数の機械学習研究者である。KDD2003、SRL2009ではプログラム委員長を務める。IMLS(国際機械学習学会)の発起人。”Machine Learning ”誌編集委員。SIGKDD Innovation Award、IJCAI John McCarthy Awardを筆頭に受賞多数。 神嶌敏弘(訳者) 1994年京都大学大学院工学研究科修士課程修了(情報工学専攻)。1994年電子技術総合研究所入所。2001年京都大学にて博士取得(情報学)。現在は産業技術総合研究所にて、機械学習やデータマイニングの手法、特に公平性配慮型データマイニングと推薦システムや個人化技術などについて研究。 携わった書籍に、人工知能学会監修『深層学習』(編/近代科学社)、トレバー・ヘイスティ他『統計的学習の基礎』(共監訳/共立出版)、C.M.ビショップ『パターン認識と機械学習』(共訳/丸善出版)などがある。 2019年人工知能学会 AI ELSI賞 Perspective部門受賞。 第1章 機械学習革命 機械学習の目的を述べ、実世界に機械学習が与える影響を紹介。まず、計算機科学のアルゴリズム、プログラム、複雑性などの概念を説明し、「機械学習とはアルゴリズム自体を創るアルゴリズムである」ことを解説。ビジネス、科学、政治、安全保障の各分野で機械学習がどのように使われているか、その重要性にも言及する。 第2章 マスターアルゴリズム 現状の機械学習の問題点を克服した「マスターアルゴリズム」を開発するという本書の道筋を提示。マスターアルゴリズムが存在する根拠を、神経科学、進化生物学、物理学、統計学、および計算機科学の観点から展開。マスターアルゴリズムが満たすべき条件とは何か? 現状の機械学習を「記号主義者、コネクショニスト、進化主義者、ベイズ主義者、類推主義者」の5つの学派に分け、これらの長所を備えたものがマスターアルゴリズムであるとの道筋を示す。 第3章 ヒュームの「帰納の問題」 あらゆる知的活動は記号の操作に還元できる、と考える「記号主義者」を扱う章。 第4章 脳はどうやって学習しているのか 神経科学の知見に基づく「コネクショニスト」のニューラルネットを扱う章。 第5章 進化生物学 ― 自然の学習アルゴリズム 生物の進化を模擬的に実行する「進化主義者」の手法を扱う章。 第6章 ベイズ師の聖堂にて 不確実性に焦点を当てた「ベイズ主義者」の手法を扱う章。 第7章 あなたはあなたのそっくりさん 似たものはその振る舞いも似ているという着想に基づく「類推主義者」の手法を扱う章。 第8章 先生に教わらずに学ぶ 教示情報を使わない、クラスタリング、次元削減、チャンキングの教師なし学習、自ら調べて学ぶ強化学習、繋がりのあるものごとを学ぶ関係学習を紹介。 第9章 パズルのピースがはまるとき 著者の考えるマスターアルゴリズム候補を、軽妙な寓話を通じて、その中核となるマルコフ論理ネットを軸に語っていく。そしてこの候補がマスターアルゴリズムに至るために必要なものは何かを模索。 第10章 機械学習時代の世界へ 高度な機械学習技術が社会にもたらす影響を論じる。機械学習モデルと人間との関わり合い、自身の代理人モデルがある社会、データの共有の必要性と手段、雇用・安全保障・技術的特異点の行く先。そして最後に人類の行く先について、踏み込んだ意見を述べる。

仕事を自動化する! Python入門講座

廣瀬 豪
ソーテック社
おすすめ度
58
紹介文
面倒くさい日々の作業は、プログラミングで簡単に処理しよう。 ビジネスの現場で自動化・効率化を実現する入門書の決定版! 本書は日常業務の効率化・自動化を目標に、「Python」というプログラミング言語でビジネス用のアプリケーション・ソフトウェア開発を学ぶ入門書です。 効率化や自動化、あるいはビジネスソフトという言葉を耳にすると、プログラミング未経験者や初心者の方は難しそうと感じるかもしれませんが、心配は無用です。 Pythonは、とても学びやすいプログラミング言語です。本書は、初学者が理解できるようにプログラミングの基礎から学び始める構成になっています。 また、Pythonや他のプログラミング言語ですでにソフトウェアを開発できるスキルをお持ちで、 「本格的に自動化プログラムを組みたい」「GUIを用いたソフトウェア開発をしたい」という方のために、Pythonのプログラミング・テクニックも網羅しています。 Chapter 1 プログラミングを始めよう! Section 1-1 Pythonとは? Section 1-2 ハードウェアとソフトウェア Section 1-3 作業の自動化について理解しよう! Section 1-4 プログラミングの準備〜拡張子の表示〜 Section 1-5 Pythonをインストールしよう! Section 1-6 Pythonを起動しよう! Column Pythonを優秀な部下にしよう! Chapter 2 Pythonに色々させてみよう! Section 2-1 IDLEの使い方 Section 2-2 計算をさせる Section 2-3 ホームページを開かせる Section 2-4 カレンダーを出力させる Section 2-5 シェルウィンドウとエディタウィンドウ Section 2-6 プログラムの入力と実行 Section 2-7 プログラムの記述ルール Column プログラミング習得への近道 Chapter 3 プログラミングの基礎知識 Section 3-1 入力と出力 Section 3-2 変数と計算式 Section 3-3 データ型について Section 3-4 条件分岐 Section 3-5 繰り返し Column Pythonに九九の表を作らせよう! Chapter 4 関数とリストについて学ぼう! Section 4-1 関数を理解する Section 4-2 関数の定義 Section 4-3 関数の引数と戻り値 Section 4-4 リストを理解する Section 4-5 二次元リストを理解する Section 4-6 日時の取得 Section 4-7 ファイル操作 Column CUIでミニゲームを作ろう! Chapter 5 GUIの基礎知識 Section 5-1 GUIとは? Section 5-2 ウィンドウを表示する Section 5-3 ラベルを配置する Section 5-4 メッセージを配置する Section 5-5 ボタンを配置する Section 5-6 ボタンをクリックしたときの処理 Section 5-7 メッセージボックスを表示する Column サイコロアプリを作ろう! Chapter 6 GUIの高度な使い方 Section 6-1 1行のテキスト入力欄を配置する Section 6-2 複数行のテキスト入力欄を配置する Section 6-3 チェックボタンを配置する Section 6-4 チェックボタンを操作する Section 6-5 コンボボックスを配置する Section 6-6 キャンバスを配置する Section 6-7 その他のGUI Section 6-8 複数のウィンドウを扱う Column キャンバスに画像を表示しよう! Chapter 7 時計アプリを作ってみよう! Section 7-1 リアルタイム処理を行う Section 7-2 グローバル変数とローカル変数を理解する Section 7-3 日時を表示する Section 7-4 時計アプリの完成 Section 7-5 時計アプリの応用 Column Pythonに円周率を計算させよう! Chapter 8 テキストエディタを作ってみよう! Section 8-1 スクロールバーを設置する Section 8-2 メニューを作る Section 8-3 ファイルダイアログの使い方 Section 8-4 ファイルを読み込む Section 8-5 ファイルを書き込む Section 8-6 テキストエディタの完成 Section 8-7 半角カタカナを全角に置換する Column 複数のファイルを自動処理する Chapter 9 Pythonで仕事を自動化・効率化しよう! Section 9-1 エクセルファイルを扱う Section 9-2 CSVファイルを読み込む Section 9-3 CSVファイルに書き込む Section 9-4 データをグラフ化する Section 9-5 データを分析する Column openpyxlを利用する 特別付録 オブジェクト指向プログラミングを学ぼう! Appendix 1 オブジェクト指向プログラミングとは? Appendix 2 クラスの宣言 Appendix 3 オブジェクトを作る Appendix 4 オブジェクトに機能を持たせる Appendix 5 複数のオブジェクトを作る Appendix 6 リストでオブジェクトを作る Appendix 7 継承とオーバーライド

[改訂新版]C言語による標準アルゴリズム事典 (Software Technology)

奥村 晴彦
技術評論社
おすすめ度
58

動かして学ぶ量子コンピュータプログラミング ―シミュレータとサンプルコードで理解する基本アルゴリズム

Eric R. Johnston
オライリージャパン
おすすめ度
58
紹介文
量子コンピュータの理解を深める書籍。プログラミングに必要な知識とツールとスキルをコンパクトに、実践的に説明する。 ブラウザで動くシミュレータで量子プログラミングを実際に試して理解できる! 量子コンピュータによって何が可能なのか、何によってより強力になるのか、解決できる問題を特定する方法についての理解を深めることを目的としています。概念的な記述が多い他の量子コンピュータの本とははっきり一線を画し、あくまでも実践に主軸を置き、著者たちが作ったシミュレータを利用してブラウザさえあれば試すことができるという、実践的なアプローチが特徴的です。量子コンピュータのプログラミングに必要な知識とツールとスキルをコンパクトにまとめ、実践的な観点から説明します。 量子コンピュータの理解を深める書籍。プログラミングに必要な知識とツールとスキルをコンパクトに、実践的に説明する。

Python2年生 デスクトップアプリ開発のしくみ 体験してわかる!会話でまなべる!

森 巧尚
翔泳社
おすすめ度
58
紹介文
初心者でも大丈夫!アプリ開発を体験してみよう! Pythonで デスクトップアプリ開発を 体験してみよう! 【初心者でもできる!デスクトップアプリ開発を一緒に体験しよう】 Pythonの基礎知識はあるけど、 「アプリ開発って初心者には難しそう」 「プログラムで何か残るものを作ってみたい」 と思っていませんか? 本書はそうした方に向けて、初心者にも簡単に作れる方法を使ってデスクトップアプリ開発の基本をやさしく解説します。スマホアプリ、Webアプリに比べて、手軽に取り組めますので挫折することなく学習できます。本書を読んだあとは、スマホアプリやWebアプリ開発に挑戦してみてください。 【Python2年生について】 「Python2年生」は、「Python1年生」を読み終えた方を対象とした入門書です。ある程度、技術的なことを盛り込み、本書で扱う技術について身につけてもらいます。 『Python2年生 スクレイピングのしくみ』(ISBN:9784798161914) 『Python2年生 データ分析のしくみ』(ISBN:9784798164960) も刊行されています。 【対象読者】 デスクトップアプリの作り方を知りたい初心者 【本書のポイント】 ヤギ博士&フタバちゃんと一緒に、デスクトップアプリ開発の考え方から丁寧に解説。デスクトップアプリ開発をする時に必要な前提知識からはじまり、デスクトップアプリ作りの基本、応用的なデスクトップアプリ、そしてゲームアプリ開発まで解説します。 【著者プロフィール】 森 巧尚(もり・よしなお) アプリの開発や、技術書や電子工作マガジンなどでの執筆活動。関西学院大学非常勤講師、関西学院高等部非常勤講師、成安造形大学非常勤講師、プログラミングスクールコプリ講師など、プログラミングに関する幅広い活動を行っている。近著に、『Python1年生 第2版』、『Python3年生機械学習のしくみ』、『Python2年生 スクレイピングのしくみ』、『Python2年生 データ分析のしくみ』、『Java1年生』、『動かして学ぶ!Vue.js開発入門』(いずれも翔泳社)、『楽しく学ぶ アルゴリズムとプログラミングの図鑑』(マイナビ出版)などがある。 第1章 Pythonでアプリを作ろう LESSON 01 デスクトップアプリってなに? LESSON 02 Pythonをインストールしよう LESSON 03 tkinterでアプリを作ろう LESSON 04 PySimpleGUIでアプリを作ろう 第2章 アプリ作りの基本 LESSON 05 アプリの作り方を理解しよう LESSON 06 配色を選べるよ LESSON 07 レイアウトで画面を作ろう 第3章 計算アプリを作ろう LESSON 08 変数で文字列を作るなら、f文字列が便利 LESSON 09 割り勘アプリ LESSON 10 BMI値計算アプリ LESSON 11 出生の秘密アプリ LESSON 12 干支調べアプリ 第4章 時計アプリを作ろう LESSON 13 時間を測ろう LESSON 14 時計アプリ LESSON 15 ストップウォッチアプリ LESSON 16 時間割アプリ 第5章 ファイル操作アプリを作ろう LESSON 17 ファイルの読み書きをしよう LESSON 18 テキストエディタアプリ LESSON 19 画像を表示するアプリ LESSON 20 画像の加工アプリ LESSON 21 QRコードメーカーアプリ 第6章 ゲームアプリを作ろう LESSON 22 おみくじアプリ LESSON 23 じゃんけんアプリ LESSON 24 足し算ゲームアプリ LESSON 25 数当てゲームアプリ LESSON 26 31ゲームアプリ LESSON 27 これから先は、どうしたらいいの?

フリーソフトではじめる機械学習入門(第2版):Python/Wekaで実践する理論とアルゴリズム

荒木 雅弘
森北出版
おすすめ度
58
紹介文
幅広いアルゴリズムを網羅し、Python/Wekaによる実装例も多数掲載した、機械学習入門書の決定版。 「理論」「実践」の両面から学べる、機械学習入門書の決定版! ◆機械学習の理論をわかりやすく解説 数式をしっかり扱いつつも、平易なことばで直感的な理解ができるよう工夫されています。 また、分析したいデータの種類によってアルゴリズムを分類・整理して解説することで、現実で問題に直面した際に適用できるアルゴリズムが何なのかが理解でき、必要な部分から学んでいけるよう構成されています。 ◆幅広い手法を網羅 「機械学習とは何か」という初歩の初歩から、識別・モデル推定といった基本的な考えかた、ニューラルネットワーク・サポートベクトルマシンといった応用手法、そして深層学習・強化学習といった発展的なトピックまで、様々なアルゴリズムがとりあげられています。 ◆Python/Wekaでアルゴリズムを実装 アルゴリズムの解説だけでなく、Python/Wekaによる実装例も多数掲載されています。理論を学んだあとに、解析例をもとにデータの読み込みから結果の可視化まで1ステップずつ実装していくことで、表面的な理解にとどまらない、「現場で役立つ」知識が身につきます。 第2版では、Pythonによる実装例が多数追加されたほか、勾配ブースティング・リカレントニューラルネットワーク・深層強化学習などの近年話題のトピック追加をはじめとして、全面的に最新の解説にアップデートされています。 第1章 はじめに 第2章 機械学習の基本的な手順 第3章 識別 ―概念学習― 第4章 識別 ―統計的手法― 第5章 識別 ―生成モデルと識別モデル― 第6章 回帰 第7章 サポートベクトルマシン 第8章 ニューラルネットワーク 第9章 深層学習 第10章 アンサンブル学習 第11章 モデル推定 第12章 パターンマイニング 第13章 系列データの識別 第14章 半教師あり学習 第15章 強化学習 付録A 演習問題解答 付録B Weka 付録C Python

アルゴリズムとデータ構造(第2版) (情報工学レクチャーシリーズ)

藤原 暁宏
森北出版
おすすめ度
58
紹介文
日常の身近な例を挙げながら,データ構造の基本から設計手法までを解説する入門書.イメージしながら学べます. ●はじめての方に最適! お店にできる行列や目的地まで行くときの道選びなど,日常の身近な例を挙げながら,データ構造の基本から,分割統治法,グリーディ法,バックトラック法などの設計手法までを解説していきます.具体的にイメージしながら学べるので,初学者も無理なく理解できます. 設計手法の説明のあとには,グラフや文字列照合などの具体的なアルゴリズムについても解説します. 2006年に初版が発行されて以来,高専や大学など多くの学校で採用されている人気のテキストです.今回の改訂では,表現や項目を見直し,よりわかりやすくなりました. 第1章 アルゴリズムの基礎 第2章 アルゴリズムの基本データ構造 第3章 アルゴリズムにおける基本概念 第4章 データの探索 第5章 ソートアルゴリズム1 第6章 ソートアルゴリズム2 第7章 アルゴリズムの設計手法1 第8章 アルゴリズムの設計手法2 第9章 アルゴリズムの設計手法3 第10章 グラフアルゴリズム 第11章 多項式と行列 第12章 文字列照合アルゴリズム 第13章 アルゴリズムの限界

機械学習のエッセンス -実装しながら学ぶPython,数学,アルゴリズム- (Machine Learning)

加藤 公一
SBクリエイティブ
おすすめ度
58
紹介文
機械学習の原理を知るための、初めての入門書 本書は具体的なデータ分析の手法を説明する意図で書かれたものではありません。 実用的な目的ならscikit-learnやChainerなどの既存のフレームワークを使うべきですが、本書では機械学習のいくつかの有名なアルゴリズムを、自分でゼロから実装することを目標としています。こうすることにより、とかくブラックボックスになりがちな機械学習の仕組みを理解し、さらなる応用力と問題解決力を身につけることができるようになります。 また、処理系にはデファクトスタンダードであるPythonを使い、機械学習に必要な数学の知識もわかりやすく解説しています。 これから機械学習を始める学生さんや、いきなりプロジェクトに放り込まれていまいち理解できないままデータ分析の仕事をしているエンジニアの方にも最適です。 ●目次 はじめに 第01章 学習を始める前に  01 本書の目的  02 本書は何を含まないか  03 機械学習の初歩  04 実行環境の準備 第02章 Pythonの基本  01 プログラムの実行方法  02 基本的な文法  03 数値と文字列  04 複数行処理  05 制御構造  06 リスト、辞書、集合  07 関数定義  08 オブジェクト指向  09 モジュール  10 ファイル操作  11 例外処理 第03章 機械学習に必要な数学  01 基本事項の確認  02 線形代数  03 微積分 第04章 Pythonによる数値計算  01 数値計算の基本  02 NumPyの基本  03 配列の基本計算  04 疎行列  05 NumPy/SciPyによる線形代数  06 乱数  07 データの可視化  08 数理最適化  09 統計 第05章 機械学習アルゴリズム  01 準備  02 回帰  03 リッジ回帰  04 汎化と過学習  05 ラッソ回帰  06 ロジスティック回帰  07 サポートベクタマシン  08 k-Means法  09 主成分分析(PCA) INDEX はじめに 第01章 学習を始める前に  01 本書の目的  02 本書は何を含まないか  03 機械学習の初歩  04 実行環境の準備 第02章 Pythonの基本  01 プログラムの実行方法  02 基本的な文法  03 数値と文字列  04 複数行処理  05 制御構造  06 リスト、辞書、集合  07 関数定義  08 オブジェクト指向  09 モジュール  10 ファイル操作  11 例外処理 第03章 機械学習に必要な数学  01 基本事項の確認  02 線形代数  03 微積分 第04章 Pythonによる数値計算  01 数値計算の基本  02 NumPyの基本  03 配列の基本計算  04 疎行列  05 NumPy/SciPyによる線形代数  06 乱数  07 データの可視化  08 数理最適化  09 統計 第05章 機械学習アルゴリズム  01 準備  02 回帰  03 リッジ回帰  04 汎化と過学習  05 ラッソ回帰  06 ロジスティック回帰  07 サポートベクタマシン  08 k-Means法  09 主成分分析(PCA) INDEX

定本 Cプログラマのためのアルゴリズムとデータ構造 (SOFTBANK BOOKS)

近藤 嘉雪
ソフトバンククリエイティブ
おすすめ度
58
紹介文
本書は、アルゴリズムとデータ構造についてC言語による実例を交えながら解説したものです。 第1部 アルゴリズムとデータ構造の基本 第2部 基本的なデータ構造 第3部 探索 第4部 整列 第5部 文字列の探索 第6部 いろいろなアルゴリズム

Cによるアルゴリズムとデータ構造(改訂2版)

俊秀, 茨木
オーム社
おすすめ度
58
紹介文
良いプログラムを書くための必須知識をまとめたテキストであり、五輪の書。約20年ぶりの改訂版。 良いプログラムを書くための必須知識をまとめたテキストであり、五輪の書。 本書は、長年にわたって数多くの優秀なシステムエンジニア、プログラマーに愛読されてきた、良いプログラムを書くための必須知識をまとめたテキストです。 うまくつくられたプログラムは、理解しやすく実行効率も高いものですが、一方、そうでないものは解読も困難なうえに、やたら時間や領域をくいます。さらに、そのようなまずいプログラムには、えてしてミスや内容的な誤りも隠されているものです。 本書は、新たなアルゴリズムで新たなプログラミングを行うために覚えておかなくてはいけない必須知識、そしてアルゴリズムの設計、実現における基礎を、実用上の価値に重点を置いてまとめています。 今回の改訂においては、多くの読者の声をよく参考にして、よりわかりやすく、簡明になるよう見直しを行ったほか、接尾辞木について新たな解説を加えています。 システムエンジニア、プログラマーとして活躍される方の五輪書です。

ウェブ最適化ではじめる機械学習 ―A/Bテスト、メタヒューリスティクス、バンディットアルゴリズムからベイズ最適化まで

飯塚 修平
オライリージャパン
おすすめ度
58
紹介文
ウェブサイトのUX改善を題材に、メタヒューリスティクスなど機械学習のアプローチでパラメーターの抽出やモデルの選択などを学ぶ。 「bウェブサイトのUX改善」を題材に、現実の問題をモデルに落とし込む過程を詳解! 「機械学習の手法をどうやって現実の問題に適用するか?」について悩んでいるエンジニアは数多くいると思います。本書はウェブサイトのUX改善を題材に、A/Bテストやメタヒューリスティクス、バンディッドアルゴリズムなど機械学習のアプローチを適用し、パラメーターの抽出やモデルの選択などを学べる書籍です。モデルや数式の表現をPythonのコードやビジュアルなグラフでも表現し、理解の助けとしています。

対戦型麻雀ゲームAIのアルゴリズムと実装

小林聡
秀和システム
おすすめ度
58
紹介文
オープンソースの麻雀アプリ「電脳麻将」のソースコードを作者が解説! 対戦型麻雀ゲーム「電脳麻将」のソースコードを開発者自ら解説します。 まずは、シャンテン数計算、和了役判定と点数計算、各種ルールに従ったゲームの進行の実装を解説します。その後、まずはリーチのAIを実装し、ベタオリ、鳴きなど、具体的な戦術を追加して麻雀AIを強化する過程を順を追って説明していきます。 電脳麻将のAIは機械学習を採用していません。それゆえ、打牌選択の基準、鳴きの基準、押し引きの基準などは、プログラムで具体的に指定しています。いわば「人間の考える戦術をシミュレートする装置」といえます。さまざまな麻雀セオリーを実装し、それ以前のAIとの対戦を行って、その結果を確認しながらAIを進化させていきます。その過程を理解すれば、麻雀以外のAIの実装・強化にも役立つはずです。 「電脳麻将」はオープンソースで公開されているので、本書を参考にオリジナルの戦術を実装したAIを開発し、差し替えることができます。そして、AI同士で対戦させ、その戦術の正しいかをシミュレーションすることも可能です。 対戦型麻雀ゲーム「電脳麻将」のソースコードを開発者自ら解説。シャンテン数計算、和了役判定と点数計算、ゲーム進行を実装。そして、シンプルなAIを組み込み、さまざまな戦術を追加して麻雀AIを強くしていく過程を解説。 東一局 イントロダクション  0本場 電脳麻将とは  1本場 プログラム構成  2本場 本書について 東二局 手牌とシャンテン数  0本場 手牌の表現  1本場 手牌の操作  2本場 シャンテン数計算 東三局 和了点計算  0本場 和了点計算の流れ  1本場 状況役と懸賞役  2本場 和了形を求める  3本場 符を計算する  4本場 和了役を判定する  5本場 和了点を計算する  6本場 計算例 東四局 ゲーム進行  0本場 ゲーム進行の概要  1本場 ゲーム進行の実装  2本場 牌山と河の実装 南一局 麻雀AIのプログラム  0本場 麻雀AIのプログラム構造  1本場 リーチのAI 南二局 オリと鳴き  0本場 ベタオリのAI  1本場 鳴きのAI 南三局 手作り  0本場 手作りのAI 南四局 押し引き  0本場 押し引きのAI 西入 付録

となりのアルゴリズム 自分で答えを出すためのデータサイエンス思考

篠田 裕之
光文社
おすすめ度
58
紹介文
博報堂のデータサイエンス部門を率いる著者が、日常的な問題をデータサイエンスの力で立ち向かいつつ、難解な情報工学の知識を紹介。

基礎から学ぶ量子計算: アルゴリズムと計算量理論

西村 治道
オーム社
おすすめ度
58
紹介文
量子計算のアルゴリズムと計算量理論について、一からわかりやすく解説した書籍。読者自ら手を動かしながら学ぶことができる。 丁寧な解説と豊富な演習問題により、量子計算のアルゴリズムと計算量理論について一から理解できる。 量子計算のアルゴリズムと計算量理論について、一からわかりやすく解説した書籍です。 現在、大きな注目を集めている量子コンピュータは、量子計算の計算モデルを採用することで、従来のコンピュータや人手による計算(古典計算)と比べて、指数関数的な高速化を実現します。これは、「古典計算は量子計算で効率的に実行可能である」という事実にもとづくものです。 したがって、量子コンピュータを理解し、使いこなすには、重ね合わせの原理とエンタングルメントをはじめとした量子計算のアルゴリズムと計算量理論をひと通り理解する必要があります。 本書は、線形代数と離散数学の基本的な知識のみを前提として、量子計算の原理について初学者向けに丁寧な解説を行っています。数多くの例題と演習問題を収載しており、読者自ら手を動かしながら学ぶことができます。 第1章 計算理論の基礎事項 第2章 ブラケット記法と量子計算でおなじみの行列 第3章 量子情報の基礎 第4章 量子回路 第5章 量子アルゴリズム 第6章 量子計算量クラス

身近な疑問を解いて身につける 必修アルゴリズム

矢沢 久雄
日経BP
おすすめ度
58
紹介文
日常生活の中にある“身近な疑問”を問題として取り上げ、それらの問題を解くためのアルゴリズムをわかりやすく説明します。 日常生活の中にだって、知っておくべきアルゴリズムはたくさんある 「あなたの100歳の誕生日は何曜日?」 「どうしてエレベータが通過しちゃうの?」 「お釣りの硬貨の枚数を最小にするには?」 本書では、このような“身近な疑問”を解く、有名なアルゴリズムを解説します。 1~9章では、日常生活の中にある“身近な疑問”を問題として取り上げ、それらの問題を解くためのアルゴリズムをわかりやすく説明しています。 コイン問題を解く「動的計画法」、最短経路を求める「ダイクストラ法」や「ベルマン=フォード法」、クラスタリングを行う「k-means法」など、知っておくべき“必修アルゴリズム”を学べます。 プログラミング言語はPythonを使います。 補章では、Pythonを学び始めたばかりの人でも1~9章の内容を理解できるように、基本的な構文や組み込み関数、標準モジュールなどを説明しています。 これからアルゴリズムを学ぶ人、 有名なアルゴリズムの理解を深めたい人、 いろいろなアルゴリズムを知りたい人に、おすすめです。 日常生活の中にある“身近な疑問”を問題として取り上げ、それらの問題を解くためのアルゴリズムをわかりやすく説明します。 1章 あなたの100歳の誕生日は何曜日? 2章 選挙で過半数を取った人は誰? 3章 これってメールアドレスとして合ってる? 4章 どうしてエレベータが通過しちゃうの? 5章 お釣りの硬貨の枚数を最小にする 6章 新宿から秋葉原までの最短経路は? 7章 電気自動車の消費する電力量が最小になる経路は? 8章 みんなが幸せになれる「安定マッチング」 9章 あなたは文系か理系か、それとも両方か?

アルゴリズムとプログラミングの図鑑【第2版】

森 巧尚
マイナビ出版
おすすめ度
58
紹介文
図解イラストで楽しくわかる、アルゴリズムのしくみと、主要言語での書き方 アルゴリズムと、それを主要言語でどのように書けばよいのかを、図解とイラストを豊富に使って説明した入門書。 本書の特長は、 1. 「アルゴリズムの意味」をイラストや図でやさしく解説 2. そのアルゴリズムに関する「プログラミング言語」のサンプルを試し、体験して納得 の2点です。 「アルゴリズム」と聞くと難しそうに思えますが、ズバリ『問題を解決するための考え方』です。「このアルゴリズムは、どんな考え方で問題を解こうとしているのか?」「この手順は、何をしようとしているのか?」など、「アルゴリズムの意味」に注目して考えていくと、だんだんとアルゴリズムがわかってきます。本書ではイラストや図を使って、入門者でもアルゴリズムのイメージがつかめるよう、解説していきます。 そして、「意味が理解できただけ」では使えるようになりませんので、実際にプログラミング言語によるサンプルプログラムを用意しました。「理解した意味の通りにアルゴリズムが動くこと」を試して、実感してください。 この「第2版」では、「迷路自動生成アルゴリズム」「迷路探索アルゴリズム」を追加して解説。 「アルゴリズム」をちゃんと把握したい人、プログラムの組み立て方をもっと知りたい人に役立つ1冊です。 【サンプル掲載言語】 Python、JavaScript、PHP、C、C#、Java、Swift、VBA 【本書で紹介しているアルゴリズム】 ・簡単なアルゴリズム 合計値、平均値、最大値、最小値、データの交換 ・サーチアルゴリズム リニアサーチ(線形探索法)、バイナリサーチ(二分探索法) ・ソートアルゴリズム バブルソート(単純交換法)、選択ソート(単純選択法)、挿入ソート(単純挿入法)、シェルソート、クイックソート ・迷路自動生成アルゴリズム 棒倒し法、穴掘り法 ・迷路探索アルゴリズム 右手法・左手法、幅優先探索法 第1章 アルゴリズムってなに? 第2章 いろいろなプログラミング言語 第3章 データ構造とアルゴリズムの基本 第4章 簡単なアルゴリズム 第5章 サーチアルゴリズム 第6章 ソートアルゴリズム 付録

詳解 3次元点群処理 Pythonによる基礎アルゴリズムの実装 (KS理工学専門書)

金崎 朝子
講談社
おすすめ度
58
紹介文
基礎的な点群処理からPointNetまでをPythonで学ぼう!コードをサポートページから提供したので、すぐに実践できる! 基礎的な点群処理から、ICPアルゴリズム、物体認識、PointNetまでをPythonで学ぼう!★章末問題付き★ ・Open3Dを使用し、Pythonプログミングとともに平易に解説。 ・サンプルコードをサポートページから提供したので、すぐに実践できる! ・最終章では、RGBD画像、ボクセルデータ、メッシュデータ、多視点画像の3次元データ処理も解説。 【主な内容】 第1章 はじめに 第2章 点群処理の基礎 第3章 特徴点・特徴量の抽出 第4章 点群レジストレーション(位置合わせ) 第5章 点群からの物体認識 第6章 深層学習による3次元点群処理 第7章 点群以外の3次元データ処理 目次 第1章 はじめに 1.1 3次元世界について 1.2 本書について 1.3 3次元計測原理 1.4 3次元センサの紹介 章末問題 第2章 点群処理の基礎 2.1 ファイル入出力 2.2 描画 2.3 回転・並進・スケール変換 2.4 サンプリング 2.5 法線推定 章末問題 第3章 特徴点・特徴量の抽出 3.1 特徴点(キーポイント) 3.2 大域特徴量 3.3 局所特徴量 章末問題 第4章 点群レジストレーション(位置合わせ) 4.1 最近傍点の探索(単純な方法) 4.2 最近傍点の探索(kd-treeによる方法) 4.3 ICPアルゴリズム 4.4 ICPアルゴリズムの実装(Point-to-Point) 4.5 ICPアルゴリズムの実装(Point-to-Plane) 章末問題 第5章 点群からの物体認識 5.1 特定物体認識と一般物体認識 5.2 特定物体の姿勢推定 5.3 一般物体の姿勢推定 5.4 プリミティブ検出 5.5 セグメンテーション 章末問題 第6章 深層学習による3次元点群処理 6.1 深層学習の基礎 6.2 PyTorch Geometricによる3次元点群の扱い 6.3 PointNet 6.4 点群の畳み込み 6.5 最新研究動向 章末問題 第7章 点群以外の3次元データ処理 7.1 RGBD画像処理 7.2 ボクセルデータ処理 7.3 メッシュデータ処理 7.4 多視点画像処理 7.5 Implicit Functionを用いた3次元形状表現 章末問題

世界標準MIT教科書 データアナリティクスのための機械学習入門

ジョン・ディー・ケラハー
近代科学社
おすすめ度
58
紹介文
データ分析によりビジネスを予測的に改善するための機械学習の手法を、実際のビジネスシーンへの適用事例を通して学べる実践書! 【ビジネスパーソン必見! データ分析に不可欠なAIスキルを最短で習得できる!】  本書は機械学習を実際のビジネスシーンに適用してデータ分析を行うための実践書である。機械学習そのものの解説というよりは、データ分析に不可欠な機械学習の手法を駆使してビジネスを予測的に改善する方法を解説していく。  具体的な適用事例を用いて説明がなされるため、読者は目的やケースに合った手法(アルゴリズム)や実際の適用方法などを効率的に身に付けることができる。原著はMITで使われている教科書であり、講義の目的に応じて章を選択可能。ビジネスで使えるデータ分析手法を最短で習得したい読者に役立つ一冊である。 第1章 予測的データアナリティクスのための機械学習 第2章 データから知見そして意思決定へ 第3章 データ探索 第4章 情報量に基づく学習 第5章 類似度に基づく学習 第6章 確率に基づく学習機 第7章 誤差に基づく学習 第8章 評価 第9章 ケーススタディ:顧客離れ 第10章 ケーススタディ:銀河の分類 第11章 予測的データアナリティクスのための機械学習の技法 付録A 機械学習のための記述統計とデータ可視化 付録B 機械学習のための確率の導入 付録C 機械学習のための微分法

独学コンピューターサイエンティスト Pythonで学ぶアルゴリズムとデータ構造

コーリー・アルソフ
日経BP
おすすめ度
58
紹介文
プログラミング入門書として広く活用いただいている『独学プログラマー』の姉妹書が登場。 プログラミング入門書として広く活用いただいている『独学プログラマー』の姉妹書が登場。第2弾の本書は、コンピューターサイエンス(計算機科学)の入門書です。 アルゴリズムとデータ構造について、図およびPythonのコードで具体的に示しながら、分かりやすく説明します。 「独学プログラマー」が活躍するうえで役に立つ、基本的な概念と実装を紹介します。 本書に登場するコードは、日経BOOKプラスの本書ウェブページからダウンロードいただけます。詳細な目次ページ(PDF)もそちらからダウンロードいただけます。 独学プログラマーが理解しておくべきもっとも大切な分野を学ぼう! 私は当時、スタンフォード大学、カリフォルニア大学バークレイ校、カリフ ォルニア工科大学を出た優秀なプログラマーと一緒のチームにいました。コンピューターサイエンスを十分に理解している同僚たちの中で、不安で、居心地の悪さを感じていました。独学プログラマーとしてコンピューターサイエンスを学ぶことで、このような不安を最小限に抑えられます。 さらに、アルゴリズムとデータ構造を学ぶことで、プログラマーとして成長できます。成長の鍵は、フィードバックループにあります。フィードバックループとは、学んだことを実行してみて、それが期待どおりかどうかすぐに確認することです。 ――「イントロダクション」より 1冊目としてちょうど良い難易度 本書の著者、コーリー・アルソフ(Cory Althoff)は、独学プログラマーです。前作『独学プログラマー』は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。彼の独学プログラマーとしての学び方は、多くの人に支持されています。 前作のあとがきでも触れましたが、コーリー自身が学びの途中にあり、対象読者と同じ視点でアルゴリズムとデータ構造というコンピューターサイエンスの必須知識を説明してくれていることに価値があります。アルゴリズムとデータ構造を扱う本はたくさんありますが、本書ほど入門しやすく説明してくれている本は稀でしょう。 本書は、難しい内容であるアルゴリズムとデータ構造について、要点を絞って分かりやすく伝えています。そのため、これらを学ぶ1冊目としてちょうど良い難易度になっています。本書を読んだ後ならきっと、技術面接においてある程度の自信が持てるでしょうし、プログラムを実装する際にもキーワードとその内容を知っているので、文献探しや実装例を見つけ出す手がかりが得やすいでしょう。 ――「日本語版あとがき」より 第1部 アルゴリズム入門 第0章 イントロダクション 第1章 アルゴリズムとは何か? 第2章 再帰 第3章 探索アルゴリズム 第4章 ソートアルゴリズム 第5章 文字列のアルゴリズム 第6章 数学 第7章 独学伝:マーガレット・ハミルトン 第2部 データ構造 第8章 データ構造とは何か? 第9章 配列 第10章 連結リスト 第11章 スタック 第12章 キュー 第13章 ハッシュテーブル 第14章 二分木 第15章 二分ヒープ 第16章 グラフ 第17章 独学伝:イーロン・マスク 第18章 次のステップ 第3部 もっと学ぼう 補章1 アルゴリズムへの理解を深めるために―ハッシュテーブル― 補章2 アルゴリズムへの理解を深めるために―ダイクストラ法― 補章3 継続して学ぶために

紙とえんぴつで学ぶアルゴリズムとフローチャート

岩松 洋
日経BP
おすすめ度
58
紹介文
プログラムの設計力を身につけよう! ■ プログラムの設計力を身につけよう! 「プログラミングは勉強したのに、自分でプログラム作れない……」 そう悩んでいる人、けっこう多いんです。プログラミングの入門講座や入門書で、ひと通りプログラミング言語の文法やツールの使い方は学んだという人に本書を読んでいただきたい。きっと講座で取り上げられたコードや、書籍に掲載されたコードは、何をやるプログラムかはもう理解できますよね。自分で実際にコードを入力して、動作させることもできましたよね。でも、自分で「こんなプログラムを作ってみたい」と思って、自由自在にコードを書けていますか? 実は、「こんなプログラムを作ってみたい」というアイデアがあっても、それをすぐにプログラムにするのは簡単なことではありません。そうしたアイデアをプログラムにするための過程が欠けているからです。アイデアとプログラムをつなぐのが“設計”です。入門講座や入門書には、この設計の説明がほとんどないのです。プログラムを作れるようならないのは、そのためです。新米プログラマーがすぐに自分でプログラムを書けるようにならないのはもっともなことなのです。 でも悲観することはありません。そんなプログラミングの初心者に向けてソフトウェア設計の初歩の初歩を解説するのが本書です。「設計」といっても難しく考える必要はありません。本書ではじゃんけんやすごろく、あっち向いてホイなど、誰もが知っている遊びを取り上げ、それをプログラムにするために何を考えなければならないか、プログラムにするにはどうすればいいかを、一つひとつステップを踏みながら説明します。 第1章 プログラミングは紙とえんぴつから 第2章 ソフトウェアの設計 第3章 じゃんけんプログラムのためのフローチャート 第4章 コンピュータが実行できる形に 第5章 データを構造化する 第6章 じゃんけんをPythonでコーディング 第7章 プログラム設計のための実習問題

ゲームプログラマになる前に覚えておきたい技術

平山 尚
秀和システム
おすすめ度
58
紹介文
セガの新人教育カリキュラムから生まれたゲームプログラミング解説書。 1 2次元のゲーム(はじまりのゲーム 点から始める2Dグラフィックス 描いた絵を使う ほか) 2 3次元のゲーム(立体を描く ライブラリの作り方 XMLモドキを読む ほか) 3 売り物への道(遅くない衝突検出 ローディング floatの使い方 ほか)

ゲームエンジンアーキテクチャ 第3版

ジェイソン・グレゴリー
ボーンデジタル
おすすめ度
58
紹介文
好評を博した『ゲームエンジンアーキテクチャ』の第3版。ゲームエンジンソフトウェア開発の理論と実践の両方を紹介します。 好評を博した『ゲームエンジンアーキテクチャ』の第3版として、ジェイソン・グレゴリーはミッドウェイ、エレクトロニック・アーツ、ノーティードッグでの20年近くの経験をもとに、ゲームエンジンソフトウェア開発の理論と実践の両方を紹介しています。本書では、AAAゲームスタジオで使用されている幅広い技術と技術がそれぞれ詳細に説明されており、実際の商業用ゲームエンジンの中でのそれらの役割を図解しています。 第3版の特徴 この第3版では、これまでの版と同様に、ゲームエンジンのアーキテクチャを包括的にカバーしており、また、ゲームエンジンのアーキテクチャについても最新の情報を提供しています。 以下の内容が前書から更新され、また新規の章を追加しました。 - コンピュータとCPUのハードウェアとメモリキャッシュ - コンパイラの最適化 - C++の標準化 - IEEE-754の浮動小数点表現 - 二次元ユーザーインターフェース - ハードウェアの並列性と並行プログラミング 本書は入門書としての役割を果たすことを目的としていますが、経験豊富なゲームプログラマーには、経験の浅いゲーム開発技術の側面についても有益な視点を提供しています。いつものように、この版では豊富な参考文献と引用が提供されているので、ゲーム開発プロセスの特定の側面をより深く掘り下げたい人にとっては絶好のジャンプオフポイントとなっています。 1章 イントロダクション 2章 仕事用ツール 3章 ゲームのためのソフトウェアエンジニアリングの基本 4章 並列・並行プログラミング 5章 ゲームのための3D数学 6章 エンジンサポートシステム 7章 リソースとファイルシステム 8章 ゲームループとリアルタイムシミュレーション 9章 ヒューマンインターフェイスデバイス 10章 デバッグおよび開発のツール 11章 レンダリングエンジン 12章 アニメーションシステム 13章 コリジョンと剛体力学 14章 オーディオ 15章 ゲームプレイシステムの概要 16章 ランタイムのゲームプレイ基本システム 17章 まだやることがあるってこと?
search