А вам, уважаемый, известно, что между любыми, сколь угодно близкими друг к другу, вещественными числами имеется бесчисленное множество вещественных чисел ?
А известно, что интервал (0,1) по мощности эквивалентен бесконечной прямой ?
Если нет - задумайтесь об этом.
Если да - правильно формулируйте свой вопрос.
Заодно попытайтесь сказать, с какой плотностью (штук на ед. длины) вы хотите иметь генерацию СЧ ?
А может вы хотите, чтобы ваш ГСЧ генерил все числа отрезка (0,1) ?
gumgum, тогда попробуй вот так. Принцип тот же, но вместо генерации целых чисел от 0 до 32767 ты получишь примерно от 0 до 2^30. Каждое число - это MathRand() + MathRand()*MathRand(). Я не исследовал, как будут распределены, но надеюсь, что для не слишком требовательных задач все будет тип-топ.
Это числа вида AB в 32768-ичной системе счисления.
== :(私は、アプリケーションのために許容できる結果を与える作業コードを提供しました。さらに、任意のMFレンジを指定することも可能です。
Я Вам дал рабочий код, дающий приемлемые результаты для прикладных задач. Плюс возможность указывать любой диапазон CЧ.
では、スプーンはどうでしょう。
А вам, уважаемый, известно, что между любыми, сколь угодно близкими друг к другу, вещественными числами имеется бесчисленное множество вещественных чисел ?
А известно, что интервал (0,1) по мощности эквивалентен бесконечной прямой ?
Если нет - задумайтесь об этом.
Если да - правильно формулируйте свой вопрос.
Заодно попытайтесь сказать, с какой плотностью (штук на ед. длины) вы хотите иметь генерацию СЧ ?
А может вы хотите, чтобы ваш ГСЧ генерил все числа отрезка (0,1) ?
???!!!!
"GSH "を生成させたいのかもしれません。 全数 セグメント(0,1)?」ってなんだそりゃ?数論を勉強されたのでしょうか。
Ну так а ложку?
もっと口に入れたほうがいいのか?:)
Могет быть, ещё в рот положить? :)
さあ、始まるぞ
Ну поехало!まあ本当に自分でテイクをノーマライズできないものなんでしょうか。
Ну поехало!さあ!単位長さあたり32767個で結構です。もちろん100000000でもいいんだけど、なんで!?
Ну действительно что не можешь сам нормализовать дубль.
私はこうしています。
double ranD(int rsign,int rstep) { double sumR=0; for(int zr=1;zr<=2;zr++) { //---- string ran="0."; for(int z=1;z<=rstep;z++) { ran=ran+DoubleToStr(MathFloor((MathRand()/32767.0)*10),0); } double randou=StrToDouble(ran); if(rsign==1) { randou=2*randou-1; } sumR+=randou*randou; //---- } randou=randou/MathSqrt(sumR); //Print("randou = "+randou); return(randou); }
でも...ガム シャラなら、これを試してみてください。原理は同じですが、0から32767までの整数を生成するのではなく、0から2^30程度の整数を生成します。各数値はMathRand()+ MathRand()*32768 です。ディストリビューションがどうなるかは調べていませんが、あまり負荷のかからない作業ではトップクラスになることを期待しています。
32768進法におけるAB型の数値である。
もっといいのは、DLLを使うことだ。あるんですよ、すぐにこんな大きな数字が出るんです。
gumgum, тогда попробуй вот так. Принцип тот же, но вместо генерации целых чисел от 0 до 32767 ты получишь примерно от 0 до 2^30. Каждое число - это MathRand() + MathRand()*MathRand(). Я не исследовал, как будут распределены, но надеюсь, что для не слишком требовательных задач все будет тип-топ.
Это числа вида AB в 32768-ичной системе счисления.
試してみました。そこがダメなんです。