Язык
(Нажмите, чтобы изменить)
Русский
*Автоматический перевод
Валюта
(Нажмите, чтобы изменить)
$
Поделись:
Поделиться этой страницей в Facebook Поделиться этой страницей в Твиттере
19 Apr 2024 4:11:08 UTC

Проверка лотереи

Ravencoin (RVN)
Неделя: 26-Декабрь-2021
Победитель
Игрок
7c9fff3b9605d2f8937de8c647713252cad1b1551548753546abfd377fbaf6af
Выигрышный номер
92.249.740
Билеты сыграны
1 - 250.000.010
Прогнозируемый выигрышный номер
Прогнозируемый выигрышный номер меняется каждый раз, когда новый игрок добавляется и проверяется.
92.249.740
Базовое семя
Случайное число до 128 цифр, генерируемое в начале каждой недели для каждой лотереи.
57690579765765849941798559186280284911895845714415554865153555359085591213580396444658025308853779449830397476790802350400905776
COPY
ID транзакции
Идентификатор транзакции последнего проверенного игрока.
Билеты
Количество проданных лотерейных билетов.
1.800.000.010
Игроки
Количество проверенных игроков.
4

Как генерируется выигрышный номер?

Lottocryptos использует систему "Provably Fair" для своих лотерей, чтобы достичь прозрачности в генерации выигрышных номеров.

Семя генерации выигрышного случайного числа состоит из четырех частей:

  • A - Случайное число до 128 цифр. Оно генерируется еженедельно в момент начала лотереи и является различным для каждой криптовалюты.
  • A - случайное число до 128 цифр
  • B - ID транзакции последнего игрока. Идентификатор транзакции последнего верифицированного игрока лотереи.
  • C - Общее количество лотерейных билетов, проданных в лотерее.
  • D - Количество верифицированных игроков в лотерее.
  • Для получения семян для случайной генерации выигрышного номера выполняется следующий процесс.

    Каждая часть шифруется с помощью SHA512 и конкатенируется. Затем она снова шифруется с помощью SHA512, а ее символы преобразуются в соответствующее значение ASCII. Семя, используемое для генерации случайного числа, является этим значением.

    Чтобы иметь возможность провести все проверки, которые считаются необходимыми, мы предоставляем пользователям исходный код, используемый для получения случайного числа, и инструменты для проведения теста на случайность.

    Исходный код
    Файл: classes/class.Random.php
    PHP-версия: 8.1.27
    Последнее обновление: 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 
    */
    ?>
    Проверка случайности
    19-апреля-2024 04:11:07 UTC
    Ценности Количество запусков Вероятность
    1 199 19.900 %
    2 198 19.800 %
    3 206 20.600 %
    4 211 21.100 %
    5 186 18.600 %
    5 1000 100 %