예를 들어 0에서 1 사이의 임의의 숫자 목록을 생성 할 수 있지만 0.8에서 avarage를 가질 수 있습니까?임의의 숫자 만들기 특정 값으로 조정/평균
저는이 작은 스크립트를 C++로 작성했습니다.이 작은 스크립트는 출력 된 숫자를 알려줍니다. 이 질문은 실제로 C++과 관련이 없습니다.
#include <iostream>
#include <random>
#include <time.h>
int main(int argCount, char** argVector) {
std::cout << "Generating Randoms" << std::endl;
float avarage = 0.F;
srand(rand() + (int) time(NULL));
float ceiling = 0;
float bottom = 1;
for(unsigned int i = 0; i < 1000000; i++) {
float random = (float) (rand() % 101)/100;
if(random > ceiling)
ceiling = random;
else if(random < bottom)
bottom = random;
avarage += random;
}
std::cout << "Avarage: " << avarage/1000000 << std::endl;
std::cout << "Ceiling: " << ceiling << std::endl;
std::cout << "Bottom: " << bottom << std::endl;
return 0;
}
이 출력 :
Generating Randoms
Avarage: 0.499287
Ceiling: 1
Bottom: 0
내가 천장과 바닥을 싶습니다 여전히 0과 1 수 있지만 평균을 변경할 수 있습니다. 알고리즘은 또한 효율적이어야한다.
다시 한 번 나는 C++ 코드를 게시하고 있지만 모든 언어가이를 수행합니다.
원하는 배포본이 있습니까? 'mu'를 설정하려면 많은 선택이 있습니다. 예 : http://en.wikipedia.org/wiki/Normal_distribution. 또는 아마도 균일 한 분포, 또는 베타 또는 – seth
글쎄, 평균이 0 인 경우.5처럼, 지금은 모든 숫자가 0.5로 선택 될만큼 많은 기회를 갖기를 바랍니다. 0.7 인 경우, 0.7에 가까워 질수록 더 많은 기회를 얻고 평균 결과는 0.7이됩니다. 그래서 그것은 위키 페이지가 아닙니다. –
이해할 수 있는지 잘 모르겠습니다. 평균이 0.5 일 때 균일 한 분포를 원하지만, 평균이 0.5와 다를 경우 비 균일 분포를 원하십니까? 0.7에 가까운 숫자의 '확률'을 지정해야합니다. 정규 분포 예제에서는 기본적으로 분산 매개 변수입니다. – seth