Guest User

Untitled

a guest
Aug 23rd, 2024
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.85 KB | None | 0 0
  1. #define 入力サイズ 2
  2. #define 中間信号サイズ 4
  3. #define 出力信号サイズ 1
  4. #define 信号変動の程度 0.01
  5. #define その回数を繰り返す 50000
  6. #define 分数 double
  7. #define 拡張可能なアレイ vector
  8. #define 整数 int
  9. #define プログラムの公開部分 public
  10. #define プログラム・サイクル for
  11. #define 別のタイプのプログラムループ while
  12. #define リサイズ resize
  13. #define この関数は何も返さない void
  14. #define プログラムクラス class
  15. #define コンスタント const
  16. #define 四捨五入 round
  17. #define 流通 dist
  18. #define 番号を生成する gen
  19. #define 発電開始 rd
  20. #define 戻り値 return
  21. #define 値を画面に表示する cout
  22. #define プログラムに値を入力する cin
  23. #define 文字列を翻訳する endl
  24. #define 乱数発生器 random_device
  25. #define 実際の分配金を設定する uniform_real_distribution
  26. #define 発電機プログラム mt19937
  27. #define コンディション if
  28. #define そうでなければ else
  29. #include <iostream>
  30. #include <vector>
  31. #include <random>
  32. using namespace std;
  33. 乱数発生器 発電開始;
  34. 発電機プログラム 番号を生成する(発電開始());
  35. 実際の分配金を設定する<> 流通(0.0, 1.0);
  36.  
  37. 分数 マイナスを取り除く(分数 数学変数) {
  38.     戻り値 数学変数 > 0 ? 数学変数 : 0;
  39. }
  40. 分数 信号偏差(分数 数学変数) {
  41.     戻り値 数学変数 > 0 ? 1 : 0;
  42. }
  43. 分数 数値を返す(分数 数学変数) {
  44.     戻り値 数学変数;
  45. }
  46. プログラムクラス 信号の量子 {
  47. プログラムの公開部分:
  48.     拡張可能なアレイ<分数> 数字;
  49.     分数 信号エラー;
  50.     信号の量子() {}
  51.     信号の量子(整数 入力信号サイズ) {
  52.         数字.リサイズ(入力信号サイズ);
  53.         プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 入力信号サイズ; 一次変数++) {
  54.             数字[一次変数] = 流通(番号を生成する);
  55.         }
  56.         信号エラー = 流通(番号を生成する);
  57.     }
  58. };
  59. プログラムクラス 信号伝搬層 {
  60. プログラムの公開部分:
  61.     拡張可能なアレイ<信号の量子> 信号強度単位;
  62.     整数 サイズ;
  63.     信号伝搬層(整数 サイズ, 整数 入力信号サイズ) : サイズ(サイズ) {
  64.         信号強度単位.リサイズ(サイズ);
  65.         プログラム・サイクル(整数 一次変数 = 0; 一次変数 < サイズ; 一次変数++) {
  66.             信号強度単位[一次変数] = 信号の量子(入力信号サイズ);
  67.         }
  68.     }
  69. };
  70. 拡張可能なアレイ<分数> 最上層(コンスタント 信号伝搬層& 隠れた信号強度, コンスタント 信号伝搬層& 出力信号レベル, コンスタント 拡張可能なアレイ<分数>& エントリー) {
  71.     拡張可能なアレイ<分数> 隠し信号出力(中間信号サイズ);
  72.     プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 中間信号サイズ; 一次変数++) {
  73.         分数 数字の合計 = 隠れた信号強度.信号強度単位[一次変数].信号エラー;
  74.         プログラム・サイクル(整数 次変数 = 0; 次変数 < 入力サイズ; 次変数++) {
  75.             数字の合計 += 隠れた信号強度.信号強度単位[一次変数].数字[次変数] * エントリー[次変数];
  76.         }
  77.         隠し信号出力[一次変数] = マイナスを取り除く(数字の合計);
  78.     }
  79.     拡張可能なアレイ<分数> 最終信号出力(出力信号サイズ);
  80.     プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 出力信号サイズ; 一次変数++) {
  81.         分数 数字の合計 = 出力信号レベル.信号強度単位[一次変数].信号エラー;
  82.         プログラム・サイクル(整数 次変数 = 0; 次変数 < 中間信号サイズ; 次変数++) {
  83.             数字の合計 += 出力信号レベル.信号強度単位[一次変数].数字[次変数] * 隠し信号出力[次変数];
  84.         }
  85.         最終信号出力[一次変数] = 数値を返す(数字の合計);
  86.     }
  87.     戻り値 最終信号出力;
  88. }
  89. この関数は何も返さない 信号伝播(信号伝搬層& 隠れた信号強度, 信号伝搬層& 出力信号レベル, コンスタント 拡張可能なアレイ<分数>& エントリー, コンスタント 拡張可能なアレイ<分数>& 信号の目的, コンスタント 拡張可能なアレイ<分数>& 隠し信号出力, コンスタント 拡張可能なアレイ<分数>& 信号出力) {
  90.     拡張可能なアレイ<分数> 出力エラー(出力信号サイズ);
  91.     プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 出力信号サイズ; 一次変数++) {
  92.         出力エラー[一次変数] = (信号の目的[一次変数] - 信号出力[一次変数]) * 1;
  93.     }
  94.     拡張可能なアレイ<分数> 隠しエラー(中間信号サイズ);
  95.     プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 中間信号サイズ; 一次変数++) {
  96.         分数 数字の合計 = 0;
  97.         プログラム・サイクル(整数 次変数 = 0; 次変数 < 出力信号サイズ; 次変数++) {
  98.             数字の合計 += 出力エラー[次変数] * 出力信号レベル.信号強度単位[次変数].数字[一次変数];
  99.         }
  100.         隠しエラー[一次変数] = 数字の合計 * 信号偏差(隠し信号出力[一次変数]);
  101.     }
  102.     プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 出力信号サイズ; 一次変数++) {
  103.         プログラム・サイクル(整数 次変数 = 0; 次変数 < 中間信号サイズ; 次変数++) {
  104.             出力信号レベル.信号強度単位[一次変数].数字[次変数] += 信号変動の程度 * 出力エラー[一次変数] * 隠し信号出力[次変数];
  105.         }
  106.         出力信号レベル.信号強度単位[一次変数].信号エラー += 信号変動の程度 * 出力エラー[一次変数];
  107.     }
  108.     プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 中間信号サイズ; 一次変数++) {
  109.         プログラム・サイクル(整数 次変数 = 0; 次変数 < 入力サイズ; 次変数++) {
  110.             隠れた信号強度.信号強度単位[一次変数].数字[次変数] += 信号変動の程度 * 隠しエラー[一次変数] * 隠れた信号強度.信号強度単位[一次変数].数字[次変数];
  111.         }
  112.         隠れた信号強度.信号強度単位[一次変数].信号エラー += 信号変動の程度 * 隠しエラー[一次変数];
  113.     }
  114. }
  115. 整数 main() {
  116.     信号伝搬層 出力信号レベル(中間信号サイズ, 入力サイズ);
  117.     信号伝搬層 入力信号レベル(出力信号サイズ, 中間信号サイズ);
  118.     プログラム・サイクル(整数 次変数 = 0; 次変数 < その回数を繰り返す; 次変数++) {
  119.         拡張可能なアレイ<分数> 紹介データ(入力サイズ);
  120.         プログラム・サイクル(整数 一次変数 = 0; 一次変数 < 入力サイズ; 一次変数++) {
  121.             紹介データ[一次変数] = 流通(番号を生成する);
  122.         }
  123.         拡張可能なアレイ<分数> 信号の目的(出力信号サイズ);
  124.         信号の目的[0] = 紹介データ[0] + 紹介データ[1];
  125.         拡張可能なアレイ<分数> 信号出力 = 最上層(出力信号レベル, 入力信号レベル, 紹介データ);
  126.         拡張可能なアレイ<分数> 隠し信号出力 = 最上層(出力信号レベル, 入力信号レベル, 紹介データ);
  127.         信号伝播(出力信号レベル, 入力信号レベル, 紹介データ, 信号の目的, 隠し信号出力, 信号出力);
  128.         コンディション (次変数 == 0) {
  129.             値を画面に表示する << "プログラムは成功裏に開始された." << 文字列を翻訳する;
  130.         }
  131.         そうでなければ コンディション (次変数 % 1000 == 0 && 次変数 != 0) {
  132.             値を画面に表示する << "現在のサイクル数: " << 次変数 << 文字列を翻訳する;
  133.         }
  134.     }
  135.     値を画面に表示する << "プログラム・サイクル完了. プログラム実施総サイクル数: " << その回数を繰り返す << endl;
  136.     分数 数字を書く1, 数字を書く2;
  137.     プログラム・サイクル(;;) {
  138.         値を画面に表示する << 文字列を翻訳する << "最初の番号を入力: ";
  139.         プログラムに値を入力する >> 数字を書く1;
  140.         別のタイプのプログラムループ(数字を書く1 < 0) {
  141.             値を画面に表示する << "このプログラムは負の数を扱うことはできません";
  142.             プログラムに値を入力する >> 数字を書く1;
  143.         }
  144.         値を画面に表示する << "番目の番号を入力: ";
  145.         プログラムに値を入力する >> 数字を書く2;
  146.         別のタイプのプログラムループ(数字を書く2 < 0) {
  147.             値を画面に表示する << "このプログラムは負の数を扱うことはできません";
  148.             プログラムに値を入力する >> 数字を書く2;
  149.         }
  150.         拡張可能なアレイ<分数> 紹介データ(入力サイズ);
  151.         紹介データ[0] = 数字を書く1;
  152.         紹介データ[1] = 数字を書く2;
  153.         拡張可能なアレイ<分数> 信号出力 = 最上層(出力信号レベル, 入力信号レベル, 紹介データ);
  154.         値を画面に表示する << 文字列を翻訳する << "概算値: " << 信号出力[0] << 文字列を翻訳する;
  155.         値を画面に表示する << "四捨五入された数字: " << 四捨五入(信号出力[0]) << 文字列を翻訳する;
  156.         値を画面に表示する << "数字の合計: " << 数字を書く1 + 数字を書く2 << 文字列を翻訳する << 文字列を翻訳する;
  157.     }
  158. }
Add Comment
Please, Sign In to add comment