アルゴリズム

アルゴリズムの勉強(6)

エジプトの分数 環境 $ node --version v13.5.0 $ tsc --version Version 3.7.4 コード // フィボナッチの貪欲アルゴリズム(再帰) function frac(m: number, n: number) { const q_plus1 = Math.floor(n / m) + 1; if (n % m == 0) { return ("1/" + n/m);…

アルゴリズムの勉強(5)

異性体の問題 環境 $ node --version v13.5.0 $ tsc --version Version 3.7.4 コード const C = 17; const L = 2558; let size = Array(L); let _length = Array(L); let count = Array(C + 1); for (let i = 0; i < L; ++i) { size[i] = 0; } for (let i = …

アルゴリズムの勉強(4)

安定な結婚の問題 環境 $ node --version v13.5.0 $ tsc --version Version 3.7.4 コード // 準備 let boy = [0, 0, 0, 0]; let girl = [[0, 0, 0, 0], [0, 1, 3, 2], [0, 2, 3, 1], [0, 3, 1, 2]]; let position = [0, 0, 0, 0]; let rank = [[0, 0, 0, 0],…

アルゴリズムの勉強(3)

暗号 環境 $ node --version v13.5.0 $ tsc --version Version 3.7.4 コード // 線形合同法 // cryptのコードが線形合同法のrandを使う前提のように見えたので実装 // TypeScript(というかjavascriptのrandがどうなのかは調べてない) // 線形合同法を知ら…

アルゴリズムの勉強(2)

誤り検出符号 Luhn(ルーン)のアルゴリズム。 クレジットカードの番号の誤り検出を行うのに使われているらしい。 環境 $ node --version v13.5.0 $ tsc --version Version 3.7.4 コード const card_number: string = "1234567890123456"; let w: number = 1…

アルゴリズムの勉強(1)

値の交換 環境 $ node --version v13.5.0 $ tsc --version Version 3.7.4 コード let a: number = 1; let b: number = 2; console.log("a = ", a, ", b = ", b); console.log("swap"); let t = a; a = b; b = t; console.log("a = ", a, ", b = ", b); 実行…

アルゴリズムの勉強 (0)

はじめに C言語による標準アルゴリズム辞典 、旧版は持っていたけど改訂新版は持ってなかったので今日購入しました。 結構忘れているので勉強のために写経していこうと思ったのですが、C言語そのままというのもなんなので何か他の言語を使うことにします。Ty…