• 19-12-2024, 18:41:33
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    000000001'den başlayıp
    ..................
    999999999'a kadar tüm sayıları yanyana koydurup işlem yapmak istiyorum nasıl yapabilirim
  • 19-12-2024, 18:48:53
    #2
    anladığım kadarıyla :



    <?php
    // Başlangıç ve bitiş değerlerini tanımlayın
    $baslangic = 1;
    $bitis = 999999999;
    
    // Sonuç değişkenini tanımlayın
    $sonuc = "";
    
    // Sayıları birleştir
    for ($i = $baslangic; $i <= $bitis; $i++) {
        $sonuc .= str_pad($i, 9, "0", STR_PAD_LEFT);  // Her sayıyı 9 haneli yap
    }
    
    // Örneğin, sonucun uzunluğunu yazdırabilirsiniz
    echo "Sonuç uzunluğu: " . strlen($sonuc);
    
    // Eğer başka bir işlem yapacaksanız, örneğin toplamını alabilirsiniz
    // $toplam = array_sum(str_split($sonuc));
    // echo "Toplam: " . $toplam;
    ?>
  • 19-12-2024, 18:49:43
    #3
    Üyeliği durduruldu
    eda03 adlı üyeden alıntı: mesajı görüntüle
    000000001'den başlayıp
    ..................
    999999999'a kadar tüm sayıları yanyana koydurup işlem yapmak istiyorum nasıl yapabilirim
    <?php
    // Başlangıç zamanı ölçümü
    $start_time = microtime(true);

    // Rakamların toplamını direkt hesaplayarak belleği koruyoruz
    $sum = 0;
    for ($i = 1; $i <= 999999999; $i++) {
    $number = (string)$i; // Sayıyı stringe çevir
    for ($j = 0; $j < strlen($number); $j++) {
    $sum += intval($number[$j]); // Her rakamı toplama ekle
    }
    }

    echo "Rakamların toplamı: " . $sum . PHP_EOL;

    // Toplam çalışma süresi
    $end_time = microtime(true);
    echo "Çalışma süresi: " . ($end_time - $start_time) . " saniye" . PHP_EOL;
    ?>
  • 19-12-2024, 18:52:48
    #4
    Memory i harcamadan :
    $limit = 999999999;
    $step = 1000000;
    $totalSum = '0';
    for ($i = 1; $i <= $limit; $i += $step) {
        $end = min($i + $step - 1, $limit);
        $numberString = '';
        
        for ($j = $i; $j <= $end; $j++) {
            $numberString .= $j;
        }
        
        $totalSum = bcadd($totalSum, $numberString);
    }
    echo $totalSum;
    Memory :
    $limit = 999999999;
    $numberString = '';
    for ($i = 1; $i <= $limit; $i++) {
        $numberString .= $i;
    }
    echo $numberString;
  • 19-12-2024, 18:54:47
    #5
    Yönetici onayı bekliyor
  • 19-12-2024, 18:56:48
    #6
    rand(111111111,999999999)
  • 19-12-2024, 19:08:58
    #7
    Dosyanın başına bu satırı ekleyerek limitleri yükseltin;
    ini_set('max_execution_time', '3000000');
    Ayrıca bu tarz uzun işlemleri console'da çalıştırmak daha mantıklı olur cmd;
    php sayilar.php
  • 19-12-2024, 19:10:09
    #8
    Yönetici onayı bekliyor
    kazimolmez adlı üyeden alıntı: mesajı görüntüle
    Dosyanın başına bu satırı ekleyerek limitleri yükseltin;
    ini_set('max_execution_time', '3000000');
    Ayrıca bu tarz uzun işlemleri console'da çalıştırmak daha mantıklı olur cmd;
    php sayilar.php
    php için veri çektirme botu yapacaktım sayılarla sorgu attırıp kaydedecek sayıları üretip sorgu attıracağım bunun için düşünmüştüm ama pratik olmadı