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

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Задача N 22. Кодирование данных - приз 1 мес. хостинга.

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]   [41-50]  [51-60] 

 
 автор: cheops   (18.06.2007 в 10:38)   письмо автору
 
   для: Trianon   (09.06.2007 в 15:15)
 

Тема уже очень длинная, давайте начнём новую ветку

http://www.softtime.ru/forum/read.php?id_forum=7&id_theme=39219

   
 
 автор: Trianon   (18.06.2007 в 00:57)   письмо автору
 
   для: Unkind   (17.06.2007 в 23:59)
 

Функций с указанными именами должно быть две, иначе тестер их не найдет.
Своих собственных функций, классов, методов - на усмотрение автора. Влиять будет на стиль, читабельность, быстродействие.

Отправлять же Вы вольны всё что угодно, в том числе тесты, демнострации, комментарии.

   
 
 автор: Unkind   (17.06.2007 в 23:59)   письмо автору
 
   для: Trianon   (17.06.2007 в 23:33)
 

Мне хотелось бы придерживаться того, что функций будет только две до конца. В противном случае я бы разбил их на несколько и запихал все в один класс.

Кстати, посылать в качестве ответа только функции? Никаких тестов и демонстраций не надо?

   
 
 автор: Trianon   (17.06.2007 в 23:33)   письмо автору
 
   для: Unkind   (17.06.2007 в 23:22)
 

Боже упаси.
Я не запрещал использование своих собственных функций. Запрещены лишь стандартные - потому что у стороннего разработчика их может просто напросто не найтись.
Если Вы знаете как реализовать pow (или любую другую функцию) - напишите собственную.

   
 
 автор: Unkind   (17.06.2007 в 23:22)   письмо автору
 
   для: Trianon   (17.06.2007 в 22:21)
 

Просто, к сожалению, в PHP оператора возведения в степень не ввели. А в Perl, к примеру, ввели. А в самом коде писать это некрасиво. А под отдельную ф-ю выводить нельзя.
О sort(), наоборот, даже не спрашивал, т.к. посчитал "умной функцией". Хорошо, буду использовать ее.

   
 
 автор: Trianon   (17.06.2007 в 22:21)   письмо автору
 
   для: Unkind   (17.06.2007 в 21:25)
 

strlen - да. В php это даже не функция, а build-in свойство объекта.

pow - нет. pow там нафиг не нужен. Но ход Ваших мыслей мне нравится.

Я готов разрешить использовать функцию sort для лексикографического упорядочения алфавита. Только потому, что сам забыл его упорядочить в тестере.

В конце концов - задача не про сортировку...

Ах, сколько чудных задач можно про сортировку написать....

   
 
 автор: Unkind   (17.06.2007 в 21:25)   письмо автору
 
   для: Trianon   (09.06.2007 в 15:15)
 

strlen() тоже относится к простым?
pow()?

P.S. list() функцией не является, поэтому, думаю, за нёё штрафные баллы начислять не будут.

   
 
 автор: User   (17.06.2007 в 20:03)   письмо автору
 
   для: Unkind   (17.06.2007 в 19:19)
 

Спасибо. Теперь понятно. Моя ошибка была в том, что я пытался перевести текст из 256-значного алфавита в 64-значный напрямую, без использования двоичной системы счисления

   
 
 автор: Trianon   (17.06.2007 в 19:53)   письмо автору
 
   для: Eugene77   (17.06.2007 в 19:48)
 

$max = floor(($l1*8 * 1.33 + 7)/8); - это на 33 процента тест. Для base64_encode
Для проверки решений на 25 процентов эта строка будет выглядеть так:

$max = floor(($l1*8 * 1.25 + 7)/8);

Суть теста в том, чтобы закодированная строка с не превышала исходную более чем на 25 % (округляя до байта вверх).

   
 
 автор: Eugene77   (17.06.2007 в 19:48)   письмо автору
 
   для: Unkind   (15.06.2007 в 21:57)
 

Кстати, проверочный скрипт Трианона, кажется не совсем корректно работает.
Формула

$max = floor(($l1*8 * 1.33 + 7)/8);

для строки длинной в 4 байта даёт 6, а не 5 . Как ожидается из предшествующих рассуждений.

Можно её заменить, например, на такую строку, может и более длинную, зато с более прозрачной логикой, как мне кажется.


$ll=$l1%4;    $max = 5*(int)($l1/4) +(int)($ll*($ll+3)/($ll+1));


Отдельно вычисляется длина целых четвёрок байтов и длина остатка от деления на четыре.

   

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]   [41-50]  [51-60] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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