諸君、最後にクリエイティブになろうポイントは、このプログラムを使って円周率を求めることではなく、プログラムがどのように円周率を求めたかを解読することです。お題「...脳トレの問題...」を読む。このプログラムは、「Fun with C」シリーズです。最も曖昧で謎めいたCアルゴリズムを作曲するコンテストがある。ソースコードも結果も出ているが、動作原理を把握する必要がある。アルゴリズムそのものが、解決すべき課題なのです。割れる」ことが必要なのです。そのためには、自分の脳を「壊す」ことが必要です。
Цикл выполняется до тех пор, пока b - c = true. Что такое true в Си? Кажись, любой не нуль. Значит, цикл увеличения b от нуля и заполнения массива f[] выполняется до тех пор, пока b не сравняется с с, т.е. до 2800. Массив f[] заполняется одинаковыми числами 10000/5 = 2000.
一般に、MQLの開発者に悪気はないのですが、数学関数の数https://docs.mql4.com/ru/math
は、VBでもそうですが、みっともないほど小さいと思います。また、MathFloorの ように定義が 曖昧 なものもあります。
-
MathMax関数を例にとると、引数は2つだけである。そして、10個、20個必要だとしたら、それは何に変わるのでしょうか?
私のモジュールを使ってVBで表示するとこんな感じです。
-
x=max(x1...x20) '20個の変数のうち最大値を求める。
x=max(x1, y, z, p) '4つの変数の最大値を求める。
А вобще, какой то грек сказал что Pi=66/21
ギリシャ語では、22/7(66/21と同じ)と言ったのだろう。
より正確には、355/113(精度は3*10^(-7))となります。
次に良い分数はすでに103993/ 33102(精度は6*10^(-10)のオーダー)です。
2 Richie: そうですね、VBも完成させないといけないですからね。じゃあ、なんでメタクソを狙うんだ?
冗談を言う
ユーモア
ミシェック、 私たちは 元大学院生で、11年生ではなく8年生の問題を解いているんだ :)
子供がかわいそうだ。
ほらね、疑ってたんだよ...。
よし、見てみよう。
最初のループを処理しよう。
ループは式b - cが真と評価される限り実行される。C言語では何が正しいのか?ゼロでないものなら何でもいいようです。そこで、bを0から増加させ、配列f[]を埋めていくループをbがcに等しくなるまで、つまり2800まで実行します。配列f[]には、同じ数字10000/5=2000が入る。
今のところ、あまり問題はない?
どうせ円周率の計算方法は一つしかないんだし、あとは別のスカートでマシュカか、マシュカの一部か :)
Ну вот, подозревал ведь, что это задачка...
ОК, смотрим.
Разбираемся с первым циклом,
Цикл выполняется до тех пор, пока b - c = true. Что такое true в Си? Кажись, любой не нуль. Значит, цикл увеличения b от нуля и заполнения массива f[] выполняется до тех пор, пока b не сравняется с с, т.е. до 2800. Массив f[] заполняется одинаковыми числами 10000/5 = 2000.
Пока не сильно ошибся?
さあ、挑戦してみましょう。
今のところ右です。これからも見守りましょう。
しかし、さらにその先は不明です。最初のヘッダ(外周ループ)の条件d=0が何となく気になる。いつもそうなのでしょうか?
次に、ネストされたループ。書き換えます。