Şifremi Kaybettim (Bulmaca)

MegaCrafter

Obsidyen Madencisi
En iyi cevaplar
0
Galiba zaten çözülmüş ama ben yine de anlatarak bir cevap atayım dedim. Öncelikle maddeleri denklemlere dönüştürelim:

- C ve D'nin çarpımının, A ve B'nin çarpımından 29 fazla olduğunu hatırlıyorum -
- D bir çift sayıydı. B ise bir tek sayıydı -
- En büyük ve en küçük sayının farkının 6 olduğunu hatırlıyorum -
- A sayısının bir sayının karesi olduğunu hatırlıyorum -
- C'nin B'den küçük olduğunu hatırlıyorum -

C*D = A*B + 29
Eğer D çift sayıysa C*D kesinlikle çifttir diyebiliriz. Bu durumda A*B de tek sayı olmak zorundadır. Bu durumda hem A hem de B tek sayıdır.
Buradan aynı zamanda hiçbir sayının 0 olmadığını da çıkarabiliriz. A ve B tek olduğu için zaten 0 olamazlar. Eğer C veya D 0 olsaydı C*D = 0 olurdu, o zaman A*B negatif olurdu.

A sayısı, tam kare bir tek sayıysa alabileceği 2 değer olabilir. 1'in karesi olarak 1 veya 3'ün karesi olarak 9. Yani A ya en büyük, ya da en küçük sayıdır.

C < B
C en büyük sayı olamaz ve B en küçük sayı olamaz.

Eğer A = 1 olsaydı, yukarıdaki denklemi "C*D = B + 29" şeklinde değiştirebilirdik. Bu bize C*D için 5 farklı çözüm verir. 30, 32, 34, 36 ve 38. Aynı zamanda en büyük sayı 7 olurdu. Bu yüzden B = 9 olabileceği ihtimalini düşünmüyoruz, dolayısıyla 38 seçeneklerden kalkıyor. 30, 32, 34 ve 36 kaldı. C en büyük sayı değildir ve D çift sayıdır dedik. O yüzden B = 7 diyebiliriz. O zaman da C*D = 36 diyebiliriz. Buradan da C = 6 ve D = 6 şeklinde bu sayıları da buluruz. Yani eğer A = 1 olsaydı sayımız "1766" olacaktı.

Eğer A = 9 olsaydı, en küçük sayı 3 olmalıydı. B en küçük sayı değilse ve D çift sayıysa C = 3 diyebiliriz. C < B için düşünürsek B için 3 sayı değeri kalır. 5, 7 ve 9. O zaman da A*B için 3 farklı çözüm bulunur: 45, 63 ve 81. Şimdi bu sayıları 29 ile toplayıp 3'e bölersek D'yi bulabilmemiz gerekli. Ancak bir sorunumuz var. 3'e bölündüğünde bir rakam veren en büyük sayı 27'dir. Ama gördüğünüz üzere elimizdeki sayılar 27'nin çok çok üstüne çıkacak.

Sonuç olarak A = 9 olan bir çözüm bulamadık. A = 1 olduğu durumda cevabı 1766 bulduk.

(Böyle şeyleri seviyorum ya. Daha fazla atın böyle bulmacalardan. :kaş:)
 

MediaRise

PLAY.CRAFTRISE.TC
En iyi cevaplar
0
Soruyu farklı bir yol ile çözmeyi denedim:

Nasıl yaptığımı merak edenler için:
Kod:
<?php
  
    $length = getLength(4); 
    $answer = "0000";
    $possibility = "";
  
    for($number = 1000; $number < $length; $number++){
        $data = str_split($number);
      
        if(strlen($number) != 4)
            continue;
              
        if(($data[2] * $data[3]) != (($data[0] * $data[1])+29))
            continue;
      
        $b = $data[1] / 2; // TEK
        $d = $data[3] / 2; // ÇİFT
     
        if(sqrt($data[0]) == isSingle(sqrt($data[0])))
            continue;

        if(isSingle($b) && !isSingle($d)){
            $minNumber = $data[array_search(min($data),$data)];
            $maxNumber = $data[array_search(max($data),$data)];
          
            if(($maxNumber - $minNumber) != 6)
                continue;
          
            if($data[2] > $data[1] || $data[2] == $data[1])
                continue;

            $possibility .= $number . " | A sayısının karesi: ".($data[0]*$data[0])."<br>";
        }
    }
  
    echo $possibility ? $possibility : $answer;
  
    function getLength($length){
        $lastLength = "";
        for($number = 0; $number < $length; $number++){
            $lastLength .= "9";
        }
        return $lastLength;
    }
  
    function isSingle($number) {
        if(strstr($number,"."))
            return true;
        else
            return false;
    }
 ?>
 
Son düzenleme:

MegaCrafter

Obsidyen Madencisi
En iyi cevaplar
0
Soruyu farklı bir yol ile çözmeyi denedim:

Nasıl yaptığımı merak edenler için:
Kod:
<?php
 
    $length = getLength(4);
    $answer = "0000";
    $possibility = "";
 
    for($number = 1000; $number < $length; $number++){
        $data = str_split($number);
     
        if(strlen($number) != 4)
            continue;
             
        if(($data[2] * $data[3]) != (($data[0] * $data[1])+29))
            continue;
     
        $b = $data[1] / 2; // TEK
        $d = $data[3] / 2; // ÇİFT
    
        if(sqrt($data[0]) == isSingle(sqrt($data[0])))
            continue;

        if(isSingle($b) && !isSingle($d)){
            $minNumber = $data[array_search(min($data),$data)];
            $maxNumber = $data[array_search(max($data),$data)];
         
            if(($maxNumber - $minNumber) != 6)
                continue;
         
            if($data[2] > $data[1] || $data[2] == $data[1])
                continue;

            $possibility .= $number . " | A sayısının karesi: ".($data[0]*$data[0])."<br>";
        }
    }
 
    echo $possibility ? $possibility : $answer;
 
    function getLength($length){
        $lastLength = "";
        for($number = 0; $number < $length; $number++){
            $lastLength .= "9";
        }
        return $lastLength;
    }
 
    function isSingle($number) {
        if(strstr($number,"."))
            return true;
        else
            return false;
    }
 ?>
Öyle olsaydı fazla basit olurdu :/
 

Whoisthatinblack

Taş Madencisi
En iyi cevaplar
0
Benimkinin biraz düzenli hali :)
Ek olarak senin ki 4 haneli tüm kombinasyonlara bakmıyor sadece 1000 den büyük olanlara bakıyor. Ya cevap 0001 gibi bir sayı olsaydı?

İşin içerisine biraz regex katarak sayının 4 haneli olup olmadığına bakabiliriz. Bu da benden:


@MegaCrafter şimdi farkettim sende en büyük ve en küçük sayının farkına bakmamışsın :(
 
Son düzenleme:

MegaCrafter

Obsidyen Madencisi
En iyi cevaplar
0
Ek olarak senin ki 4 haneli tüm kombinasyonlara bakmıyor sadece 1000 den büyük olanlara bakıyor. Ya cevap 0001 gibi bir sayı olsaydı?

İşin içerisine biraz regex katarak sayının 4 haneli olup olmadığına bakabiliriz. Bu da benden:


@MegaCrafter şimdi farkettim sende en büyük ve en küçük sayının farkına bakmamışsın :(
Evet ben de tam kodu okurken fark ettim şimdi :D Ama sonuç fark etmedi yani pek sayılmaz herhalde :D
 

admiraldus

YASAKLANDI
En iyi cevaplar
0
Are you seriously?

. . . . . .. . . . . . . . . . . ,.-‘”. . . . . . . . . .``-.,
. . . . . . . .. . . . . .,.-”. . . . . . . . . . . . . . . . . .“-.,
. . . . .. . . . . . ..,/. . . . . . . . . . . . . . . . . . . . . . . ”:,
. . . . . . . .. .,?. . . . . . . . . . . . . . . . . . . . . . . . . . .\,
. . . . . . . . . /. . . . . . . . . . . . . . . . . . . . . . . . . . . . ,}
. . . . . . . . ./. . . . . . . . . . . . . . . . . . . . . . . . . . ,:`^`.}
. . . . . . . ./. . . . . . . . . . . . . . . . . . . . . . . . . ,:”. . . ./
. . . . . . .?. . . __. . . . . . . . . . . . . . . . . . . . :`. . . ./
. . . . . . . /__.(. . .“--,_. . . . . . . . . . . . . . ,:`. . . .. ./
. . . . . . /(_. . ”-,_. . . ..“-,_. . . . . . . . . .,:`. . . . _/
. . . .. .{.._$;_. . .”=,_. . . .“-,_. . . ,.---,}, .-”; /. .. .}
. . .. . .((. . .*-_. . . .”=-._. . .“;,,./`. . /” . . . ./. .. ../
. . . .. . .\`-,. . ..“-.,. . . . . . . . . ..`. . .}. . . . . . ../
. . . . . .(. ..`=-,,. . . .`. . . . . . . . . . . ..(. . . ;_,,-”
. . . . . ../.`-,. . ..`-.. . . . . . . . . . . . . . ..\. . /\
. . . . . . \`-.*-,. . . . . . . . . . . . . . . . . ..|,./.....\,__
,,_. . . . . }.>-._\. . . . . . . . . . . . . . . . . .|. . . . . . ..`=--,
. .. `=--,_\_. . . `\,. . . . . . . . . . . . . . . . .\
. . . . . . . . . .`=--,,.\,. . . . . . . . . . . . . . . .\
. . . . . . . . . . . . . . . . `:,, . . . . . . . . . . . . . `\. . . . . . ..__
. . . . . . . . . . . . . . . . . . .`=-,. . . . . . . . . .,%`>--==``
. . . . . . . . . . . . . . . . . . . . _\. . . . . ._,-%. . . ..`
 
Üst