結城浩
あなたも、楽しいアルゴリズムの問題に挑戦しませんか?
結城浩は、 CodeIQ というサイトでITエンジニアへ問題を出していました(2013年〜2015年)。
易しすぎず、難しすぎず、コンピュータやプログラミング言語に依存しない問題です。
このページはその時代の記録のために残してあります。
以下のリンクはCodeIQ MAGAZINEに掲載された「『数学ガール』に登場する三つのスローガンを通して、プログラミングにも使える考え方の一端」を解説した読み物です。
以下のリンクはCodeIQ MAGAZINEに掲載された「結城浩の問題のおもしろさ」を解説した読み物です。 よろしければお読みください。
マヨイドーロ問題
挑戦期間:2015年12月3日〜12月17日(自動採点)
CodeIQ MAGAZINEの解説記事(出題PDF、解説PDFはこちらから)
正解に達した挑戦者には「結城浩のマヨイドーロバッジ」をサイト上で付与!
正解した方の中から抽選で10名様に、 『数学ガールの秘密ノート/ベクトルの真実』《サイン本》をプレゼント!
サルベジオン社で宇宙船のデータを救え!
挑戦期間:2014年11月27日〜12月15日 (挑戦終了。挑戦者へのフィードバックは12月16日に完了)
依頼者「難破した無人宇宙船からデータをサルベージしていただきたい」
あなた「データはどんな順序で並んでいるのですか」
依頼者「ドキュメントが残っていないのでわかりません」
あなた「そんなあ!」
最高評価の挑戦者には「結城浩のサルベジオンバッジ」をサイト上で付与!
さらに……最高評価の挑戦者から抽選で10名様に、 『数学文章作法 推敲編』を無料プレゼント!
チケットゴブル社の旅行プランを作れ!
挑戦期間:2014年5月1日〜5月19日 (挑戦終了。挑戦者へのフィードバックは5月20日に完了)
依頼者「航空チケットをまとめて《プラン》をご提案いただきたい」
あなた「たとえば《ヨーロッパ十日間の旅プラン》のように?」
依頼者「いえ、できるだけ多くの航空チケットをさばくプランです!」
あなた「意味がわかりません!」
最高評価の挑戦者には「結城浩のチケットゴブルバッジ」をサイト上で付与!
さらに……最高評価の挑戦者から抽選で10名様に、 『プログラマの数学』を無料プレゼント!
スペーストーキー社の危機を救え!
挑戦期間:2014年4月15日〜4月28日 (挑戦終了。挑戦者へのフィードバックは4月28日に完了)
あなた「では、中継基地で使っているソースコードを調べさせてください」
依頼者「申し上げにくいのですが、ソースコードもドキュメントも存在しません」
あなた「それでは、私に何をどうせよと!」
最高評価の挑戦者には「結城浩のスペーストーキーバッジ」をサイト上で付与! さらに……最高評価の挑戦者から抽選で10名様に、 『数学ガールの秘密ノート/丸い三角関数』を無料プレゼント!
クリプタン帝国の暗号文を解読しよう!
挑戦期間:2014年3月7日〜3月31日 (挑戦終了。挑戦者へのフィードバックは4月6日に完了)
依頼者「ともかく、あなたのお仕事は暗号解読です」
あなた「この《暗号プログラムの構成図》はずいぶんあっさりした……」
依頼者「あなたは優秀なプログラマ。不明点は推測できると期待しています」
あなた「ど、努力します!」
最高評価の挑戦者には「結城浩のクリプタンバッジ」をサイト上で付与! さらに……最高評価の挑戦者から抽選で10名様に、 『数学ガールの誕生』を無料プレゼント!
王女様の宝石パターンを見つけよう!
挑戦期間:2014年1月21日〜2月12日 (挑戦終了。挑戦者へのフィードバックは2月14日に予定)
依頼者「王女様の帯は毎日ちがう宝石パターンで飾られます」
あなた「さぞ美しいでしょうな」
依頼者「ところが王女様はご立腹なのです」
あなた「は?」
依頼者「王女様の求める宝石パターンが何日目に現れるか、誰もわからないからです!」
最高評価の挑戦者には「結城浩のジェムストリングバッジ」をサイト上で付与! さらに……最高評価の挑戦者から抽選で10名様に、 『数学ガールの秘密ノート/整数で遊ぼう』を無料プレゼント!
古代文献を復元しよう!
挑戦期間:2013年9月12日〜9月24日(予定) (挑戦終了。挑戦者へのフィードバックは9月25日に完了)
依頼者「発掘の際に古代文献の一部が破損してしまいました」
あなた「それはもったいないですね」
依頼者「そこであなたへ依頼ですが」
あなた「は?」
依頼者「あなたに破損部分を補完してほしいのです!」
最高評価の挑戦者には「結城浩のナムドットバッジ」をサイト上で付与! さらに……最高評価の挑戦者から抽選で1名様に、 【Amazon.co.jp限定特典小冊子付き】数学ガールセットを無料プレゼント!
交差点をすばやく数えよう!
挑戦期間:2013年8月19日〜9月2日 (挑戦終了。挑戦者へのフィードバックは9月3日に完了)
あなた「結局、交差点の数を数えればいいのですね」
依頼者「その通りです」
あなた「おそらく、すぐに開発できますよ」
依頼者「開発はゆっくりでもいいですが」
あなた「は?」
依頼者「実行は高速でなければいけません!」
最高評価の挑戦者には「結城浩のクロッシングバッジ」をサイト上で付与! さらに……最高評価の挑戦者から抽選で10名様に、 『数学ガールの秘密ノート/式とグラフ』を無料プレゼント!
星間飛行ルートを作ろう!
挑戦期間:2013年7月22日〜8月5日 (挑戦終了。挑戦者へのフィードバックは8月6日に完了)
あなた「星間飛行ルートを作るお仕事ですね」
依頼者「その通りです。start星からdeepest星までのルートです」
あなた「あとは情報一式をいただければ」
依頼者「すみませんが、情報一式はお渡しできません」
あなた「は?」
最高評価の挑戦者には「結城浩のディーペストバッジ」をサイト上で付与! さらに……最高評価の挑戦者から抽選で10名様に、 結城浩原作の『数学ガール/フェルマーの最終定理』コミックス最新刊 を無料プレゼント!
シャッフルされた断片情報からデータを復元しよう!
挑戦期間:2013年5月20日〜6月3日 (挑戦終了。挑戦者へのフィードバックは6月7日に完了)
あなた「壊れたユーザ一覧ファイルを復元するお仕事ですね!」
依頼者「その通りです。途中までは復元できているのですが……」
あなた「そうですか、助かります」
依頼者「ただ、一部がシャッフルされていますのでご注意ください」
あなた「シャッフルされてる?」
最高評価の挑戦者には「結城浩のシャフラーズバッジ」をサイト上で付与!
トグルスイッチを切り換えよう!
挑戦期間:2013年5月6日〜5月27日 (挑戦終了。挑戦者へのフィードバックは5月27日に完了)
あなた「トグルスイッチをパチパチ切り換えるお仕事と聞きました」
管理者「その通りです」
あなた「わかりました! がんばりますよ!」
管理者「ちょっとした規則があるのでご注意ください」
あなた「ちょっとした規則とは?」
最高評価の挑戦者には「結城浩のトグルバッジ」をサイト上で付与! さらに……最高評価の挑戦者から抽選で10名様に、 結城浩の『数学文章作法 基礎編』 を無料プレゼント!
“ピッグデータ”に負けないで!
挑戦期間:2013年4月24日〜5月20日 (挑戦終了。挑戦者へのフィードバックは5月24日に完了)
顧客「ピッグデータについて困っているんです」
あなた「ビッグデータならおまかせください」
顧客「いや、ビッグデータじゃなくて、《ピッグデータ》です」
あなた「はあ?」
顧客「大量のデータで困ってるんです」
あなた「は、はあ……」
リンゴ列をもっと短く!
挑戦期間:2013年4月1日〜4月22日 (挑戦終了。挑戦者へのフィードバックは4月27日に完了)
あなた「じゃ、がんばってプログラムを書きますよ」
大臣「いや、プログラムはもう変更できません」
あなた「といいますと?」
大臣「もうシステムは完成しているんです」
あなた「はあ……」
大臣「あなたが変えられるのは《文字リンゴ対応表》だけなのです」
あなた「え?」
最高評価の挑戦者には「結城浩のリンゴバッジ」をサイト上で付与!
記憶装置トリアニーの謎を解け!
挑戦期間:2013年3月11日〜4月1日 (挑戦終了。挑戦者へのフィードバックは4月13日に完了)
博士「やったぞ。新しい記憶装置の完成だ!」
助手「新しい記憶装置ですって?」
博士「もう低レベルインタフェースは定めた。これを使えばさまざまなデータ構造が作れるぞ」
助手「すごいですね!」
博士「作るのはキミだよ」
助手「え?」
※挑戦者への注意: これは「ウチに来ない?」問題です。 (詳しい説明)
最高のカレーを作れ! (挑戦終了。挑戦者へのフィードバックは3月15日に完了)
挑戦期間:2013年2月18日〜3月11日(挑戦人数は154人でした)
「カレールー」ならぬ「カレールール」に合った《スパイス》を慎重に選んで最高のカレーを作ってください!
弟子「師匠!秘伝のカレーをお教えください!」
師匠「秘伝のカレーはな、自分で見い出すものじゃ…」
弟子「せ、せめてヒントだけでも…」
師匠「カレーの《スパイス》には相性の良い《ブレンド》というものがある」
弟子「《スパイス》をうまく選ぶんですね!」
師匠「そうじゃ…そうすればポイントが高くなる」
弟子「ポイント?」
最高評価の挑戦者には「結城浩のカレーバッジ」をサイト上で付与!
チョコの量を減らせ! (挑戦終了。挑戦者へのフィードバックは2月20日に完了)
挑戦期間:2013年2月1日〜2月14日(バレンタインデーまで。挑戦人数は168人でした)
与えられた個数の立方体を組み上げて、 できるだけ表面積の小さな直方体を作りましょう。 コンピュータを使わなければおそらく解けない問題です。 でも、アルゴリズムをよく吟味しないとたいへんなことに。 コンピュータと協力して表面積最小の直方体を見つけてください。
最高評価の挑戦者には「結城浩のチョコバッジ」をサイト上で付与!
ハサミを使うタイミング (挑戦終了。解説は下記のWebサイトをご覧ください)
2013年1月22日〜1月30日(1月23日で受付人数128名に達したため終了、1月25日にフィードバック完了)
長方形の紙をハサミで切ります。 指定した回数だけハサミを使うことになる長方形を探してください。
この問題は、 技術評論社のWebサイトのコラボ企画になっていて、 解答ならびに解説は公開される予定です。 以下のサイトをチェックしてください。
エンジニアのスキルを試すコードパズル ─この問題,あなたは解けますか?
グループを作ろう! (挑戦終了。解説は書籍化をお待ちください)
2013年1月16日〜1月30日(1月18日で受付人数128名に達したため終了、1月19日にフィードバック完了)
「このニックネームとあのニックネームは実は同じ名前である」というデータがたくさん与えられます。 そのデータをもとにして「同じニックネーム」をすべて集めてください。
《あるルール》を、見つけ出せ! (挑戦終了。解説は書籍化をお待ちください)
2013年1月7日〜1月29日(1月8日で受付人数128名に達したため終了、1月11日にフィードバック完了)
《あるルール》に基づいて'0'と'1'の羅列が書かれているテキストが与えられます。 そのうちの一部分が'?'で隠されていますので、 《あるルール》を見つけ出して全体を完成させてください。
本書『数学文章作法(さくほう) 基礎編』では、 「正確で読みやすい文章を書く心がけ」 をお話しします。 数式まじりの説明文が題材の中心ですが、 説明文を書く人ならどなたにも役立つ内容です。
『プログラマの数学』は、プログラミングに助けとなる「数学的な考え方」を学ぶ本です。
わかりやすい説明、たくさんの図、楽しいクイズやパズルを通して、
プログラミングに役立つ「数学的な考え方」を学びましょう。