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

整数をインクリメントするスレッド vs. その整数を表示するスレッド

1. 動機 以下のプログラムを考える: メインスレッドで共有の整数nを用意する(初期値は0)。そして以下の2つのスレッドを立ち上げる。 ・1000回だけnを標準出力に書き出す。 ・1000回だけnをインクリメントする。前者のスレッドは出力行を書式設定して書き…

Rustのbreakとラベル付きループのメモ

たまに使いたくなるたびに調べているのでメモ fn main() { // loopは式なのでbreakで値を返すことができる. forやwhileではできない. let n = { let mut n = 3; loop { if 2u32.pow(n)+ n >= n.pow(3)-n { break n; } n += 1; } }; println!("The minimum in…

Rustで多倍長整数と素数生成

暗号のお勉強をしているときにRustで何かしらプログラムを書こうと思ったので、Rustでの多倍長整数の取扱についての軽いメモ。以下のソースコードはNバイトの素数をMiller–Rabinの素数判定法を用いて確率的に生成するもの(まともにデバッグしていないので間…