Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define 入力サイズ 2
- #define 中間信号サイズ 4
- #define 出力信号サイズ 1
- #define 信号変動の程度 0.01
- #define その回数を繰り返す 50000
- #define 分数 double
- #define 拡張可能なアレイ vector
- #define 整数 int
- #define プログラムの公開部分 public
- #define プログラム・サイクル for
- #define 別のタイプのプログラムループ while
- #define リサイズ resize
- #define この関数は何も返さない void
- #define プログラムクラス class
- #define コンスタント const
- #define 四捨五入 round
- #define 流通 dist
- #define 番号を生成する gen
- #define 発電開始 rd
- #define 戻り値 return
- #define 値を画面に表示する cout
- #define プログラムに値を入力する cin
- #define 文字列を翻訳する endl
- #define 乱数発生器 random_device
- #define 実際の分配金を設定する uniform_real_distribution
- #define 発電機プログラム mt19937
- #define コンディション if
- #define そうでなければ else
- #include <iostream>
- #include <vector>
- #include <random>
- using namespace std;
- 乱数発生器 発電開始;
- 発電機プログラム 番号を生成する(発電開始());
- 実際の分配金を設定する<> 流通(0.0, 1.0);
- 分数 マイナスを取り除く(分数 数学変数) {
- 戻り値 数学変数 > 0 ? 数学変数 : 0;
- }
- 分数 信号偏差(分数 数学変数) {
- 戻り値 数学変数 > 0 ? 1 : 0;
- }
- 分数 数値を返す(分数 数学変数) {
- 戻り値 数学変数;
- }
- プログラムクラス 信号の量子 {
- プログラムの公開部分:
- 拡張可能なアレイ<分数> 数字;
- 分数 信号エラー;
- 信号の量子() {}
- 信号の量子(整数 入力信号サイズ) {
- 数字.リサイズ(入力信号サイズ);
- プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 入力信号サイズ; 一次変数++) {
- 数字[一次変数] = 流通(番号を生成する);
- }
- 信号エラー = 流通(番号を生成する);
- }
- };
- プログラムクラス 信号伝搬層 {
- プログラムの公開部分:
- 拡張可能なアレイ<信号の量子> 信号強度単位;
- 整数 サイズ;
- 信号伝搬層(整数 サイズ, 整数 入力信号サイズ) : サイズ(サイズ) {
- 信号強度単位.リサイズ(サイズ);
- プログラム・サイクル(整数 一次変数 = 0; 一次変数 < サイズ; 一次変数++) {
- 信号強度単位[一次変数] = 信号の量子(入力信号サイズ);
- }
- }
- };
- 拡張可能なアレイ<分数> 最上層(コンスタント 信号伝搬層& 隠れた信号強度, コンスタント 信号伝搬層& 出力信号レベル, コンスタント 拡張可能なアレイ<分数>& エントリー) {
- 拡張可能なアレイ<分数> 隠し信号出力(中間信号サイズ);
- プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 中間信号サイズ; 一次変数++) {
- 分数 数字の合計 = 隠れた信号強度.信号強度単位[一次変数].信号エラー;
- プログラム・サイクル(整数 次変数 = 0; 次変数 < 入力サイズ; 次変数++) {
- 数字の合計 += 隠れた信号強度.信号強度単位[一次変数].数字[次変数] * エントリー[次変数];
- }
- 隠し信号出力[一次変数] = マイナスを取り除く(数字の合計);
- }
- 拡張可能なアレイ<分数> 最終信号出力(出力信号サイズ);
- プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 出力信号サイズ; 一次変数++) {
- 分数 数字の合計 = 出力信号レベル.信号強度単位[一次変数].信号エラー;
- プログラム・サイクル(整数 次変数 = 0; 次変数 < 中間信号サイズ; 次変数++) {
- 数字の合計 += 出力信号レベル.信号強度単位[一次変数].数字[次変数] * 隠し信号出力[次変数];
- }
- 最終信号出力[一次変数] = 数値を返す(数字の合計);
- }
- 戻り値 最終信号出力;
- }
- この関数は何も返さない 信号伝播(信号伝搬層& 隠れた信号強度, 信号伝搬層& 出力信号レベル, コンスタント 拡張可能なアレイ<分数>& エントリー, コンスタント 拡張可能なアレイ<分数>& 信号の目的, コンスタント 拡張可能なアレイ<分数>& 隠し信号出力, コンスタント 拡張可能なアレイ<分数>& 信号出力) {
- 拡張可能なアレイ<分数> 出力エラー(出力信号サイズ);
- プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 出力信号サイズ; 一次変数++) {
- 出力エラー[一次変数] = (信号の目的[一次変数] - 信号出力[一次変数]) * 1;
- }
- 拡張可能なアレイ<分数> 隠しエラー(中間信号サイズ);
- プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 中間信号サイズ; 一次変数++) {
- 分数 数字の合計 = 0;
- プログラム・サイクル(整数 次変数 = 0; 次変数 < 出力信号サイズ; 次変数++) {
- 数字の合計 += 出力エラー[次変数] * 出力信号レベル.信号強度単位[次変数].数字[一次変数];
- }
- 隠しエラー[一次変数] = 数字の合計 * 信号偏差(隠し信号出力[一次変数]);
- }
- プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 出力信号サイズ; 一次変数++) {
- プログラム・サイクル(整数 次変数 = 0; 次変数 < 中間信号サイズ; 次変数++) {
- 出力信号レベル.信号強度単位[一次変数].数字[次変数] += 信号変動の程度 * 出力エラー[一次変数] * 隠し信号出力[次変数];
- }
- 出力信号レベル.信号強度単位[一次変数].信号エラー += 信号変動の程度 * 出力エラー[一次変数];
- }
- プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 中間信号サイズ; 一次変数++) {
- プログラム・サイクル(整数 次変数 = 0; 次変数 < 入力サイズ; 次変数++) {
- 隠れた信号強度.信号強度単位[一次変数].数字[次変数] += 信号変動の程度 * 隠しエラー[一次変数] * 隠れた信号強度.信号強度単位[一次変数].数字[次変数];
- }
- 隠れた信号強度.信号強度単位[一次変数].信号エラー += 信号変動の程度 * 隠しエラー[一次変数];
- }
- }
- 整数 main() {
- 信号伝搬層 出力信号レベル(中間信号サイズ, 入力サイズ);
- 信号伝搬層 入力信号レベル(出力信号サイズ, 中間信号サイズ);
- プログラム・サイクル(整数 次変数 = 0; 次変数 < その回数を繰り返す; 次変数++) {
- 拡張可能なアレイ<分数> 紹介データ(入力サイズ);
- プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 入力サイズ; 一次変数++) {
- 紹介データ[一次変数] = 流通(番号を生成する);
- }
- 拡張可能なアレイ<分数> 信号の目的(出力信号サイズ);
- 信号の目的[0] = 紹介データ[0] + 紹介データ[1];
- 拡張可能なアレイ<分数> 信号出力 = 最上層(出力信号レベル, 入力信号レベル, 紹介データ);
- 拡張可能なアレイ<分数> 隠し信号出力 = 最上層(出力信号レベル, 入力信号レベル, 紹介データ);
- 信号伝播(出力信号レベル, 入力信号レベル, 紹介データ, 信号の目的, 隠し信号出力, 信号出力);
- コンディション (次変数 == 0) {
- 値を画面に表示する << "プログラムは成功裏に開始された." << 文字列を翻訳する;
- }
- そうでなければ コンディション (次変数 % 1000 == 0 && 次変数 != 0) {
- 値を画面に表示する << "現在のサイクル数: " << 次変数 << 文字列を翻訳する;
- }
- }
- 値を画面に表示する << "プログラム・サイクル完了. プログラム実施総サイクル数: " << その回数を繰り返す << endl;
- 分数 数字を書く1, 数字を書く2;
- プログラム・サイクル(;;) {
- 値を画面に表示する << 文字列を翻訳する << "最初の番号を入力: ";
- プログラムに値を入力する >> 数字を書く1;
- 別のタイプのプログラムループ(数字を書く1 < 0) {
- 値を画面に表示する << "このプログラムは負の数を扱うことはできません";
- プログラムに値を入力する >> 数字を書く1;
- }
- 値を画面に表示する << "番目の番号を入力: ";
- プログラムに値を入力する >> 数字を書く2;
- 別のタイプのプログラムループ(数字を書く2 < 0) {
- 値を画面に表示する << "このプログラムは負の数を扱うことはできません";
- プログラムに値を入力する >> 数字を書く2;
- }
- 拡張可能なアレイ<分数> 紹介データ(入力サイズ);
- 紹介データ[0] = 数字を書く1;
- 紹介データ[1] = 数字を書く2;
- 拡張可能なアレイ<分数> 信号出力 = 最上層(出力信号レベル, 入力信号レベル, 紹介データ);
- 値を画面に表示する << 文字列を翻訳する << "概算値: " << 信号出力[0] << 文字列を翻訳する;
- 値を画面に表示する << "四捨五入された数字: " << 四捨五入(信号出力[0]) << 文字列を翻訳する;
- 値を画面に表示する << "数字の合計: " << 数字を書く1 + 数字を書く2 << 文字列を翻訳する << 文字列を翻訳する;
- }
- }
Add Comment
Please, Sign In to add comment