プログラマ脳を鍛える数学パズル―シンプルで高速なコードが書けるようになる70問

個数:
電子版価格
¥2,838
  • 電書あり

プログラマ脳を鍛える数学パズル―シンプルで高速なコードが書けるようになる70問

  • ウェブストアに2冊在庫がございます。(2024年06月02日 06時52分現在)
    通常、ご注文翌日~2日後に出荷されます。
  • 出荷予定日とご注意事項
    ※上記を必ずご確認ください

    【ご注意事項】 ※必ずお読みください
    ◆在庫数は刻々と変動しており、ご注文手続き中に減ることもございます。
    ◆在庫数以上の数量をご注文の場合には、超過した分はお取り寄せとなり日数がかかります。入手できないこともございます。
    ◆事情により出荷が遅れる場合がございます。
    ◆お届け日のご指定は承っておりません。
    ◆「帯」はお付けできない場合がございます。
    ◆画像の表紙や帯等は実物とは異なる場合があります。
    ◆特に表記のない限り特典はありません。
    ◆別冊解答などの付属品はお付けできない場合がございます。
  • ●店舗受取サービス(送料無料)もご利用いただけます。
    ご注文ステップ「お届け先情報設定」にてお受け取り店をご指定ください。尚、受取店舗限定の特典はお付けできません。詳細はこちら
  • サイズ A5判/ページ数 311p/高さ 21cm
  • 商品コード 9784798142456
  • NDC分類 007.64
  • Cコード C3055

出版社内容情報

数学パズルを解くコードを考えることで、知らず知らずのうちにアルゴリズムが身につく!プログラマの実務に役立つ、頭の体操70問。

パズルを解くコードを、あなたは書けるか?
アルゴリズムがみるみるわかる!プログラミングってやっぱり面白い!

急速な技術の進歩、システム開発競争の激化……。プログラマを取り巻く環境はやさしいものではありません。でも、思い出してみてください。自分の書いたソースコードでプログラムが動くのを初めて見たとき。思い描いた通りのプログラムができたとき。プログラミングの楽しさを感じたことでしょう。何もないところからソースコードだけで新たな価値を生むプログラマは、非常に魅力的な職業です。

本書で登場する数学パズルは、そのようなワクワクにあふれています。「両替したときの硬貨の組み合わせはいくつ?」のような問題から、「国名でしりとりしたときに、一番長く続く順番は?」「運命の出会いは何通り?」というものまで、70の問題を解くコードを、3人のキャラクターたちと一緒に考えていきます。

パズルを解くうちにアルゴリズムが身につき、シンプルで高速なコードが書けるようになります。楽しみながらスキルアップもできて一石二鳥。さっそく挑戦してみましょう!

【使用言語について】
本書の解説では、主にRubyとJavaScriptを使用していますが、解説内容は「考え方」が中心であるため、どんな言語にも応用できます。また、問題を解くために特定の言語が必要になることもありません。

【本書に収録されている問題(抜粋)】
Q01 10進数で回文
Q03 カードを裏返せ
Q08 優秀な掃除ロボット
Q09 つりあわない男女
Q21 排他的論理和で作る三角形
Q33 百人一首の達人
Q45 素数のマトリックス
Q48 グレイコードのループ
Q53 いたずらされたお菓子
Q64 迷路で待ち合わせ

はじめに
謝辞
本書の概要
登場人物紹介
ダウンロードファイルについて

第1章 入門編★ プログラムを作って問題を解いてみよう

2進数と10進数
Q01:10進数で回文
Q02:数列の四則演算
Q03:カードを裏返せ
Q04:棒の切り分け
Q05:いまだに現金払い?
Q06:(改造版)コラッツの予想
Q07:日付の2進数変換
Q08:優秀な掃除ロボット
Q09:つりあわない男女
Q10:ルーレットの最大値
Q11:フィボナッチ数列
Q12:平方根の数字
Q13:覆面算を満たすのは何通り?
Q14:W杯出場国しりとり
Q15:階段で立ち話

第2章 初級編★★ 簡単な問題を解いてアルゴリズムの効果を実感しよう

費用対効果を意識する
Q16:3本のひもで作る四角形
Q17:30人31脚に挑戦!
Q18:ショートケーキの日
Q19:友達の友達は友達?
Q20:受難のファサードの魔方陣
Q21:排他的論理和で作る三角形
Q22:絡まない糸電話
Q23:ブラックジャックで大儲け!?
Q24:完璧に撃ち抜くストラックアウト
Q25:オシャレな靴ひもの結び方
Q26:効率のよい立体駐車場
Q27:右折を禁止されても大丈夫?
Q28:クラブ活動への最適な配分
Q29:合成抵抗で作る黄金比
Q30:テーブルタップで作るタコ足配線

第3章 中級編★★★ アルゴリズムを工夫して高速な処理を実現しよう

オーダー記法と計算量
Q31:最短経路の計算
Q32:畳を敷きつめろ
Q33:百人一首の達人
Q34:飛車と角の利き
Q35:運命の出会いは何通り?
Q36:「0」と「7」の回文数
Q37:サイコロの反転
Q38:7セグメントコードの反転
Q39:「白」で埋めつくせ!
Q40:並べ替えの繰り返し
Q41:美しい?IPアドレス
Q42:1つの数字で作る1234
Q43:シャッフルで逆順
Q44:グラスの水を半分に
Q45:素数のマトリックス
Q46:ソートの交換回数の最少化
Q47:オンリーワンな○×
Q48:グレイコードのループ
Q49:反転で作る互い違い
Q50:急がば回れ
Q51:パーフェクトシャッフル
Q52:同時に終わる砂時計
Q53:いたずらされたお菓子
Q54:同じ数字で挟み撃ち
Q55:横着なそろばん
Q56:公平に分けられたケーキ

第4章 上級編★★★★ 視点を変えて高速化を目指してみよう!

ソースコードの個性
Q57:あみだくじの横線
Q58:最速の連絡網
Q59:ハンカチ落としの総走行距離
Q60:セルの結合パターン
Q61:同じ大きさに分割
Q62:交差せずに一筆書き
Q63:カレンダーの最大長方形
Q64:迷路で待ち合わせ
Q65:面倒なキャッチボール
Q66:図形の一筆書き
Q67:クロスワードパズルを作成せよ!
Q68:隣り合わないのがマナー?
Q69:男女平等な席替え
Q70:青白歌合戦

索引

内容説明

コンピュータを取り巻く環境は日々、大きく変化しています。そんな時代の変化の中でも、変わらずに重要とされているのが「アルゴリズム」です。効率よく処理するプログラムを作成するには、アルゴリズムを工夫することが求められています。本書は、さまざまな数学パズルを解くことにより、「よいアルゴリズム」を身につけることを目的としています。「両替したときの硬貨の組み合わせはいくつ?」「国名でしりとりしたときに、一番長く続く順番は?」「運命の出会いは何通り?」など、楽しみながら思考が広がる問題を70問用意しました。

目次

第1章 入門編―プログラムを作って問題を解いてみよう(10進数で回文;数列の四則演算 ほか)
第2章 初級編―簡単な問題を解いてアルゴリズムの効果を実感しよう(フィボナッチ数列;平方根の数字 ほか)
第3章 中級編―アルゴリズムを工夫して高速な処理を実現しよう(最短経路の計算;畳を敷きつめろ ほか)
第4章 上級編―視点を変えて高速化を目指してみよう!(あみだくじの横線;最速の連絡網 ほか)

著者等紹介

増井敏克[マスイトシカツ]
1979年奈良県生まれ。大阪府立大学大学院修了。増井技術士事務所代表。技術士(情報工学部門)。2004年、大手セキュリティ企業に入社。2011年、増井技術士事務所設立。ITエンジニアのための実務スキル評価サービス「CodelQ」にて、アルゴリズムや情報セキュリティに関する問題を多数出題している。また、ビジネス数学検定1級に合格し、公益財団法人日本数学検定協会認定トレーナーとしても活動(本データはこの書籍が刊行された当時に掲載されていたものです)
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。

感想・レビュー

※以下の感想・レビューは、株式会社ブックウォーカーの提供する「読書メーター」によるものです。

kaizen@名古屋de朝活読書会

25
増井敏克 #技術士 プログラム書くと簡単解けるものRuby JapaScript打つ  プログラム書かずに解ける問題もどちらもあること知れば賢し 2017/01/06

calicalikoume

12
本書を通じて主に再帰を使ったパターン検索と便利な組み込み関数の使い方が自然と身についたと思います。高速化としてはメモ化やビット演算の活用が印象に残っています。数学的な解き方はなかなか気付けず、解答を見て頷く事が多かったです。問題を解く中で、自分のコードでは計算が終わらず解答のアルゴリズムだと一瞬で解けるケースがあったりして何度か衝撃を受けました。Rubyが読めるようになるまでは苦労しますが、解答はシンプルなものが多く説明も丁寧なので理解しやすいと思います。2019/08/17

しんしん

9
今までに読んだプログラミングパズルの本の中で一番楽しかった。 問題を読んで、アルゴリズムが組み立てられたら次に進むということを1冊続けられたのは自信になった。 問題の題材も楽しくて、本のページ構成も解くことに集中させてくれた。2015/10/30

Shinchan

8
★★★☆2016/09/13

roughfractus02

7
パズルを解く過程を多言語でかつ複数の思考にわたって体感するのが面白い。自然言語からプログラミング言語へ、中でもRuby(とJavaScript)のコードの書き方を、最初は辿りながら、次は自分で試しながら進むと、ふだん気にもしないアルゴリズムを学ぶ過程とパズルを解く過程が並行して処理されていく感覚が意識できる。70問の問題、ヒント、解答(主にRubyのcodeで記載)、説明の流れはとてもシンプルで、一つの問題が解けない場合はそのソースコードを見直すと、シンプルでないものは見た目がよくないことに気づかされる。2018/03/29

外部のウェブサイトに移動します

よろしければ下記URLをクリックしてください。

https://bookmeter.com/books/9841545
  • ご注意事項

    ご注意
    リンク先のウェブサイトは、株式会社ブックウォーカーの提供する「読書メーター」のページで、紀伊國屋書店のウェブサイトではなく、紀伊國屋書店の管理下にはないものです。
    この告知で掲載しているウェブサイトのアドレスについては、当ページ作成時点のものです。ウェブサイトのアドレスについては廃止や変更されることがあります。
    最新のアドレスについては、お客様ご自身でご確認ください。
    リンク先のウェブサイトについては、「株式会社ブックウォーカー」にご確認ください。