Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ответ 001 на задачу N 5
 
 автор: SoftTime   (09.02.2006 в 11:17)   письмо автору
 
 

Ответ 001 на задачу N 5.
С условиями задачи можно ознакомится по ссылке.
pass1 = subprogram
pass2 = pyramid
pass3 = cluster
pass4 = linux
pass5 = lisbon

Найдено за 0.888239145279 секунд!


<?
 $start_time 
microtime();
 
$start_array explode(" ",$start_time);
 
$start_time $start_array[1] + $start_array[0];
 
$f fopen("linux.words","r") or die("ошибка");
 while (!
feof($f))
 {
  
$str strtolower(fgets($f));
  
$str trim($str);
  
$strmd5 md5($str);
  if (
$strmd5 == 'fb28e9240e83a5264566de844cc45523')
   
$pass1 $str;
   elseif (
$strmd5 == '437233c74e25fe505293cd2e8ecc2696')
    
$pass2 $str;
    elseif (
$strmd5 == '06b2d4b91b5c9eaa8c20a1c270f95b3c')
     
$pass3 $str;
     elseif (
$strmd5 == 'e206a54e97690cce50cc872dd70ee896')
      
$pass4 $str;
      elseif (
$strmd5 == 'fbfa6902f089e5a0fa2424bd460ecfd0')
       
$pass5 $str;

   if (isset(
$pass1) && isset($pass2) && isset($pass3) && isset($pass4) && isset($pass5))
   {
    echo 
'pass1 = '.$pass1.'<br>pass2 = '.$pass2.'<br>pass3 = '.$pass3.'<br>pass4 = '.$pass4.'<br>pass5 = '.$pass5.'<br>';
    
$end_time microtime();
    
$end_array explode(" ",$end_time);
    
$end_time $end_array[1] + $end_array[0];
    
$time $end_time $start_time;
    echo 
"<br><center>Найдено за $time секунд!</center>";
    
fclose($f);
    exit;
   }
  }

 
$end_time microtime();
 
$end_array explode(" ",$end_time);
 
$end_time $end_array[1] + $end_array[0];
 
$time $end_time $start_time;
 echo 
"<br><center>Не найдено за $time секунд!</center>";
 
fclose($f);
?>



http://www.softtime.ru/info/task.php?id_article=75

   
 
 автор: cheops   (13.02.2006 в 00:13)   письмо автору
 
   для: SoftTime   (09.02.2006 в 11:17)
 

Функция trim() здесь явно лишняя, использование каскада elseif снижает читабельность и не даёт ничего для скорости, так как лишь в 5 случаях из 45000 будут вычисляться все условия до конца. Кроме того, согласно логике, если хотя бы один пароль не будет найден - мы не узнаем ни одного из паролей, а это может запутать. Но вычисления производятся очень шустро.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования