C/C++/C#

C++で麻雀ゲームを作る その6

得点計算関数をクラス化した。 方針は各プレイヤーごとに宣言して点数計算をするイメージ class Point { public: uint32_t getPointDealer(int hang) { if (hang ...
電子回路

非反転増幅回路の増幅率

非反転増幅回路の増幅率を求めるために出力電圧を求める。 オペアンプの入力はイマジナリーショートにより電圧が等しいので \begin{align}V_I=V_+=V_-\end{align} また、入力インピーダン...
C/C++/C#

C++で麻雀ゲームを作る その5

麻雀の得点計算をする。5翻以上は符に関わらず同じなので子の場合を実装。 if文を使って条件分岐すればいい #include<iostream> uint32_t Point(int hang) { if (hang ...
C/C++/C#

C++で麻雀ゲームを作る その4

親を決めたりするためのサイコロクラスを作る。 サイコロを定義するクラスを作り、それを2つ分宣言する。乱数の偏りは今のところ考慮していない。 #include<iostream> #include <random> ...
制御工学

状態遷移行列の求め方

ある行列\(A\)について状態遷移行列\(e^{At}\)は次のようにして求める。 \begin{align}e^{At}=\mathcal{L}^{-1} \end{align}
C/C++/C#

C++でアペリーの定理を計算する

ゼータ関数が\(s=3\)の時の結果が無理数であるという結果である。今回はC++でアペリーの定理を計算する。 \begin{align}\zeta(3)=\sum_{n=1}^\infty \frac{1}{n^3}=1.2...
C/C++/C#

C++で麻雀ゲームを作る その3

switch文を使って牌とIDを紐付ける。 とりあえずデバックのためにstringで返すようにした。 std::string getPaiStr(int ID) { switch(ID){ case 1: retur...
C/C++/C#

遅延演算子の使い方

z変換を使うと遅延演算子が登場する。遅延演算子をzとすると次の関係が成り立つ。 \begin{align}y(t+1)&=y(t)z \\y(t-1)&=y(t)z^{-1}\end{align} 遅延...
C/C++/C#

C++で麻雀ゲームを作る その2

今回は手配を更新する関数を追加する。push_backで格納すればいい。 #include<iostream> #include<vector> class Player { public: Player() { ...
C/C++/C#

C++で麻雀ゲームを作る その1

メインのプレーヤークラスの大枠を作った。 細かい関数はおいおい #include<iostream> #include<vector> class Player { public: Player() { }...
代数

一次独立と一次従属

\(n\)個のベクトル \begin{align}\sum_{i=1}^{n} a_i x_i=0\end{align} について\(a_i\)以外に解が無いとき一次独立という。\(a_i\)以外に解があるとき一次従属...
C/C++/C#

C++で共振周波数を計算する

RLC直列、並列回路の共振周波数は \begin{align}f=\frac{1}{2 \pi \sqrt{LC}}\end{align} となる。これをC++で計算する。 実行結果 235947 ソ...
交流

並列回路の共振の良さ

共振回路の共振条件より \begin{align}\dot{Y}&=G+j \left ( \omega C - \frac{1}{\omega L} \right )\\\end{align} \(G\)で割...
交流

直列回路の共振の良さ

共振回路の共振条件より \begin{align}\dot{Z}&=R+j \left ( \omega L - \frac{1}{\omega C} \right )\\\end{align} \(R\)で割...
C/C++/C#

Windows.hを使った時間計測

Windows.hが使えれば1ms程度の精度で計測ができる。読み込んで QueryPerformanceCounter(&start); //処理 QueryPerformanceCounter(&end); ...
C/C++/C#

C++のcomplexを使って複素数を定義する関数を作る

これが全て。 std::complex<double>(Re, Im) double型で受け取って放り込めば終わり。 ソースコード std::complex<double> dot(double Re,...
C/C++/C#

C++で複素数のノルムを求める

複素数のノルムを求める。ノルムは \begin{align}z=\sqrt{x^2+y^2}\end{align} で求められる。 ソースコード double dot2norm(std::complex&l...
C/C++/C#

EX2 – エラーの修正をやってみた

問題(を解いてみた。 修正箇所は「"」と「;」の付け忘れ、「5」の書き忘れ。 私の環境ではbits/stdc++.hは通らないのでiostreamに変更している。 あとusing namespace std;は宗教上の都...
C/C++/C#

ポインタを使った値の代入

配列に直接入れてもポインタに代入しても結果は同じ。 実行結果 0 2 4 6 8 10 12 14 16 18 ソースコード #include<iostream> int main() { int num...
C/C++/C#

MPIRを使ってみる

MPIR()をインストールしたので使ってみた。MPIRを使うと巨大な数を扱うことができるようになる。 ソースコード例 #include<mpir.h> #include<iostream> int main() {...
タイトルとURLをコピーしました