编辑代码

<?php 
//JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 



function generateRandomNumbers($numNumbers, $min, $max, $targetSum) {
    $numbers = [];
    for($i=0;$i<42;$i++){
        $numbers[$i] = 10000;
    }
    while($targetSum>0){
        $k = rand(0, 41);
        $v = $numbers[$k];
        $allowMax = $max-$v-1;//还可以累加至最大值的的差额
        if($allowMax < 2){
            continue;
        }
        $diff = mt_rand(1, $allowMax);
        if($diff>$targetSum){
            $diff = $targetSum;
        }
        $numbers[$k] += $diff;
        $targetSum -= $diff;
    }

    return $numbers;
}



function buildSql($dayTime, $solt, $hour){
    // 生成42个在10000到299999之间的随机数,总和为1700000
    $randomNumbers = generateRandomNumbers(42, 0, 8e4, 128e4);

    $randomNumbers[] = 60e4;
    $randomNumbers[] = 60e4;
    $randomNumbers[] = 60e4;
    $randomNumbers[] = 30e4;
    $randomNumbers[] = 30e4;
    $randomNumbers[] = 30e4;
    $randomNumbers[] = 30e4;
    $randomNumbers[] = 30e4;

    shuffle($randomNumbers);

    // print_r("Generated Random Numbers:\n" . $randomNumbers);
    if(array_sum($randomNumbers) != 500e4){
        return ;
    }

    $sql = 'INSERT INTO voice_red_rain_infov2(day_time,slot,red_hour,coin) VALUES';
    $values = [];
    foreach($randomNumbers as $val){
        $values[]= "('{$dayTime}',{$solt},{$hour},{$val})";
    }

    echo $sql . implode(",", $values) . ';'. PHP_EOL;
}


    buildSql(date('Y-m-d'), 1, 18);
    exit();

for($i=0;$i<8;$i++){
    $date = date('Y-m-d', strtotime("+{$i} day"));
    buildSql($date, 1, 19);
    buildSql($date, 2, 23);
}