भाषा
(बदलने के लिए क्लिक करें)
हिन्दी
*स्वतः अनुवादित
मुद्रा
(बदलने के लिए क्लिक करें)
$
इसे शेयर करें:
इस पेज को फेसबुक में शेयर करें इस पेज को ट्विटर पर शेयर करें
3 Dec 2022 16:38:55 UTC

लॉटरी सत्यापन

विजेता संख्या कैसे उत्पन्न होती है?

लोट्टोक्रिप्टोस अपनी लॉटरी के लिए जीतने वाली संख्याओं की पीढ़ी में पारदर्शिता प्राप्त करने के लिए "प्रोवीबली फेयर" प्रणाली का उपयोग करता है।

विजेता यादृच्छिक संख्या पीढ़ी का बीज चार भागों से बना होता है:

  • - 128 अंकों तक की यादृच्छिक संख्या। यह साप्ताहिक रूप से उत्पन्न होता है जब लॉटरी शुरू होती है और प्रत्येक क्रिप्टोकुरेंसी के लिए अलग होती है।
  • बी - अंतिम खिलाड़ी की लेनदेन आईडी। लॉटरी के अंतिम सत्यापित खिलाड़ी की लेनदेन आईडी।
  • सी - लॉटरी में बेचे गए लॉटरी टिकटों की कुल संख्या।
  • डी - लॉटरी में सत्यापित खिलाड़ियों की संख्या।
  • विजेता संख्या की यादृच्छिक पीढ़ी के लिए बीज प्राप्त करने के लिए, निम्नलिखित प्रक्रिया का पालन किया जाता है।

    प्रत्येक भाग को SHA512 के साथ एन्क्रिप्ट किया गया है और संयोजित किया गया है। फिर इसे SHA512 के साथ फिर से एन्क्रिप्ट किया जाता है और इसके पात्रों को उनके संबंधित ASCII मान में बदल दिया जाता है। यादृच्छिक संख्या उत्पन्न करने के लिए उपयोग किया जाने वाला बीज यह मान है।

    सभी जांचों को उपयुक्त मानने में सक्षम होने के लिए, हम उपयोगकर्ताओं को यादृच्छिक संख्या प्राप्त करने के लिए उपयोग किए गए स्रोत कोड और यादृच्छिकता परीक्षण करने के लिए उपकरण प्रदान करते हैं।

    सोर्स कोड
    फ़ाइल: classes/class.Random.php
    पीएचपी संस्करण: 8.0.18
    आखिरी अपडेट: 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 
    */
    ?>
    यादृच्छिकता परीक्षण
    03-दिसंबर-2022 16:38:54 UTC
    मूल्यों रनों की संख्या संभावना
    1 215 21.500 %
    2 198 19.800 %
    3 203 20.300 %
    4 186 18.600 %
    5 198 19.800 %
    5 1000 100 %