Blog

  • PyPDF2を使ってPDFを結合する

    PyPDF2を使って2つのPDFを結合するスクリプトを作成する. 使用した Python のバージョンは 3.11.3 で,PyPDF2のバージョンは 3.0.1 である. import PyPDF2 # マージする2つのPDFファイルを指定 pdf_file1 = “file1.pdf” pdf_file2 = “file2.pdf” # 新しいPDFファイルを作成してマージするためのPdfFileWriterオブジェクトを作成 output_pdf = PyPDF2.PdfWriter() # 最初のPDFファイルを開いてページを追加 with open(pdf_file1, “rb”) as file1: pdf_reader1 = PyPDF2.PdfReader(file1) for page_num in range(len(pdf_reader1.pages)): page = pdf_reader1.pages[page_num] output_pdf.add_page(page) # 2番目のPDFファイルを開いてページを追加 with open(pdf_file2, “rb”) as file2: pdf_reader2 = PyPDF2.PdfReader(file2) for page_num in range(len(pdf_reader2.pages)):…

  • Raspberry Pi のターミナルで日本語を表示させる

    Raspberry Pi OS をインストールした Raspberry Pi で,デフォルトのままだとターミナル上で日本語が表示されなかったので設定した際のメモ. Raspberry Pi のターミナルで日本語を表示させるためには,システムのロケールを日本語(UTF-8)に設定し,日本語フォントをインストールする必要がある.以下がその手順. ロケールの設定 Raspberry Pi OS では,raspi-config ツールを使用してロケールを設定できる. ターミナルを開き,以下のコマンドを実行. sudo raspi-config 「Localisation Options」(ローカリゼーション設定)を選択. 「Locale」を選択し、使用したい日本語ロケール(例:ja_JP.UTF-8)を探して選択する. デフォルトのロケールとして設定. 日本語フォントのインストール ターミナル上で日本語を正しく表示されるには,日本語フォントが必要.以下のコマンドで日本語フォントをインストールする. sudo apt-get install fonts-ipafont 最後にシステムの再起動 設定を有効にするために Raspberry Pi を再起動する. sudo reboot 再起動後,ターミナルを開いて日本語が正しく表示されるか確認する. ちなみに自分の環境では,cat コマンドで日本語表示できたものの,less コマンドで日本語が文字化けしていた. echo $LANG echo $LC_ALL で,ロケールが正しく設定されているか確認すると.LC_ALL が設定されていなかったので,以下のコマンドを .bashrc に追記することで解決した. export LC_ALL=ja_JP.UTF-8

  • arXivの新着をSlackに通知する

    ★注意★ この記事のスクリプトは下記の古いパッケージで動作確認しており,最新のパッケージでは動作しないことをご留意ください. arxiv==1.4.7 openai==0.27.4 arxiv APIを用いた論文検索 arxivに投稿された論文を自動でSlackへ通知するbotを作成する. 概ね 参考1 を参考にした. arxivのAPIを用いると,以下のように新規投稿された論文を取得できる. import datetime as dt import arxiv # パラメータ MAX_RESULT = 10 N_DAYS = 7 # テンプレートを用意 QUERY_TEMPLATE = ‘%28 ti:%22{}%22 OR abs:%22{}%22 %29 AND submittedDate: [{} TO {}]’ keyword = “Information Theory” today = dt.datetime.today() base_date = today – dt.timedelta(days=N_DAYS) query = QUERY_TEMPLATE.format(keyword, keyword,…

  • Lean 6

    萩原先生から出題された課題(脳トレ)を解いてみた. import Mathlib.Tactic section variable (A : Prop) example : ¬ (A ↔ ¬ A) := by intro (h : A ↔ ¬ A) have h1 : A → ¬ A := h.mp have h2 : ¬ A → A := h.mpr have h3 : (A → ¬ A) → ¬ A := by intro…

  • LEAN写経 応用情報数理学特論 第11回

    千葉大学 萩原先生の 応用情報数理学特論 第11回 の演習をLean4で写経してみる. 演習11-01 — 目標1.data.set — 目標2.関数と集合 — 目標3.型上のinjectiveとsurjective import Mathlib.Tactic — Lean4だとだいたいこれで色々使えるようになる(適当...) variable {X Y : Type} (S : Set X) (P : X → Prop) #check ∀ x ∈ S, P x #check ∃ x ∈ S, P x example (h : ∀ x ∈ S, P x) (x : X)…

  • LEAN写経 応用情報数理学特論 第10回

    千葉大学 萩原先生の 応用情報数理学特論 第10回 の演習をLean4で写経してみる. 演習10-01 /- 目標1. ℕ inductive zero : ℕ succ : ℕ → ℕ -/ import Mathlib.Tactic — Lean4だとだいたいこれで色々使えるようになる(適当...) #print Nat — これでNatの定義が見れる. #check Nat.zero — Lean では 0 も自然数 #check Nat.succ — これでNat.succの型が見れる. open Nat #eval zero — 0 #eval succ zero — 1 … 0の次の数 #eval succ (succ zero) –…

  • LEAN写経 応用情報数理学特論 第09回

    千葉大学 萩原先生の 応用情報数理学特論 第09回 の演習をLean4で写経してみる. 演習09-01 /- 目標1. set set ⊆ \subseteq ∈ \in ∪ \u ∩ \i \ \ ∅ \empty -/ import Mathlib.Tactic — 目標2. False.elim (h : x ∈ (∅ : set U)) variable {U : Type} — このあと引数が柔軟にとれるように,中括弧にしておく variable (A B : Set U) — U を母集合とする部分集合 A, B variable (x :…

  • Lean 5

    「はじめての数理論理学」山田俊行著,森北出版.2018.に記載されている演習問題を Lean で解いてみた. — 「はじめての数理論理学」山田俊行著,森北出版.2018 — p.55 2-5 演習問題 import Mathlib.Tactic — 演習問題 2.1 奇数と平方 — 奇数の平方はみな奇数である. example : ∀ (n : ℤ), Odd (n) → Odd (n * n) := by intro n h — 任意の奇数 n をとってくる. have ⟨k, hk⟩ := h — n = 2 * k + 1 となる k をとってくる.…

  • LEAN写経 応用情報数理学特論 第08回

    千葉大学 萩原先生の 応用情報数理学特論 第08回 の演習をLean4で写経してみる. 演習08-01 — 目標1.Nat as ℕ — 目標2.Int as ℤ — 目標3./- -/ /- x + y 足し算 x – y 引き算( ℤ ) x * y 掛け算 -x 加法の逆元( ℤ ) #eval 計算結果の表示 -/ #eval 1 + 1 #eval 3 * 10 #eval (-2 : Int) #eval 1 – 2 –…

  • LEAN写経 応用情報数理学特論 第07回

    千葉大学 萩原先生の 応用情報数理学特論 第07回 の演習をLean4で写経してみる. 演習07-01 — 目標1.Exists.elimに慣れる — 目標2.$ ← LEAN4では不要? — 目標3.assume に複数の引数を与える $ ← LEAN4では intro variable (U : Type) variable (A B : U → Prop) — Exists.elim は ∃ を除去する規則 — 逆に Exists.intro は ∃ を導入する規則 example : (∃ x, A x ) → ∃ x, A x ∨ B x…

投稿されている内容や意見は私個人の見解に基づくものであり,
所属組織・部門見解を代表するものではありません.