VALIDAçãO DE LOTERIA
Zcash (ZEC)
Semana: 13-novembro-2022
NúMERO VENCEDOR PREVISTO
O número vencedor previsto muda cada vez que um novo jogador é adicionado e verificado.
Não disponível. Nenhum jogador.
SEMENTE BáSICA
Número aleatório de até 128 dígitos, gerado no início de cada semana para cada loteria.
CóDIGO DA TRANSAçãO
ID de transação do último jogador verificado.
Não disponível. Nenhum jogador.
INGRESSOS
Número de bilhetes de loteria vendidos.
0
JOGADORAS
Número de jogadores verificados.
0
Como é gerado o Número Vencedor?
Lottocryptos usa um sistema "Provably Fair" para as suas lotarias para alcançar transparência na geração de números vencedores.
A semente da geração do número aleatório vencedor é composta de quatro partes:
Para obter a semente para a geração aleatória do número vencedor, é seguido o seguinte processo.
Cada parte é encriptada com SHA512 e concatenada. Depois é novamente encriptada com SHA512 e os seus caracteres são convertidos para o seu valor ASCII correspondente. A semente utilizada para a geração do número aleatório é este valor.
A fim de podermos fazer todas as verificações consideradas apropriadas, fornecemos aos utilizadores o código fonte utilizado para obter o número aleatório e as ferramentas para realizar um teste de aleatoriedade.
CóDIGO FONTE
Arquivo: classes/class.Random.php
Versão do PHP: 8.1.27
Última atualização: 17-Setembro-2022 10:57:44 UTC
Tamanho: 3231 Bytes
<?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
*/
?>
TESTE DE ALEATORIEDADE
25-abril-2024 06:24:25 UTC
|
||
---|---|---|
Valores | Número de execuções | Probabilidade |
1 | 206 | 20.600 % |
2 | 194 | 19.400 % |
3 | 188 | 18.800 % |
4 | 194 | 19.400 % |
5 | 218 | 21.800 % | 5 | 1000 | 100 % |