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

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

 

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

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

тема: Ответ 005 на задачу N 5
 
 автор: SoftTime   (10.02.2006 в 00:50)   письмо автору
 
 

Ответ 005 на задачу N 5.
С условиями задачи можно ознакомится по ссылке.
06b2d4b91b5c9eaa8c20a1c270f95b3c = cluster
e206a54e97690cce50cc872dd70ee896 = linux
fbfa6902f089e5a0fa2424bd460ecfd0 = lisbon
437233c74e25fe505293cd2e8ecc2696 = pyramid
fb28e9240e83a5264566de844cc45523 = subprogram

Spend time: 11.3321220875sec
<?php
// скрипт в комментариях не нуждается
set_time_limit(0);
ob_implicit_flush();

$passHash[] = 'fb28e9240e83a5264566de844cc45523';
$passHash[] = '437233c74e25fe505293cd2e8ecc2696';
$passHash[] = '06b2d4b91b5c9eaa8c20a1c270f95b3c';
$passHash[] = 'e206a54e97690cce50cc872dd70ee896';
$passHash[] = 'fbfa6902f089e5a0fa2424bd460ecfd0';
$size sizeof($passHash);

$filename "linux.words";
if (!
file_exists($filename)
 || !
is_readable($fileame)) 
    
$fp fopen($filename"rt");
else {
    exit(
"file not found");
}

$found 0;
$start_time getmicrotime();
while(
$found $size && !feof($fp)) {
    
$pass fgets($fp20);
    
$pass trim($pass);
    
$pass strtolower($pass);
    for (
$i=0$i<$size$i++) {
        if (
$passHash[$i] === md5($pass)) {            
            echo 
$passHash[$i], " = "$pass"
"
;
            
$found++;
        }
    }        
}
fclose($fp);
$end_time getmicrotime() - $start_time;
echo 
"
<br>Spend time: "
$end_time"sec
"
;
    
function 
getmicrotime() {
    list(
$usec$sec) = explode(' 'microtime());
    return ((float)
$usec+(float)$sec);
}
?>


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

   
 
 автор: cheops   (12.02.2006 в 23:45)   письмо автору
 
   для: SoftTime   (10.02.2006 в 00:50)
 

Немного громоздко, но очень оригинальное решение, не использовать функцию file() и вместо него использовать обычную связку fopen()+fgets(), такой подход съэкономит памяти (хотя здесь это не требовалось, пол мегабайта словаря прекрасно будут обработаны при любых настройках PHP), однако снижает читабельность и скорость работы скрипта (хотя последнее тут тоже не очень актуально).

   
 
 автор: Artem S.   (13.02.2006 в 22:12)   письмо автору
 
   для: cheops   (12.02.2006 в 23:45)
 

Сначала ошибки:
if (!file_exists($filename)
|| !is_readable($fileame))
Правильнее так
if (file_exists($filename)
&& is_readable($fileame))

Заметил почти сразу, но править не стал...

   
Rambler's Top100
вверх

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