التحقق من صحة اليانصيب
Ravencoin (RVN)
أسبوع: 16-يناير-2022
الفائز
لاعب
e2ff0aec37f4276193889eb5235b4a4793fe684f7960e21697e4f014410399a6
الرقم الفائز
2736516010
لعب التذاكر
2428374001 - 7443374000
رقم الفوز المتوقع
يتغير الرقم الفائز المتوقع في كل مرة يتم فيها إضافة لاعب جديد والتحقق منه.
2736516010
البذور الأساسية
عدد عشوائي يصل إلى 128 رقمًا ، يتم إنشاؤه في بداية كل أسبوع لكل يانصيب.
85276150731157491580971865444845053763021171945360861024142086439493709845736298919770140753298849452724812805781324359227026253
رقم المعاملة
معرف المعاملة لآخر لاعب تم التحقق منه.
تذاكر
عدد تذاكر اليانصيب المباعة.
7443374000
اللاعبين
عدد اللاعبين الذين تم التحقق منهم.
4
كيف يتم توليد الرقم الفائز؟
تستخدم Lottocryptos نظام "عادل بشكل مثبت" في اليانصيب الخاص بها لتحقيق الشفافية في توليد الأرقام الفائزة.
تتكون نواة جيل الأرقام العشوائية الفائزة من أربعة أجزاء:
للحصول على بذرة التوليد العشوائي للرقم الفائز ، يتم اتباع العملية التالية.
يتم تشفير كل جزء باستخدام SHA512 وسلسلة. ثم يتم تشفيرها مرة أخرى باستخدام SHA512 ويتم تحويل أحرفها إلى قيم ASCII المقابلة لها. البذرة المستخدمة لتوليد الرقم العشوائي هي هذه القيمة.
لكي نتمكن من جعل جميع عمليات التحقق تعتبر مناسبة ، نوفر للمستخدمين شفرة المصدر المستخدمة للحصول على الرقم العشوائي والأدوات اللازمة لإجراء اختبار العشوائية.
مصدر الرمز
ملف: classes/class.Random.php
إصدار PHP: 8.2.4
اخر تحديث: 17-سبتمبر-2022 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
*/
?>
اختبار العشوائية
28-يمشي-2024 15:24:49 UTC
|
||
---|---|---|
قيم | عدد الأشواط | احتمالا |
1 | 213 | 21.300 % |
2 | 179 | 17.900 % |
3 | 196 | 19.600 % |
4 | 215 | 21.500 % |
5 | 197 | 19.700 % | 5 | 1000 | 100 % |