2021-01-01から1年間の記事一覧

再帰関数とメモ化と分割統治法

再帰関数 GCD(m, n) - 2つの整数から最大公約数を求める ベースケース 可視化 再帰関数とメモ化 フィボナッチ数列 部分和問題(最適な部分集合を見つける) with 分割統治法 再帰関数を使うことで問題を少問題に分割できる 再帰関数 ベースケース 振る舞いの…

全探索 with 線形探索法

全探索 with 線形探索法 以下の3つの全探索問題を線形探索法を用いて解く方法を見ていく 1つの配列から1つの要素を見つける O(N) 2つの配列から各々1つの要素を取り出し、最適な組み合わせを見つける O(N2) ある集合から最適な部分集合を見つける O(2N)…

SQL構文

SQL構文 書き順 評価順序 句 備考 1 7 SELECT (DISTINCT) 列の指定 DISTINCTを指定すると列の値が重複する場合、排除してくれる 2 2 FROM テーブル WHERE句で内部結合する際は、結合するテーブルをすべて列挙する 3 3 INNR(LEFT/RIGHT OUTER) JOIN 結合テー…

Deref型

Deref型 代表的なDeref型 参照型 &T スマートポインタ String, Box<T>, ... 3つのDeref型強制 参照(More on Deref coersion) If T implements Deref<Target = U>, and x is a value of type T, then: In immutable contexts, *x (where T is neither a reference nor a raw</target></t>…

*演算子(Dereference)とスマートポインター

*演算子(Dereference演算子)は 参照型につかうと、参照外しされる。 スマートポインター(Deref実装型)に使うと、Deref型強制される。 メモ pub trait Dref { type Target: ?Sized; fn deref(&self) -> &Self::Target; } 不可変参照外し演算子(*v)によって使…

11文字の殺人

著者: 東野圭吾 発行: 1990年 あとがきを読んで、東野圭吾と宮部みゆきが同世代であることを知った。 仲が良いことは知っていたが、彼女は社会派ということもあり、世代が一つ上ぐらいのイメージがあった。 著者は85年のデビューから「放課後」でその年に…

国の借金と民間の借金

岸田総理が述べたことの全ては本来民間企業が行うべきもので、政府の役割はそのための基盤となる基礎及び応用研究を促すことだ。残念ながら総理はこれを触れていない。大学及び国研の法人化以後、日本の基礎研究は半殺しされ、思い切り対策を取らないならば…

ザナドゥ

note.com 著者: 戸画美角 感想: 「僕は知っていることだけしか知らないですよ」 知り合いの方が小説を書くということが本当に面白い。ということが分かった。 著者はとても物知りな方だなとずっと思っていて、そのことを直接伝えたこともある。 そして冒頭の…

アベノミクスに思う

日経平均株価 8営業日連続の値下がり 2009年7月以来約12年ぶり | NHKニュース https://t.co/P41YXHOdpu— Kosuke YOSHIMOTO (@ysn551) October 6, 2021 連日、株価が下落している。 しかし株を持たない私にとっては関係のない話だ。 アベノミクスもそうだった…

占星術殺人事件

著者: 島田荘司 発行日: 1981年 あらすじ: 事件は1936年、ニ・ニ六事件が発生した日、資産家の画家が殺害されるところから始まる。 現場には日記が残されており、6人の娘を生贄にしてアゾートという女神を作り出す計画が書かれてあった。 後日、こ…

リラ荘殺人事件

著者: 鮎川哲也 1956-57年に雑誌で連載。 著者は、江戸川乱歩から本格派の驍将(ぎょうしょう、強い武将の意)と称されていた。 内容は、 戦後まもない芸術大学の学生達がリラ荘という館を舞台に殺人事件に巻き込まれていく本格ミステリー。 作中に剣持警部が…

隻眼の少女

単行本発売日: 2010年 著者: 麻耶 雄嵩 (まやゆたか) まさかの結末。まさかの復讐劇。 キャッチコピーの「ここまで恐ろしいヒロイン」という意味を知りたくてディープに読みすすめてしまったせいか結末のショックがつらすぎた。 硝子の塔の殺人(知念実希人…

参照型 &T

参照型 &T 値を所有していないことを表す型。 &演算子(Borrow演算子)によって生成する。 借用 Rustでは、&演算子によって参照型を生成することを「値を借用する」という。 let a = String::from("a"); // 変数aの値を借用する let b: &String = &a; 値のライ…

自動参照外し (Auto-dereferencing)

元ネタ https://sodocumentation.net/rust/topic/2574/auto-dereferencing The dot operator ドット演算子 .演算子によって、コンパイル時に必要なだけの*が挿入され、自動で参照外しが行われる。 Deref型強制の一種。 let mut name: String = "Hello World"…

パターンマッチ ".." と "_"の違い

元ネタ Difference between ".." and "_" in match patterns. : rust _ 一つの値のみにマッチする .. 複数の値にマッチする let v = (1, 2, 3); match v { (1, 2, _) => println!("1, 2, _"), (1, ..) => println!("1, .."), (..) => println!(".."), }

Option<T>

Option enum Option<T> { None, Some(T), } boolに変換 is_some(&self) is_none(&self) 値の取り出し T expect(self), msg: &str) -> T unwrap(self) -> T unwrap_or(self, default: T) -> T unwrap_or_else<F>(self, f: F) -> T where F: FnOnce() -> T Result<T, E> ok</t,></f></t>…

所有権と借用

所有権 Ownership 所有権とは 所有権と値のライフスコープ 所有権の移動 コピーセマンティクス Copyトレイト実装型 基本型 (bool, i32, ...) 参照型 ムーブセマンティクス 所有権とは 値を保持できる変数は、必ず1つであるという制約のこと。 #[derive(Debu…

ポリモーフィズム with トレイトオブジェクト

ポリモーフィズム (Polymophism) ポリモーフィズム in Rust deepLによる翻訳 ポリモーフィズム 多くの人にとって、ポリモーフィズムは継承と同義語です。しかし、実際にはもっと一般的な概念であり、複数の型のデータを扱うことができるコードを指します。継…

トレイトオブジェクト

Trait objects 動的サイズ決定型 (DSTs) トレイトオブジェクトは、以下のポインタを持つワイドポインタ(動的サイズ決定型) 値へのポインタ 仮想メソッドテーブル トレイトオブジェクトの形 Box<dyn SomeTrait> &dyn SomeTrait トレイトオブジェクトの目的 動的ディスパッチ</dyn>…

ジェネリクス関数 - impl trait引数とトレイト境界の違い

元ネタ rust - What are the differences between an impl trait argument and generic function parameter? - Stack Overflow 回答 impl trait引数は、トレイト境界に脱糖(desugar)される。(ゆえにトレイト境界の糖衣構文である) したがって以下は同じ。 t…

anyhowを使う

anyhow::Error https://docs.rs/anyhow/1.0.44/anyhow/struct.Error.html 動的エラー型を包み込んだエラー型。 Box<dyn std::error::Error>との違い 静的な型 もどり道(backtrace)を保証する narrow pointer Display representations Display 表し方 esprintln!("{}", err) undering</dyn>…

anyhowメモ

anyhowのメリット エラーに説明を追加できる anyhow::Result<T>は、エラーの伝播ルートをスタックトレースとして出力してくれる anyhowがない場合 Result<T, E> と std::error::Errorトレイトを使う。 fn count_words<R: Read>(input: &mut R) -> Result<u32, Box<dyn Error>> { let reader = BufRe</u32,></r:></t,></t>…

Borrow<Borrowed>とToOwnedトレイト

Borrow<Borrowed>トレイト - Borrowed型を借用できることを表す ToOwnedトレイト - Borrow<Borrowed>型を実装すると自動実装される use std::borrow::Borrow; #[derive(Debug)] struct ToolBox(Tool); #[derive(Debug)] struct Tool; impl Borrow<Tool> for ToolBox { fn borrow(&self)</tool></borrowed></borrowed>…

葉桜の季節に君を想うということ

発行: 2003年 著書: 歌野晶午 まさかのつながりからの展開にびっくり。 十角館の殺人を彷彿させる本格ミステリーであったが、最後の最後までミステリー小説なのかどうか分からなかった。 読後、タイトルを読み、今や恋人の帰りを待っている主人公の姿を思い…

向日葵の咲かない夏

著書: 道尾秀介 発行: 2008年9月1日 いわゆる叙述トリックを使ったミステリ小説で、最後は嫌な気持ちになるイヤミス。 こういったミステリの醍醐味は、 最後まで読んでタネが分かった上で、また読み直すことできることだと思う。 道尾秀介の本は、「カラスの…

クラス図

UML

クラス関係 矢印でクラス同士を結ぶ事ができる。 この際、その関係の種類によって矢印の形が異なる。 関係 意味 備考 図 Extension 継承 Aggregation (集約) has-a 授業(親)と生徒(子)といった関係を表す。また授業を消したからと言って、生徒は消えない。 C…

ザリガニの鳴くところ

ネタバレあり

nmap <leader>r <Plug>(quickrun)

Vim

カスタムコルーチンスコープの作成

kotlin.github.io CoroutineScopeは実装することが出来る。 interface CoroutineScope CoroutineScope概要 launchやasyncといった全てのコルーチンビルダーはCoroutineScopeを拡張し、全ての要素とキャンセルを自動的に伝播するために、そのcoroutineContext…

Android KTXを

developer.android.com Android KTXとは Android JetpackのKotlin拡張をまとめたライブラリ。 以下のKotlinの機能を用いた拡張が用意されている Extension functions Extension properties Lambdas Named parameters Parameter default values Coroutines サ…