균일하게 분포된 난수 생성(0,1) - 페이지 2

 
gumgum >> :


== :(

적용된 작업에 대해 허용 가능한 결과를 제공하는 작업 코드를 제공했습니다. 또한 모든 범위의 MF를 지정할 수 있습니다.

 
joo >> :

적용된 작업에 대해 허용 가능한 결과를 제공하는 작업 코드를 제공했습니다. 또한 모든 범위의 MF를 지정할 수 있습니다.

그럼 숟가락은요?

 
Yurixx >> :

자기야, 임의적으로 서로 가까운 실수 사이에 셀 수 없는 실수 집합이 있다는 것을 알고 있습니까?

구간(0,1)이 무한선의 거듭제곱과 같다는 것을 알고 있습니까?

그렇지 않다면 그것에 대해 생각하십시오.

그렇다면 질문을 올바르게 작성하십시오.

동시에 어떤 밀도(단위 길이당 조각)로 미드레인지 세대를 원하십니까?

아니면 RNG가 (0,1) 간격 의 모든 숫자 를 생성하기를 원하십니까?


???!!!!!

"아니면 RNG가 (0,1) 간격 의 모든 숫자 를 생성하도록 하시겠습니까?" - 이게 무슨 말도 안되는 소리야? 정수론을 공부했습니다.

 
Urain >> :

그럼 숟가락은요?

입에 넣어도 될까요? :)

 
joo >> :

입에 넣어도 될까요? :)


자 가자!
 
gumgum >> :


자 가자!

글쎄, 정말로, 당신은 이중을 스스로 정규화 할 수 없습니다.

 
gumgum >> :


자 가자!

네 좋아! 단위 길이당 32767 조각의 해상도가 매우 적합합니다. 물론 100,000,000에 zababahat 수 있지만 왜?!

 
Urain >> :

글쎄, 정말로, 당신은 이중을 스스로 정규화 할 수 없습니다.


나는 그렇게 한다.

 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-2진수 시스템에서 AB 형식의 숫자입니다.

그리고 결국 dll을 사용하는 것이 훨씬 좋습니다. 하나, 그것은 즉시 많은 수를 생성합니다.

 
Mathemat >> :

그럼 이렇게 시도하십시오. 원리는 동일하지만 0에서 32767 사이의 정수를 생성하는 대신 0에서 2^30과 같은 값을 얻게 됩니다. 각 숫자는 MathRand() + MathRand()*MathRand()입니다. 나는 그들이 어떻게 배포될 것인지 조사하지 않았지만 너무 까다로운 작업을 위해 모든 것이 최고가 되기를 바랍니다.

이들은 32768-2진수 시스템에서 AB 형식의 숫자입니다.


잠정. 거기에는 모든 것이 나쁩니다.