2014-06-08 2 views
0

도움을 요청하고 있습니다. 수치 적 확률 생성기를 만들려고 노력하고 있지만, 제가 묻고있는 종류의 도움을 정확히 설명해 드리겠습니다. 난 무작위로 숫자를 생성하는 소스 코드를 생각해 냈지만 다른 것들보다 더 많은 기회를 생성 할 수있는 숫자를 만들고 싶습니다.숫자 확률 생성기 만들기 - Euromillions Generator

지금까지이 코드를 생성했지만이 코드는 숫자 만 생성하고 여기에서는 내 뇌가 폭발합니다. 이 코드는 숫자를 구분하지 않으며 12를 생성하지 않습니다. 1 또는 2를 생성합니다. "참조하십시오"라고 말하면됩니다 .. a 1 a 2 및 12

제발 도와주세요.

var 
i: integer; 
const 
str = '0102030405060708091011121314151617181920212223242 526272829303132333435363738394041424344454647484950'; 
max = 5; 
begin 
Edit1.Text := ''; 
Randomize; 
for i := 1 to max do 
Edit1.Text := Edit1.Text + str[random(length(str))+1]; 

근, Hopsins str의 숫자를 끌어하려면

+2

이 질문은 수학적 언어가 사용되면서 더 정확 해지는 데 많은 도움이됩니다. 그것이 의미하는 바와 같이 당신이 만들고자하는 확률 분포가 정확히 무엇인지는 명확하지 않습니다. – shuttle87

+0

@ shuttle87 솔직히 말해서, 나는 "유로 모란 생성기"를 만들려고 노력하고 있습니다. 글쎄 .. 그 질문에 대답해야합니다. – Hopsins

+0

토이가 ** 배열 **에 대해 배우십시오. 숫자가있는 배열을로드하고 임의로 선택하십시오. 그런 다음 ** 셔플 알고리즘 **에 대해 알아야합니다. 본질적으로, 하나를 선택하면 배열에서 삭제해야하므로 다시 선택하지 않아야합니다. 행운을 빕니다! – Fattie

답변

0

, 당신은 두 자리가 필요합니다. '01'을 선택하려면, 위치 # 1에서 시작하는 두 개의 문자를 꺼내십시오. '02'의 경우 3 번 위치에서 시작해야합니다. '03'은 5 번 위치에서 시작됩니다. length(str) div 2가 50 random 그 2 49 곱하기를 통해 0의 숫자를 생성하고, length(str) 100이며, 여기에

copy (str, random (length(str) div 2) * 2 + 1, 2 ) 

, 그리고 인덱스를 얻기 위해, 1 추가 : 당신은 표현을 사용할 수 있습니다 첫 번째 문자. 그런 다음 copy을 사용하여 해당 위치에서 시작하는 두 개의 문자를 뺍니다.