PIYANGO DOğRULAMA
Ethereum (ETH)
Hafta: 13-Kasım-2022
TAHMINI KAZANAN SAYı
Tahmini kazanan numara, her yeni oyuncu eklendiğinde ve doğrulandığında değişir.
Müsait değil. Oyuncu yok.
TEMEL TOHUM
Her piyango için her haftanın başında oluşturulan, 128 basamağa kadar rastgele sayı.
2769386525585905632607323271766770075875674546477091113697266094961078233761142737244810436445259044967035465267331351702848760
İşLEM KIMLIğI
Son doğrulanan oyuncunun işlem kimliği.
Müsait değil. Oyuncu yok.
BILETLER
Satılan piyango bileti sayısı.
0
OYUNCULAR
Doğrulanmış oyuncu sayısı.
0
Kazanan Numara Nasıl Oluşturulur?
Lottocryptos, kazanan numaraların oluşturulmasında şeffaflık sağlamak için piyangolarında "Provably Fair" sistemini kullanmaktadır.
Kazanan rastgele sayı üretiminin tohumu dört bölümden oluşur:
Kazanan numaranın rastgele oluşturulması için tohumun elde edilmesi için aşağıdaki süreç takip edilir.
Her parça SHA512 ile şifrelenir ve birleştirilir. Daha sonra tekrar SHA512 ile şifrelenir ve karakterleri karşılık gelen ASCII değerine dönüştürülür. Rastgele sayı üretimi için kullanılan tohum bu değerdir.
Uygun görülen tüm kontrolleri yapabilmek için, kullanıcılara rastgele sayı elde etmek için kullanılan kaynak kodu ve rastgelelik testi yapmak için araçlar sağlıyoruz.
KAYNAK KODU
Dosya: classes/class.Random.php
PHP Sürümü: 8.1.27
Son Güncelleme: 17-Eylül-2022 10:57:44 UTC
Boyut: 3231 bayt
<?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
*/
?>
RASTGELELIK TESTI
21-Eylül-2024 01:22:47 UTC
|
||
---|---|---|
değerler | Çalıştırma Sayısı | olasılık |
1 | 210 | 21.000 % |
2 | 212 | 21.200 % |
3 | 200 | 20.000 % |
4 | 195 | 19.500 % |
5 | 183 | 18.300 % | 5 | 1000 | 100 % |