Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> CodeChallange #1
soliniak
post 4.12.2016, 09:51:40
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 8.08.2009

Ostrzeżenie: (0%)
-----


Coś dla "ambitniejszych" użytkowników serwisu wink.gif
Czy jest ktoś w stanie napisać skrypt (i nie mam na myśli metod bruteforce tongue.gif) który mógłby rozwiązać poniższą zagadkę? smile.gif
Ja sam nie jestem w stanie czegoś takie zrobić, a zastanawia mnie jakby taki kod mógł wyglądać wink.gif

Pozdrawiam
Go to the top of the page
+Quote Post
Crozin
post 4.12.2016, 12:51:17
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Bardzo prosto jest dojść do wyniku drogą eliminacji kolejnych cyfr z różnych kodów.
Kod
062
Go to the top of the page
+Quote Post
Riggs
post 5.12.2016, 07:56:33
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

Ostrzeżenie: (0%)
-----


Trochę treść zadania jest nieprecyzyjna bo np 3 reguła mówi, że 2 cyfry są prawidłowe ale w złych miejscach a @Crozin użył tych 3 cyfr do kodu.
Go to the top of the page
+Quote Post
Crozin
post 5.12.2016, 10:43:14
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Ups... pomyliłem się przy wpisywaniu wyniku tutaj. :-)
Kod
042
Go to the top of the page
+Quote Post
!*!
post 5.12.2016, 11:08:29
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Internet podpowiada kodem

  1. $index = "01246";
  2. $base = strlen($index);
  3. $len = 3;
  4.  
  5. $x = array();
  6.  
  7. for ($i = 0, $l = pow(strlen($index), $len); $i < $l; $i++) {
  8. $x[] = str_pad(dec2any($i, $base, $index), $len, "0", STR_PAD_LEFT);
  9. }
  10.  
  11. function dec2any( $num, $base=62, $index=false ) {
  12. if (! $base ) {
  13. $base = strlen( $index );
  14. } else if (! $index ) {
  15. $index = substr( $index ,0 ,$base );
  16. }
  17. $out = "";
  18. for ( $t = floor( log10( $num ) / log10( $base ) ); $t >= 0; $t-- ) {
  19. $a = floor( $num / pow( $base, $t ) );
  20. $out = $out . substr( $index, $a, 1 );
  21. $num = $num - ( $a * pow( $base, $t ) );
  22. }
  23. return $out;
  24. }
  25.  
  26. echo '<pre>';
  27. echo count($x);
  28. print_r($x);


I nie możesz wykluczyć bruteforce od strony programistycznej, a to że da się to rozwiązać w głowie to inna bajka wink.gif


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Niree
post 5.12.2016, 20:27:24
Post #6





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


Cytat(!*! @ 5.12.2016, 11:08:29 ) *
Internet podpowiada kodem

  1. $index = "01246";
  2. $base = strlen($index);
  3. $len = 3;
  4.  
  5. $x = array();
  6.  
  7. for ($i = 0, $l = pow(strlen($index), $len); $i < $l; $i++) {
  8. $x[] = str_pad(dec2any($i, $base, $index), $len, "0", STR_PAD_LEFT);
  9. }
  10.  
  11. function dec2any( $num, $base=62, $index=false ) {
  12. if (! $base ) {
  13. $base = strlen( $index );
  14. } else if (! $index ) {
  15. $index = substr( $index ,0 ,$base );
  16. }
  17. $out = "";
  18. for ( $t = floor( log10( $num ) / log10( $base ) ); $t >= 0; $t-- ) {
  19. $a = floor( $num / pow( $base, $t ) );
  20. $out = $out . substr( $index, $a, 1 );
  21. $num = $num - ( $a * pow( $base, $t ) );
  22. }
  23. return $out;
  24. }
  25.  
  26. echo '<pre>';
  27. echo count($x);
  28. print_r($x);


I nie możesz wykluczyć bruteforce od strony programistycznej, a to że da się to rozwiązać w głowie to inna bajka ;)


Wyjaśnisz proszę, dlaczego $index = "01246"; ? tongue.gif z czystej ciekawości, nigdy podobnego kodu nie widziałem.
Go to the top of the page
+Quote Post
!*!
post 5.12.2016, 20:46:15
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Tylko te liczby występują w powyższym przykładzie


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 07:23