三浦と窮理とブログ

自分の経験したことを検索可能にしていくブログ.誰かの役に立ってくれれば嬉しいです.

Javaで末尾再帰最適化をする方法

StreamAPIを使えばjavaでも末尾再帰最適化(Tail-Call Optimization)ができるぞという本( Javaによる関数型プログラミング ―Java 8ラムダ式とStream | Venkat Subramaniam, 株式会社プログラミングシステム社 |本 | 通販 | Amazon 。英語版のpdfが無料でネッ…

SSD(SunDisk SDSSDH3-500G-G25)の換装(クローン作業)

私のデスクトップパソコンが少しずつ調子が悪くなってきております。 とくに少し前にパソコンの起動中に家が停電になって強制シャットダウンしたのは影響が大きいようです。 そのときは復電後も本当にパソコンが起動しなくなったのですが、電源ユニットを交…

Java SE 11 Gold 認定資格 合格体験記

Java SE 11 Gold認定資格に合格しましたので、いろいろ書いていきます。 Silverの時に書いた記事もあります。 Java SE 11 Silver 認定資格 合格体験記 - 三浦と窮理とブログ 資格についての基本情報についてはSilverのときとほとんど同じなので今回は割愛し…

Javaのリテラルまとめ

リテラル ソースコードに直接記述する値。プリミティブ型では整数、浮動小数点数、真偽、文字の四つ。参照型では文字列やnull、クラスリテラルがある。 プリミティブ型リテラル プリミティブ型のリテラルはデフォルトでは以下の型になる。 リテラル プリミテ…

Gitのファイルステータスまとめ

Git

とあるファイルについて、git statusで表示される状態と、実際のファイルの状態(存在性,内容)の対応を表にしてみる。 その都度考えれば分かることではあるが、まとめると何かに便利かも。。。 言葉や記号の定義は下のセクションに述べる。 status 作業ディレ…

GitLabのマージリクエストのChangesに表示される差分

GitLabのマージリクエスト(MR)のChangesに表示されるのは git diff <base branch>...<source branch> である。トリプルドット...に注意。 Commits > Compare でも2つのコミット選択欄の間に...が表示されている。 ダブルドットとトリプルドットの違い git diffにおいて、ダブルドット..に</source></base>…

java.util.stream.Stream<T>.flatMap() の使い方

JavaのStreamAPIにあるflatMapメソッドを使ってみます。 定義 <R> Stream<R> flatMap(Function> mapper) 簡単のために、ワイルドカードをその境界の型に書き直して考えてみます。 <R> Stream<R> flatMap(Function<T, Stream<R>> mapper) 引数にはFunction<T, Stream<R>>型インスタンスを渡します。</t,></t,></r></r></r></r>…

Java SE 11 Silver 認定資格 合格体験記

Java SE 11 Silver認定資格に合格しましたので、いろいろ書いていきます。 資格情報 オラクル認定Javaプログラマー SE 11という資格で、認定してもらうためにはJava SE 11 Programmer I(1Z0-815-JPN)という試験に合格する必要があります。JPNがついていない…

java.util.Collectionの実装クラスのクラス図

java.util.Collectionの実装クラスを、継承と実装の関係だけですがクラス図にまとめてみました。 The Java Tutorial に載ってるクラスを、全てではありませんが実際にソースコードを見ながらextendsとimplementsの関係をまとめています。 MapもCollectionと…

Javaの列挙型まとめ

列挙型 (enum type) https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#jls-8.9 クラス型の特殊な1つ。型自身のstaticインスタンスをまとめて保持する。switch文の条件式に使…

グラフィックボードの交換 ASUS NVIDIA RTX2060 PH-RTX2060-6G

デスクトップパソコンのグラフィックボードを交換しました。 4KディスプレイとフルHDディスプレイのデュアルディスプレイにしだしてから、youtubeで動画を見たりtwitterで画像を見たりしたときに画面がフリーズするようになったためです。 原因がグラボであ…

CPUクーラーをScythe Mugen 5 Rev.B SCMG-5100へ交換しました

デスクトップPCのCPUクーラーを交換しましたのでその記録です。 スペック 私のデスクトップPCはcpuが intel core i7 3770 、マザーボードが ECS B75H2-M2 です。cpuソケットは LGA1155 です。 交換するcpuクーラー 交換前に使っていたcpuクーラーは Vortex P…

PCIe4.0 NVMe M.2 SSD を PCIe2.0x1に載せようとしてうまく行かなかった

デスクトップPCに新しいストレージとしてM.2SSDを導入することにしました。最初はwindows10の起動ドライブの移行をしようとしていたのですが、実際に試してみるとできなかったので、純粋にデータストレージとして使うことにしました。その様子も含めてまとめ…

C++でマルチスレッド・べクトル化実行する

windows10の環境でC++のマルチスレッド・べクトル化プログラムを実行してみます。 cpuがintel core i7-3700 (4core/8thread)の環境です。 実行ポリシーを指定できる <execution> *1 が gcc9(C++17) から使えるそうなので *2 mingw-w64のgccのインストールからやりました</execution>…

1次不定方程式を解くC++/boostライブラリ

boost の boost/integer/extended_euclidean というライブラリに1次不定方程式を拡張ユークリッド互除法で解く型があるので使ってみます. 1次不定方程式 $mx + ny = \operatorname{gcd}(m, n)$ の解 $x, y$ を1つ求めることができます. 以下のプログラムを…

整数配列の最大公約数を求めるC++/boostライブラリ

boost の boost/integer/common_factor_rt というライブラリで整数配列の最大公約数や最小公倍数を求める関数があるので使ってみます. 最大公約数を求めるのは gcd_range,最小公倍数を求めるのがlcm_range です.戻り値のpairの1成分目に値が入っています…

MathJax3.0 で数式番号が改行されない原因

本ブログでは数式の表示にMathJaxを用いている.少し前にバージョンを3.0にしたのだが,数式番号だけがうまく改行されずに表示されるという問題が発生していた. この問題の根本原因や理由は分からないのだが,とりあえず解決策は見つかったのでまとめておく…

相加・相乗・調和平均の極限値

$\quad $ 実数列 $ \{a _ n\}, a _ n>0 ~ (\forall n) $ に対して,相加平均 $ A _ n $ ,相乗平均 $ G _ n $ ,調和平均 $ H _ n $ は次のように定義される. \begin{align} A _ n &= \frac{a _ 1 + a _ 2 + \cdots + a _ n}{n} \\ G _ n &= \sqrt[n]{a _ 1…

ABC150D - Semi Common Multipleまとめ

Atcoder ABC150D D - Semi Common Multiple 時間内にはできませんでした.解説を見ながらやり直したのでまとめます. a = { a₁ ,a₂ ,... ,aN } a/2 = { a₁/2 ,a₂/2 ,... ,aN/2 } と表すことにします.a が偶数列なので,a/2 は整数列です.a の半公倍…

剰余の関数プロット

atcoder の D - Remainder Reminder のような,剰余 a%b を調べる問題で a と b のどちらを固定するかで議論の難しさがとても違ったので(自分は最初 a を固定して考えていて分からなくなった),この際,剰余の関数グラフをプロットして見てみる. 特別な結…

条件付き期待値の期待値による期待値漸化式

次のページの証明1:確率漸化式について自分はすこし戸惑ったので補足説明をする. AtCoder ARC 085 C - HSI (300 点) - けんちょんの競プロ精進記録 この漸化式を保証しているのは次の公式である. 確率変数 X, Y に対し,E[X] = E[E[X|Y]] である. これは…

電弱理論・中性カレント過程の散乱断面積の計算ノート

Cheng & Li 『Gauge theory of elementary particle physics』p365 から説明されている素粒子の散乱過程についての計算ノートをまとめる. Gauge Theory Of Elementary Particle Physics (Oxford Science Publications)作者:Cheng, Ta-Pei発売日: 1995/08/10…

Ford-Fulkerson法の実装解説

グラフの最大流問題を解くアルゴリズムのFord-Fulkerson法のC++実装例が プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ (蟻本)p190にあります.アルゴリズム自体は本文にある説明…

2次元イジングモデルのオンサーガー解の数値計算

無限体積の2次元イジングモデルの厳密解であるオンサーガー解を数値的に計算する. 1スピン当たりの自由エネルギー \begin{align} -\beta f &= \log(2\cosh 2K) + \frac{1}{2\pi ^ 2} \int ^ \pi _ 0 d\omega _ 1 \int ^ \pi _ 0 d\omega _ 2 \log(1 - k ^ 2…

Qiskit で平方根ゲート を使う方法

Qiskit で平方根ゲートを作るには power メソッドを使います. 例えば $\sqrt{NOT}$ ゲートは XGate().powre(.5) です. power メソッドは Gate クラスに対して使えます. 参考 Gate — Qiskit 0.13.0 ドキュメント 使用例 実際に $\sqrt{NOT}$ ゲートをつく…

Qiskit で一度追加した量子ゲートを削除する方法

Qiski で量子回路を組んでいて,一度 QuantumCircuit に追加した Gate (およびInstruction )を削除する方法を説明します. ドキュメント QuantumCircuit に追加した Instruction の情報は,data という属性にリストになって保存されています *1. ですので…

量子プログラミング入門【物理学科生向け】

前置きの前置き 量子コンピュータについて少し勉強してみたので,量子プログラミング入門という題でまとめていきたいと思います. 「現在利用可能な量子コンピュータを触ってみよう」というようなモチベーションです. ハードウェア自体は現在も世界各地で絶…

剰余の変域

問題 L ≦ x ≦ R な自然数 x に対して, 自然数 m を法とする剰余の値 y = x%m の変域は if (R - L ≥ m) 0 ≦ y ≦ m - 1 else if ($\lfloor$L/m$\rfloor$ = $\lfloor$R/m$\rfloor$) L%m ≦ y ≦ R%m else if ($\lfloor$L/m$\rfloor$ + 1 = $\lfloor$R/m$\rfloor$…

A - Diverse Word:AGC22

問題 A - Diverse Word 入力された多彩な単語に対し,辞書順で次の多彩な単語を求める. 理解 多彩な単語の辞書がすぐには想像できないので書き下すことにする.「見たものは想像できる」の精神. a から始まる多彩な単語について,次の図のように木の形に単…

sundiskのusbメモリが書き込み禁止になったので,sumsungのメモリを買った.

1年前に買った Sundiskのusbメモリが突然書き込み禁止になりました. ネットで調べた書き込み禁止解除の方法を試しても治らなかったので新しいusbメモリを買いました. 今回壊れたのは SanDisk Ultra Fit 128GB です. 【 サンディスク 正規品 】5年保証 USB…