لغة
(انقر للتغيير)
عربي
*ترجمة آلية
عملة
(انقر للتغيير)
$
أنشرها:
شارك هذه الصفحة في الفيسبوك شارك هذه الصفحة في Twitter
28 Mar 2024 10:24:26 UTC

التحقق من صحة اليانصيب

Ravencoin (RVN)
أسبوع: 23-يناير-2022
الفائز
لاعب
d6a1232cfebc17e0e6889831ef3caecb3fadf8bc6dcdd2df68def6327b2d1fbb
الرقم الفائز
2435778046
لعب التذاكر
1662500001 - 3662500000
رقم الفوز المتوقع
يتغير الرقم الفائز المتوقع في كل مرة يتم فيها إضافة لاعب جديد والتحقق منه.
2435778046
البذور الأساسية
عدد عشوائي يصل إلى 128 رقمًا ، يتم إنشاؤه في بداية كل أسبوع لكل يانصيب.
39344287824904071366550786219898191802147430961139162619079326408409424566254516181422758140686648924796013325143846195658397977
COPY
رقم المعاملة
معرف المعاملة لآخر لاعب تم التحقق منه.
تذاكر
عدد تذاكر اليانصيب المباعة.
3662500000
اللاعبين
عدد اللاعبين الذين تم التحقق منهم.
4

كيف يتم توليد الرقم الفائز؟

تستخدم Lottocryptos نظام "عادل بشكل مثبت" في اليانصيب الخاص بها لتحقيق الشفافية في توليد الأرقام الفائزة.

تتكون نواة جيل الأرقام العشوائية الفائزة من أربعة أجزاء:

  • أ - عدد عشوائي يصل إلى 128 رقمًا. يتم إنشاؤه أسبوعيًا عند بدء اليانصيب ويختلف لكل عملة مشفرة.
  • ب - معرّف المعاملة لآخر لاعب. معرّف المعاملة لآخر لاعب تم التحقق منه في اليانصيب.
  • ج- العدد الإجمالي لتذاكر اليانصيب المباعة في اليانصيب.
  • د- عدد اللاعبين المعتمدين في اليانصيب.
  • للحصول على بذرة التوليد العشوائي للرقم الفائز ، يتم اتباع العملية التالية.

    يتم تشفير كل جزء باستخدام 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 10:24:25 UTC
    قيم عدد الأشواط احتمالا
    1 202 20.200 %
    2 192 19.200 %
    3 198 19.800 %
    4 206 20.600 %
    5 202 20.200 %
    5 1000 100 %