世界を動かす技術を、日本語で。

コンピュータサイエンスのための数学 (2018) [pdf]

概要

このテキストは PDF内部構造 の一部を表している。 主に オブジェクト参照リンク情報 が含まれる。 内容は バイナリデータエンコードされた文字列 も混在。 通常の テキストデータ とは異なり、直接的な読み書きには専門知識が必要。 PDFの 目次やリンク の定義部分である可能性が高い。

PDFオブジェクトとリンクの構造

  • PDFファイルは オブジェクト 単位で構成される
  • 各オブジェクトは 番号 で識別
  • /Title/Parentなどのエントリは 目次や階層構造 を示す
  • /D/S /GoToリンク先やアクション の指定
  • [25 0 R /XYZ 162 617.768 null]のような記述は ページ座標ジャンプ先 を示す

バイナリ・エンコードデータの存在

  • (�v�c�v\r��$��2)のような文字列は バイナリまたはエンコード済みデータ
  • これらは タイトルや注釈 などの情報を含む場合がある
  • 日本語や特殊文字は エンコード方式 によって正しく表示されないことがある
  • エンコード情報がなければ 直接の復元は困難
  • 専用ツールやライブラリで デコード・解析 が必要

目次・リンク構造の解析

  • /Next/Prev前後の目次項目 へのリンク
  • /Aアクション(例:ページジャンプ) を示す
  • /Parent階層的な親子関係 の定義
  • /Count/First子要素の数や先頭要素 を示す
  • これらの情報をもとに PDFの目次やナビゲーション が実現

解析・編集のポイント

  • PDFの 内部構造理解 が不可欠
  • テキスト抽出や編集には 専門ツール(例:pdfminer, pdftk, qpdf) 利用推奨
  • バイナリ部分やエンコード文字列の扱いには 注意が必要
  • 誤った編集は ファイル破損 の原因
  • 目次やリンク修正時は バックアップの取得 が重要

まとめ

  • 本データは PDF内部のオブジェクト定義 である
  • 主に 目次やリンク、階層構造 を記述
  • 一部は バイナリやエンコード文字列 で人間には判読困難
  • 解析や編集には 専門知識とツール が必要
  • 通常のテキストファイルとは 大きく異なる構造

Hackerたちの意見

コンピュータサイエンスの必読書100選みたいなリストはよく見るけど、必ず持っておくべき本のトップ5ってあるのかな?

やる仕事の種類によると思うよ。例えば「どのプログラミング言語を学ぶべき?」みたいな感じ。あんまりいい答えじゃないけどね。

あなたの目標が何かわからないけど、もし私みたいにコンピュータサイエンスの学位がなくて、ギャップを埋めたいなら、このサイトは素晴らしいよ。 https://teachyourselfcs.com/ 「まだ多すぎるセクション」を見てみて。時間がないなら、彼らが推奨するトップ2冊を教えるよ。

特におすすめの本はないけど、この本は関係よりも数字に重点を置いてるみたい。もしかしたらPDF検索がうまくいってないのかもだけど、「型理論」と「カテゴリ理論」で0件の結果が出たよ。もしコンピュータサイエンスの数学に興味があるなら、そっちも調べてみるといいかも。

Concrete Abstractionと次にSICP、どちらもScheme用だよ。これをやれば、CSの基礎はほとんど理解できてるはず。別の言語を学ぶのは楽勝だよ。

プロジェクトを通じてプログラミングを練習する方がずっと有用だよ。特定の問題を解決するために知識が足りないと感じたら、そのことについて調べればいいんだ。

トップ5では分野をカバーできないよ。俺のトップ10はこれだね:

  • BrookshearとBrylow - Computer Science - An Overview
  • Forta - Teach yourself SQL in 10 minutes
  • Stallings - Computer Organization and Architecture
  • Stallings - Operating Systems - Internals and Design Principles
  • CLRS
  • Kurose, Ross - Computer Networking - A Top Down Approach
  • Sipser - Introduction to The Theory of Computation
  • Stallings, Brown - Computer Security - Principles and Practice
  • Aumasson - Serious Cryptography
  • Russell, Norvig - Artificial Intelligence - A Modern Approach これでもプログラミング言語はカバーしきれないけどね。Pythonはこの分野の共通語だし、過去におすすめされた本の多くは古くなってるけど、MatthesのPython Crash Course第3版はいいかも。

この本、めっちゃ好きなんだけど、難しすぎて、各段落の1-2ページしか理解できない。でも、入力と出力の無限リストみたいな関数についての素晴らしい洞察を得たし、数学的表記で「全てが失われたわけじゃない」っていうユーモアも最高だった。死ぬ前にこの本を完全に理解できたらいいな。

各段落の1-2ページ。 ヴィクトル・ユーゴーが書いた本を想像して笑っちゃった。

「1-2ページ」って言ってるけど、実際は-1ページだよね。

これがHackernewsの好きなところなんだよね。最近これを探してたら、フルPDFで手に入った!もっといいスクリーンリーダーのおすすめがあったら教えてほしいな。

LaTeXの数式が読めるスクリーンリーダーってあるの?もし可能なら驚くけど、その数式の記号のほとんども言えないよ。

コンテキスト: トムソン・レイトンはアカマイの創設者だよ。ここに講義のリンクがある: https://www.youtube.com/playlist?list=PLB7540DEDD482705B これはネット上で一番好きだった講義のセットの一つ。

アカマイ?彼らはアカマイ(しばしばLinode)のIPv4レンジを使ってるスクリプトキディやスキャナーにもっと気を使ってるんじゃないかな?お願いだから。

循環バッファの正しさの証明は見なかったの?一つの消費者、一つの生産者、並列実行、2つのアトミックポインタ、一つの読み取りポインタ、一つの書き込みポインタ、そしてサイクルビット。

こんな大きな問題集を解いたことはないな。ちょっとバカみたいに聞こえるかもしれないけど、サンプル問題の解答はあるの?いくつか挑戦してみたけど、どこにも答えが見つからなくて、自分の解答を確認できないんだ。

それは全然バカな質問じゃないよ。解答付きの参考書はすごく理にかなってる。こういうのを作る大学や学術機関は、クラスで同じ質問を使い回すことが多いから、結構慎重なんだよね。5年の間に同じ質問を交互に使ったりするし。実際、特定の科目の小さなモジュールをテストするには、その質問プールにある有効な質問の数はかなり限られてるからね。

この本、好きだな。確率のセクションが特に良くて、モンティ・ホールの逆説の扱い方が素晴らしい。彼らの「四段階メソッド」は、すごく分かりやすくて、映画の「21」や「numb3rs」よりもずっとクリアだよ。

2017年版がイギリスのabebooksでオンデマンド印刷されてることを発見したよ。ちょっとしたことを調べたり、作業するのには紙の方が好きなんだ。

各セクションのプレゼンテーションはかなり標準的だけど、それが悪いわけじゃないよね。引用がどこから来ているのか、すべての出典に戻るのが好きだな。もっと多くの本がこういう風にしてくれたらいいのに。

これは私にとって非常に貴重なリソースだよ。投稿してくれてありがとう!