C/C++/C#

C/C++/C#

【C言語】前に書いたコラッツ予想のプログラムを再帰関数を使って書き直す

コラッツ予想についてはここを参照。関数「Collatz」を定義して書き直した。 #include <stdio.h> #include <stdlib.h> int Collatz(int); int main(void) { int nu...
C/C++/C#

【C言語】二項定理を実装する

二項定理は \begin{align}(x+y)^{n}= \mathrm{{}_{n} C_{0}} x^{n}y^{0}+ \mathrm{{}_{n} C_{1}} x^{n-1} y^{1}+ \mathrm{{}_{n}C_{2}...
C/C++/C#

【C言語】再帰呼び出しでユークリッド距離を計算する

ユークリッド距離を再帰呼び出しで計算する。前回と同様に2つのベクトル\(A,B\)の距離は \begin{align}d=\sqrt{(a_1 - b_1)^2+(a_2 - b_2)^2 + \cdots +(a_{n-1} - b_{n...
C/C++/C#

【C言語】ユークリッド距離を計算する

2つのベクトル\(A,B\)の距離は \begin{align}d=\sqrt{(a_1 - b_1)^2+(a_2 - b_2)^2 + \cdots +(a_{n-1} - b_{n-1})^2+(a_n - b_n)^2}\end{a...
C/C++/C#

【C言語】再帰呼び出しを使って階乗を計算する

再帰呼び出しを使えばプログラムが単純になる場合がある。再帰呼び出しを使って階乗を計算するには次のようにすれば良い。 サンプルコードではfactorial関数内で再帰呼び出しを行っており、nが1になれば再帰呼び出しが終了するようになっている。...
C/C++/C#

【C言語】漸化式でフィボナッチ数列を定義する

フィボナッチ数列は漸化式を使って次のように与えられる。 \begin{align}F_0&=0\\F_1&=1\\F_{n+2}&=F_{n+1}+F_{n} (n \geq 0)\end{align} 以下のコードで確かめられる。 #in...
C/C++/C#

【C言語】フィボナッチ数列の10個の和と7番目の数との関係

連続するフィボナッチ数列の\(10\)個の和は\(7\)番目の数を\(11\)倍した数と一致する。 \begin{align}\sum_{i=1}^{10} F_{n+i} = 11 \times F_{n+7}\end{align} 以下...
C/C++/C#

【C言語】フィボナッチ数列の性質

フィボナッチ数列には次の性質がある \begin{align}\sum_{i=1}^\infty \frac{F_i}{10^{i+1}} = \frac{1}{89}\end{align} 以下のコードで確かめられる。 #include ...
C/C++/C#

【C言語】フィボナッチ数列の逆数和

フィボナッチ数列の逆数和を \begin{align}\psi=\sum_{i=1}^\infty \frac{1}{F_i} = 3.3498 \cdots\end{align} 以下のコードで確かめられる。 #include <stdi...
C/C++/C#

【C言語】フィボナッチ数列の性質を確かめる

フィボナッチ数列には次のような特性がある。 \begin{align}\lim_{n \to \infty } \frac{F_{n+1}}{F_n}= \phi = \frac{1 + \sqrt{5}}{2}\end{align} 以下...
C/C++/C#

【C言語】フィボナッチ数列を計算する

フィボナッチ数列は \begin{align}F(n)&=\frac{\phi^n - (-\phi)^{-n}}{\sqrt{5}} \\\phi&=\frac{1+\sqrt{5}}{2}\end{align} で与えられる数列で、 \...
C/C++/C#

【C言語】gnuplotでグラフを描く

gnuplotを使ってグラフを描く。gnuplotはここからダウンロードすればいい。インストール先をC直下以外にする場合、GNUPLOT_PATHを変更する。 以下サンプル #include <stdio.h> #include <stdl...
C/C++/C#

【C言語】Radian-Degree相互変換

C言語で自作関数を作りRadian-Degree相互変換を行う。Radian-Degreeの相互関係は \begin{align}\theta = \frac{\theta }{180} \pi\end{align} を使えばいい。 #de...
C/C++/C#

C言語で配列の長さを取得する

sizeofを使えば配列の長さを自動取得できるようになる。 int A = { 1,2,3,4 }; int size = sizeof(A) / sizeof(int); printf("%d", size);
C/C++/C#

C言語で配列の中身を表示する

lenは配列の長さ、listを配列のポインタとすれば次のようにすれば表示できるようになる。 void showVector( int len, int* list) { int i, index = 0; for (i = 0; i < l...
C/C++/C#

C言語で素因数分解を実行する

素因数分解とは \begin{align}12=2 \times 2 \times 3\end{align} のように整数を素数の積で表すことである。C言語で実装すると次のようになる。 #include<stdio.h> void Prim...
C/C++/C#

C言語でsprintfを使った文字列生成

sprintfを使うと文字列を生成できる。生成した文字列はcsvファイルへの書き出しで利用できる。 次のようにすると実装できる。勿論printf関数のように複数個の変数を扱うこともできる。 #define _CRT_SECURE_NO_WA...
C/C++/C#

C言語でサイコロを実装して出目の平均を計算する

C言語でサイコロを作り、出目の平均を計算する。\(N\)を変更すればサイコロを振る回数を変更できる。 #include<stdio.h> #include <stdlib.h> #define min 1 #define max 6 #de...
C/C++/C#

二度漬けがバレると店のオヤジから怒られるプログラム

乱数を使って二度漬けして遊ぶプログラムを作りました。色々変えて遊んでみてください。 #include <stdio.h> #include <stdlib.h> #include <time.h> char* scanstr(void) {...
C/C++/C#

C言語で複数の変数を返したい時

C言語では通常の関数の使い方ではreturnによって複数の変数を返すことはできない。こういう時はポインタを使えばうまくいく。 #include <stdio.h> void test(int a, int* p1,int *p2); voi...