복권 확인
주: 2023-12월-03
예상 당첨 번호
예상 당첨 번호는 새 플레이어가 추가되고 확인될 때마다 변경됩니다.
사용할 수 없습니다. 선수가 없습니다.
기본 씨앗
각 복권에 대해 매주 초에 생성되는 최대 128자리의 임의 번호.
33985290206401756124219095614393340045722424442309572888161248570221898462112605588353707133038708067507723160021058048030184531
거래 ID
마지막으로 확인된 플레이어의 트랜잭션 ID입니다.
사용할 수 없습니다. 선수가 없습니다.
티켓
판매된 복권의 수입니다.
0
선수
확인된 플레이어의 수입니다.
0
당첨 번호는 어떻게 생성되나요?
Lottocryptos는 당첨 번호 생성의 투명성을 달성하기 위해 복권에 "Provably Fair" 시스템을 사용합니다.
우승 난수 생성의 시드(seed)는 네 부분으로 구성됩니다.
당첨 번호의 랜덤 생성을 위한 시드 를 얻기 위해서는 다음과 같은 과정을 따릅니다.
각 부분은 SHA512로 암호화되어 연결됩니다. 그런 다음 SHA512로 다시 암호화되고 해당 문자가 해당 ASCII 값으로 변환됩니다. 난수 생성에 사용되는 시드가 이 값입니다.
모든 검사가 적절한 것으로 간주될 수 있도록 사용자에게 난수를 얻는 데 사용되는 소스 코드와 임의성 테스트를 수행하는 도구를 제공합니다.
소스 코드
파일: classes/class.Random.php
PHP 버전: 8.1.27
마지막 업데이트: 2022-구월-17 10:57:44 UTC
크기: 3231 바이트
<?php
function Random_number($length){
$result = '';
//Generate random number.
for($i=0;$i<$length;$i++){
$result = $result.random_int(0,9);
}
//Remove leading zeros.
$result = ltrim($result,'0');
if($result == ''){
$result = 0;
}
return $result;
}
function Random_string_to_int($string){
$result = '';
//Count characters.
$length = strlen($string);
//Ord ->Convert a character to its ASCII decimal value.
for($i=0;$i<$length;$i++){
$result = $result.ord($string[$i]);
}
return $result;
}
function Random_int_to_string($number){
//Convert integer to string.
$result = number_format($number,0,'','');
return $result;
}
function Random_hash($data,$algo){
//Hash string with an algo.
$result = hash($algo,$data);
return $result;
}
function Random_basic_seed(){
$result = Random_number(128);
return $result;
}
function Random_gmp_winner_number($basic_seed,$player_seed,$n_tickets,$n_players){
$result = '';
//Convert integer to string.
$n_tickets = Random_int_to_string($n_tickets);
//Hash all the parts
$basic_seed = Random_hash($basic_seed,'sha512');
$player_seed = Random_hash($player_seed,'sha512');
$n_tickets_seed = Random_hash($n_tickets,'sha512');
$n_players_seed = Random_hash($n_players,'sha512');
//Join all parts and hash
$seed = Random_hash($basic_seed.$player_seed.$n_tickets_seed.$n_players_seed,'sha512');
//Convert letters to numbers.
$seed = Random_string_to_int($seed);
//Insert seed into number generator. Only integers.
gmp_random_seed($seed);
//Generate random number.
$value = gmp_random_range(1,$n_tickets);
//Convert GMP integer to string.
$result = gmp_strval($value);
return $result;
}
/*
//WINNER NUMBER
$basic_seed = Random_basic_seed();
$player_seed = 'f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16';//Transaction ID
$n_players = 1;
$n_tickets = 100000000;
echo Random_gmp_winner_number($basic_seed,$player_seed,$n_tickets,$n_players);
//RANDOMNESS TEST (Can be CPU intensive with more cycles / rounds)
$cycles = 1;
$runs = 1000;
$tickets = 5;
$player_seed = 'f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16';//Transaction ID
$players = 5;
$n_runs = 0;
$probs = 0;
$results = array();
$results_prob = array();
for($i=0;$i<$cycles;$i++){
for($k=0;$k<$runs;$k++){
$basic_seed = Random_basic_seed();
$number = Random_gmp_winner_number($basic_seed,$player_seed,$tickets,$players);
if(array_key_exists($number,$results)){
$results[$number]++;
}
else{
$results[$number] = 1;
}
}
}
ksort($results);?>
<table>
<thead>
<td>Number</td>
<td>Number of Times</td>
<td>Probability</td>
</thead><?php
foreach($results as $key => $value){
$n_runs += $value;
$x = number_format((($value * 100)/($cycles * $runs)),3);
$probs += $x;?>
<tr>
<td><?php echo $key;?></td>
<td><?php echo $value;?></td>
<td><?php echo $x.' %';?></td>
</tr><?php
} ?>
<tfoot>
<td>Total Numbers: <?php echo count($results);?></td>
<td>Total Runs: <?php echo $n_runs;?></td>
<td>Total Prob: <?php echo $probs.' %';?></td>
<tfoot>
</table><?php
*/
?>
무작위성 테스트
2024-5월-02 21:13:32 UTC
|
||
---|---|---|
가치 | 실행 횟수 | 개연성 |
1 | 179 | 17.900 % |
2 | 195 | 19.500 % |
3 | 207 | 20.700 % |
4 | 196 | 19.600 % |
5 | 223 | 22.300 % | 5 | 1000 | 100 % |