もっとプログラマ脳を鍛える数学パズル アルゴリズムが脳にしみ込む70問 電子書籍(増井 敏克)|翔泳社の本
  1. ホーム >
  2. 電子書籍 >
  3. もっとプログラマ脳を鍛える数学パズル アルゴリズムが脳にしみ込む70問

もっとプログラマ脳を鍛える数学パズル アルゴリズムが脳にしみ込む70問


形式:
電子書籍
発売日:
ISBN:
9784798155791
価格:
2,838(本体2,580円+税10%)
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
電子書籍

全国のプログラマを悩ませたパズル集、待望の新作!
問題を解きながら、楽しくアルゴリズムを身につけよう

【本書の特徴】
・パズル問題をソースコードで解く
・楽しみながらプログラミングが上達
・4人のキャラクターによるやさしい解説
・アルゴリズムを深く理解できる
※初歩的なアルゴリズムの知識があることを前提としています

【本書で使用する言語】
Ruby/JavaScript
※すべての問題で、上記2つの言語の解答を掲載しています
※どの言語でも活用できるような解説の仕方をしていますが、上記のどちらかを習得していると、より理解しやすくなります

【内容紹介】
コンピュータを取り巻く環境は日々、大きく変化しています。

そんな時代の変化の中でも、変わらずに
重要とされているのが「アルゴリズム」です。

効率よく処理するプログラムを作成するには、
アルゴリズムを工夫することが求められています。

本書は、さまざまな数学パズルを解くことにより、
「よいアルゴリズム」を身につけることを目的としています。

一筆書きや組み合わせなどの定番問題から、
「サンタクロースが効率よく家を回るには?」
「カップルを隣同士に並ばせない席順は?」といったものまで、
楽しみながら思考が広がる問題を70問用意しました。

※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。
※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。
※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。
※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。

(翔泳社)

目次の登録はありません。

付属データはこちら

会員特典はこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。
この商品の「よくある質問」はありません。

現在表示されている正誤表の対象書籍

書籍の種類:電子書籍

書籍の刷数:全刷


※重版をした際に、内容が修正されている場合があります。「刷数の確認方法(例)」の図を参考に、お手元の書籍の刷数をご確認ください。下の「書籍の刷数」の欄で刷数を選択すると、お持ちの書籍の刷数に合わせて、正誤情報を絞り込むことができます。

書籍によっては表記が異なる場合がございます


本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

 書籍の刷数で正誤情報を絞り込みたい場合は選択してください。

 書籍の種類:

最終更新日:2024年10月04日
ページ数 内容 書籍修正刷 電子書籍訂正 発生刷 登録日
018
pre2_1.rb(ソースコード)の3行目
r.upto(n) do |i|
(n - r + 1).upto(n) do |i|
1刷 2018.05.07
018
pre2_1.js(ソースコード)の3行目
for (var i = r; i <= n; i++){
for (var i = n - r + 1; i <= n; i++){
1刷 2018.05.07
079
q14_2.rb(ソースコード)の下から8行目以降
# 枚数を減らせるものは調整 0.upto(8) do | i | if (used[i] == 0) && (coins[i + 1] * used[i + 1] >= coins[i]) used[i] = 1 used[i + 1] -= coins[i] / coins[i + 1] end end
# 枚数を減らせるものは調整 0.upto(8) do | i | if (used[i] == 0) && (coins[i + 1] == 2000) # 2千円札の調整 if used[i + 1] == 3 # 2千円札が3枚(6千円)のとき used[i], used[i + 1] = 1, 0 # 5千円札を1枚、2千円を0枚に used[i + 2] += 1 # 千円札を1枚増やす elsif(used[i + 1] == 2) && (used[i + 2] >= 2) # 2千円札が2枚、千円札が2枚以上のとき used[i], used[i + 1] = 1, 0 # 5千円札を1枚、2千円札を0枚に used[i + 2] -= 1 # 千円札を1枚減らす end else if (used[i] == 0) && (coins[i + 1] * used[i + 1] >= coins[i]) used[i] = 1 used[i + 1] -= coins[i] / coins[i + 1] end end end
1刷 2021.06.24
080
q14_2.js(ソースコード)の下から8行目以降
// 枚数を減らせるものは調整 for (var i = 0; i < 9; i++){ if ((used[i] == 0) && (coins[i + 1] * used[i + 1] >= coins[i])){ used[i] = 1; used[i + 1] -= Math.floor(coins[i] / coins[i + 1]); } }
// 枚数を減らせるものは調整 for (var i = 0; i < 9; i++) { if ((used[i] == 0) && (coins[i + 1] == 2000)) { if (used[i + 1] == 3) { // 2千円札が3枚(6千円)のとき [used[i], used[i + 1]] = [1, 0]; // 5千円札を1枚、2千円を0枚に used[i + 2]++; // 千円札を1枚増やす } else if ((used[i + 1] == 2) && (used[i + 2] >= 2)) { // 2千円札が2枚、千円札が2枚以上のとき [used[i], used[i + 1]] = [1, 0]; // 5千円札を1枚、2千円札を0枚に used[i + 2]--; // 千円札を1枚減らす } } else { if ((used[i] == 0) && (coins[i + 1] * used[i + 1] >= coins[i])) { used[i] = 1; used[i + 1] -= Math.floor(coins[i] / coins[i + 1]); } } }
1刷 2021.06.24
160
q.33_1.rb(ソースコード)の上から4行目
0.upto(M) do |j|
0.upto(M - i) do |j|
1刷 2024.10.04
160
q.33_1.js(ソースコード)の上から5行目
for (var j = 0; j <= M; j++){
for (var j = 0; j <=M - i; j++){
1刷 2024.10.04
268
一番下のセンセイのセリフ
それに加えて(左のパターン数) ×(右のカッコの数)/2+(右のパターン数)×(左のカッコの数)/2です。
それに加えて(左のパターン数) ×(右のパターン数)/2+(右のパターン数)×(左のパターン数)/2です。
1刷 2018.12.25
321
表3 Base64 コード表
(画像クリックで拡大)
(画像クリックで拡大)
1刷 2024.08.26

感想・レビュー

ふじ さん

2018-09-03

だめ、無理、意味わかんない!(笑)数列的な数学の問題をコーディングで解くワーク。言語はRubyとJavaScript。

roughfractus02 さん

2018-03-29

前著では、ソースコードでパズルを解きながら見た目のいいコードの書き方がよい解答だと理解できたが、前著での体験から本書に取り組むと、よいアルゴリズムを書くという目標を常に意識する。使う言語(Ruby,JavaSprict)も前著と同じ、問題数(70問)とレベルも大差ないかに思えるが、アルゴリズムを短くシンプルに、と考えると解答の目標時間を超えることが多くなる(途中からは無視)。グラフ理論系のひと筆書き問題では掲載されたコードサンプル以上のシンプルさに適わないが、さらによい書き方を考えつつ解く意欲は養われる。