C#でじゃんけん 第5版

C# でじゃんけんするプログラム 第5版 です。 第 5 版では、勝ち、負け、あいこを判断するメソッド JudgeResult メソッドをさらに書き換えます。第 4 版では、手の組み合わせに対する結果をデータとして用意しておくようにしました。これを計算と比較により…

2次元配列をLinqする in C#

2 次元配列の各要素をそれぞれの次元のインデックスとともに別の形に変換し、元と同じサイズの 2 次元配列に戻したい、、、そこで拡張メソッドを作りました。

C#でじゃんけん 第4版

C# でじゃんけんするプログラム 第4版 です。 第 4 版では、勝ち、負け、あいこを判断するメソッド JudgeResult メソッドを書き換えます。これまでは if 文でそれぞれの手の組み合わせを場合分けしていました。今回は、手の組み合わせに対する結果をデータと…

DataGridViewでEnterキーを押すと任意のセルにフォーカスが移動されるようにする

DataGridViewでEnterキーを押すと隣のセルにフォーカスが移動されるようにする を拡張し、隣だけではなく任意のセルにフォーカスが移動できるようにしてみました。

C#でじゃんけん 第3版

C# でじゃんけんするプログラム 第3版 です。 第3版では、勝ち、負け、あいこを判断する JudgeResult() メソッドの単体テストを作成します。単体テストにより、その対象メソッドの動作を確認するとともに、実装の改良が自信を持って進められるようになります…

C#でじゃんけん 第2版

C# でじゃんけんするプログラム 第2版 です。 第2版では、実行の流れの各項目をメソッドに分割し、main からそれぞれのメソッドを呼び出すようにします。大きいメソッド 1 つより、適当な大きさに分割された複数のメソッドのほうが、なにをしているか理解し…

DataGridViewに複数行で結合した列の表題を表示する

DataGridView に、2 行 3 列で、1 行目が結合した以下のような表題を表示してみます。DataGridViewのCellPaintingイベントで、罫線や文字列を描画します。 +--------------------------------------+ | 結合された1行目の表題 | +------------+------------+…

C#でじゃんけん

C#でじゃんけんするプログラムを作ってみます。 あなたとコンピュータでじゃんけんをします。 プログラム全体はこちらを参照してください。

リストの要素を並べ替える

リストの要素の並べ替えについて考えます。たとえば、リスト [0, 1, 2, 3, 4] があり、 0 を 4 の前に移動 1 を 3 の前に移動 を実施し、結果として [2, 1, 3, 0, 4] のように並べ替えたいとします。

Vision Transformer (ViT) について調べた

Vision Transformer について、Keras の実装 を使って調べました。ノートブックは こちら。

BatchNormalization について

BatchNormalizationについて勉強しました。作成したノートブックは こちら。

TortoiseGitでGithubにPersonal Access Tokenでアクセスする

Githubにアクセスするときの認証方法が変更になっています github.blogWindowsでTortoiseGitを使って、この認証方法でアクセスするには、 Creating a personal access token - GitHub Docs を参考にPersonal Access Tokenを作成する。 Gitリポジトリの下にあ…

Javaでじゃんけんプログラムを作る (その1)

Javaでじゃんけんをするプログラムを作成してみます。第 1 回は、実行することを順に main メソッドに記述してゆくスタイルです。

Numpy配列で指定の軸の2番目に大きい値とインデックスを求める

Numpy配列で、指定の軸の1番大きい値とインデックスは、numpy.amax と numpy.argmax で求まる。では、2 番目に大きい値とインデックスはどうするか?

Numpy配列の各要素の演算

NumPy 配列、たとえば 1, 2, ..., 9、のそれぞれの要素の積、1x1, 1x2, 1x3, ..., 9x8, 9x9、をどうやって求めるか?もちろんループでもできるが、もっと簡単な方法があった。

Keras で自前の評価関数を作成する

Keras の出力で異なる活性化関数を使いそれぞれの損失関数を指定する - プログラマのメモ書き で、評価関数 を作成してみました。この評価関数で、bbox の評価値として Intersection over Union (IOU) を計算します。

Keras の出力で異なる活性化関数を使いそれぞれの損失関数を指定する

画像を認識する機械学習のプログラムを勉強しています。Keras を使って、次のことが学習できるかためしてみました。 画像中に物体が存在するかどうか。 物体が存在するならば、その物体を囲む長方形の位置。 このモデルで、出力に異なる 2 種類の 活性化関数…

Let’s NoteのHDDをSSDに換装

PC

Panasonic Let’s note CF-LX5のHDDをSSDに換装しました。このPCに入っていた500GBのHDDを同容量の500GBのSSDに入れ替えました。

Linqの遅延評価と処理内容

LinqのIEnumerableの内容は遅延評価される。その内容を生成する処理は、 その処理が呼び出されたときではなく、 その内容が使われるときに実行される。 そのため処理の内容によっては、思わぬ結果になることがある。

SelectとSelectManyの違い

LinqのSelectとSelectManyの違いについて。 public static IEnumerable<TResult> Select<TSource, TResult>( this IEnumerable<TSource> source, Func<TSource, TResult> selector) // ------- public static IEnumerable<TResult> SelectMany<TSource, TResult>( this IEnumerable<TSource> source, Func</tsource></tsource,></tresult></tsource,></tsource></tsource,></tresult>

IEnumerable<T> の実装

コレクションクラスでIEnumerable<T> インタフェースを実装する場合の覚え書き。</t>

1 つのメソッドは 1 つのことに専念する

メソッドはできるだけ単純にしよう。読んで解読する人のことを考えよう。ここでは例として、指定の文字列中の指定の単語を "<B>" と "</B>" で囲んで強調表示に設定する場合を考える。この動作を分解すると、 指定の文字列から単語を抽出する。 抽出した単語が指定…

Emacsでさっきのコマンドをもう一度実行する

Emacsで、さっきミニバッファで入力したコマンドを、もう一回というときは、 C-x ESC ESC (repeat-complex-command) を入力する。そうすると、ミニバッファにさっきのコマンドが表示されるので、必要に応じて編集し、実行する。もう一回前、あるいは次のコマ…

Emacsであるものを使って楽に入力する

入力したいものはEmacsのどこかにある、、、というときは、 最初の何文字かを入力し、 M-/ (dabbrev-expand) してみましょう。そうするとEmacsは、 バッファから入力した文字で始まる語を探し、 入力に続く部分を追加してくれます。 思っていたものと違った…

Interpreterパターン

Interpreterパターンは、文法を解釈しその内容を実行するインタプリタの作成に使う。ここでは、以下の仕様の 1 桁の数字を計算するインタプリタを作ってみる。 使用できる演算子は '*' と '+'。 '*' は '+' より先に計算する。 '(' と ')' で囲んだ部分は先…

Stateパターン

Stateパターンは、オブジェクトの状態によって動作を変えるときに使う。例として文字列の引用符 (") の対応をチェックしてみる。ここで、オブジェクトの状態は、 引用符の外 引用符の中 の二つ。それぞれの状態での動作は、

Visitorパターン

デザインパターンの中のVisitorパターンは、 データ構造をたどって、その要素について処理をし、かつ、 その処理が複数ある。 という場合に使う。ここでは、データ構造として以下のようなComponentクラス, Compositeクラス, およびLeafクラスを使った木構造…

Linqで項目間に区切りを入れる

LinqでIEnumerableの各項目の間に区切りを入れるメソッドを C# で作ってみた。

Windowsでのバックアップ

Windowsでファイルをバックアップするには xcopy が便利。こんなバッチファイルを作成しておいて、実行すればよい。 set SOURCE=C:\Source set DESTINATION=D:\Backup REM /C: コピー時のエラーを無視する REM /D: コピー先に同名のファイルが存在する場合に…

Emacs で文字コードを調べる

ある文字が 'O' (アルファベットのオー) なのか '0' (数字のゼロ) なのかで悩んだら、 C-x = (what-cursor-position) してみましょう。カーソル位置の文字の文字コードなどが表示されます。)