ログ

見る価値ありません

技術

TypeScript/JavaScriptで永続赤黒木

バグってたら教えて下さい 乱数挿入したこの永続赤黒木をgraphvizで視覚化 JavaScriptはGitHubに github.com ライセンス CC0-1.0 type Color = 'red' | 'black'; type Pair<T, S> = { readonly key: T, readonly value: S, }; const Pair = { from<T, S>(key: T, value: </t,></t,>…

JavaScriptで優先度付きキュー(二分ヒープ)

class PriorityQueue { constructor(comp) { this.heap = []; this.compare = comp; } isEmpty() { return this.heap.length == 0; } push(x) { this._upHeap(this.heap.push(x) - 1); } pop() { if(this.isEmpty()) { return undefined; } this._heapSwap(0…

JavaScriptで償却定数時間キュー

class Queue { constructor() { this.front = []; this.back = []; } isEmpty() { return this.front.length == 0 && this.back.length == 0; } push(x) { this.back.push(x); } pop() { if(this.isEmpty()) { return undefined; } if(this.front.length == …

SICP 練習問題1.19 フィボナッチ数を対数時間で求める

から また から よって (define (even? x) (= (remainder x 2) 0)) (define (fib n) (fib-iter 1 0 0 1 n)) (define (fib-iter a b p q count) (cond ((= count 0) b) ((even? count) (fib-iter a b (+ (* p p) (* q q)) (* q (+ (* p 2) q)) (/ count 2))) …

アセンブリ言語で書いたサブルーチンをC言語から呼び出す

メモ str.h int strlen(const char*); str.asm global strlen section .text ; int strlen(const char*) strlen: xor rax, rax _L1: cmp [rdi], byte 0 jz _L2 inc rax inc rdi jmp _L1 _L2: ret test.c #include <stdio.h> #include <str.h> int main(void) { printf("%d\n"</str.h></stdio.h>…

ABC080 D - Recording

問題 atcoder.jp お気持ち 区間加算して最大値を求める問題 連続する区間は1つにするというところからxorを使いたくなる チャンネル数が少ないので整数型に収まる なのでxorでimos法をする コード fn main() { read_init!(buf); let (n, c): (usize, usize) …

x86_64アセンブリでechoプログラム書いた

環境 Ryzen 5 2600 Windows10 2004 WSL2 Ubuntu 20.04.1 LTS NASM version 2.14.02 GNU ld (GNU Binutils for Ubuntu) 2.34 コード global _start section .text _start: mov rbp, rsp jmp main main: sub rsp, 0x100 ; char string[256]; mov rax, rbp sub …

AtCoder水色になった

EDPC J問題 Sushiについて

問題 atcoder.jp 参考 qiita.com テーブルの持ち方 i := 残り1つの皿の数 、 j := 残り2つの皿の数 、 k := 残り3つの皿の数 、として dp[i][j][k] := 全部食べ終えるまでの回数の期待値 と持つ 遷移式 あとで書く

WSL1の環境を破棄してWSL2を入れた

WSL1の環境の破棄 lxrunを使うものだと思っていたがそれは古い方法のようだ 新しい方法では 設定 -> アプリと機能 -> <distribution> -> アンインストール で破棄できる WSL2のインストール Windows Subsystem for Linux (WSL) を Windows 10 にインストールする | Microso</distribution>…

curl: (77) error setting certificates verify locations:

環境 EC2 Amazon Linux 1 問題 $ curl https://localhost curl: (77) error setting certificates verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none 解決 # yum reinstall ca-certificates

シェル芸でCommon Lispを使うためのメモ

roswell/sbcl-binを使う場合 パイプ出力は*standard-output*に吐く。明示的に指定しないとパイプにはつながらない。またrosコマンドの引数の最後に-qオプションが必要。 パイプ入力は普通に*standard-input*から読む。 $ echo "(1 2 3)" | ros run -e '(prin…

.tmux.confを書き直した

なぜ 今まで.tmux.confにprefixの変更くらいしか書いていなかったのだが、緑一色でダサいのでもう少しいい感じにしたかった この2つのページを参考にした(パクったともいう) qiita.com qiita.com 結果こんな感じになった 環境 ArchLinux tmux 3.0a 書いたも…

chrome extensionの書き方メモ

なぜ このアドレスバーにツイッター共有ページを開くボタンを設置するだけのchrome extensionを書いたときに調べたことをメモしておく github.com メモ manifest.json chrome extensionには設定ファイルであるmanifest.jsonが必須 実際に書いたもの { "manif…

i3-gapsの設定メモ

やりたいこと i3-wmのforkであるi3-gapsでウィンドウ-ウィンドウ間、ウィンドウ-画面端間に同じ幅のgapを持たせる 設定 ~/.config/i3/configに次の行を追記 gaps inner <px> outerはウィンドウ-画面端間のgapの設定のようで、設定するとウィンドウ-画面端間のgap</px>…

fzfのための関数書いた

概要 gitを真面目に使い始めたらなぜかfzfの便利さに目覚めたので関数書いてもっと便利にしたかった コード 基本的な関数はワンライナーに組み込みやすいようにfzfの引数に$@を渡す。 xargsの-rオプションは入力がないときにコマンドを実行しない。 # this c…

C言語に機械語を埋め込む

環境 Windows10 1903 WSL1/Ubuntu 18.04.3 LTS gcc 7.4.0 コード #include<stdio.h> int reduce(int (*funcp)(int, int), int array[], size_t size, int acc){ if(size == 0){ return acc; }else{ return reduce(funcp, array + 1, size - 1, (*funcp)(acc, *array))</stdio.h>…

Nucleo STM32F446REのUSARTのメモ

ピン PA2 - USART_TX PA3 - USART_RX GPIO Altanative function AF7 USART 0b0111 GPIOA_AFRL offset 0x20 GPIOA_AFRL [11:8] PA2 GPIOA_AFRL [15:12] PA3 GPIOA_AFRH offseet 0x24

armアセンブラ(thumb2)メモ

レジスタ thumb命令の大半はr0-r7にしかアクセスできない 名称 別名 用途 r0 - 引数1、返り値、破壊可能 r1 - 引数2、破壊可能 r2 - 引数3、破壊可能 r3 - 引数4、破壊可能 r4 - r5 - r6 - r7 - gccではfpとして利用(thumb命令時) r8 - r9 - プラットフォー…

STM32F446REの割り込みベクタのメモ

リファレンスマニュアル P.62 Once the boot pins are selected, the application software can modify the memory accessible in the code area (in this way the code can be executed through the ICode bus in place of the System bus). This modificat…

Common Lispでechoサーバ

環境 処理系 SBCL ライブラリ usocket コード (ql:quickload "usocket") (defun echo-server (port) (let* ((server-socket (usocket:socket-listen "localhost" port :reuseaddress t)) (stream (usocket:socket-stream (usocket:socket-accept server-sock…

Arch Linux on ThinkPad X1 Carbon 5th Gen(2017)で指紋認証

追記 2020/03/28 パッケージをロード... 依存関係を解決しています... 衝突するパッケージがないか確認しています... :: libfprint-vfs0097-git と libfprint が衝突しています。libfprint を削除しますか? [y/N] y エラー: 処理の準備に失敗しました (依存…

Rubyで純Lispもどきを書いた

参考ページ t.co 特にlambdaの実装を参考にした コード github.com テストを書いてないのでバグが一杯ありそう 次はGCのない言語で実装したい

ニコニコ動画の動画本体のページを開くブックマークレットを書いた

javascript知らないけど書いた github.com ハマりポイント & メモ apiに動画IDを投げると記号がパーセントエンコードされた状態のURLが帰ってくるが、jsのglobalThis#decodeURIだとascii文字はデコードしてくれないので、自分で実装する必要がある。 ブック…

Nucleo F446REでLチカと+α

参考 idken.net yuki-sato.com リファレンスマニュアル https://www.st.com/content/ccc/resource/technical/document/reference_manual/4d/ed/bc/89/b5/70/40/dc/DM00135183.pdf/files/DM00135183.pdf/jcr:content/translations/en.DM00135183.pdf 環境 Nuc…

フィボナッチ数列をC言語でcode golfする

無限ループ(仕様では未定義動作)でいいとして b;main(a){printf("%d\n",b+=a);main(b-a);} わたしには上の42byteが限界でした