ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Конкурс для программистов
  #1  
Старый 22.04.2009, 05:53
Аватар для Stanislaw
Stanislaw
Новичок
Регистрация: 06.03.2009
Сообщений: 9
Провел на форуме:
65187

Репутация: 16
Отправить сообщение для Stanislaw с помощью ICQ
По умолчанию Конкурс для программистов

Кто максимально быстро назовет количество нулей на конце и пять последних чисел перед ними у факториала числа 13000.
P.S.: если кто не знает, факториал числа n = 1*2*3*...*n
То есть факториал 6 = 1*2*3*4*5*6=720.

Итак! Кто же решится реализовать ЭТО на php?
 
Ответить с цитированием

  #2  
Старый 22.04.2009, 06:16
Аватар для Stanislaw
Stanislaw
Новичок
Регистрация: 06.03.2009
Сообщений: 9
Провел на форуме:
65187

Репутация: 16
Отправить сообщение для Stanislaw с помощью ICQ
По умолчанию

Могу привести скрипт, который будет считать небольшие факториалы. как его усовершенствовать - в этом соль задачки
function get_fact($n)
{
$fact = 1;
for($i=1;$i<=$n;++$i)
{
$fact *= $i;
}
return $fact;
}
////////////////
Временно офф - пошел в школу
Тому, кто первый назовет цифры отстегну репки
 
Ответить с цитированием

  #3  
Старый 22.04.2009, 06:22
Аватар для NuR
NuR
Участник форума
Регистрация: 11.12.2005
Сообщений: 160
Провел на форуме:
745130

Репутация: 159
Отправить сообщение для NuR с помощью ICQ
По умолчанию

ты в школе изучал математику? примерно представляешь какой размерности придется хранить числа? и есть ли такие типы данных в природе.
upd
на 32 битном пхп во флоат можно уместить примерно 170! если прикидывать по формуле Стиринга sqrt(2*pi()*$n)*pow(($n/M_E),$n);
upd
хм.. пхп ацкая вещь, 6826351722496 потом 3248 нуля
вот так оно выглядит xD
http://www.sendspace.com/file/5zqhee

Последний раз редактировалось NuR; 22.04.2009 в 06:42..
 
Ответить с цитированием

  #4  
Старый 22.04.2009, 11:07
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
примерно представляешь какой размерности придется хранить числа? и есть ли такие типы данных в природе.
Ога, есть.
Тип long в питоне

Код:
import operator
reduce(operator.mul, range(1, 13000 + 1))
 
Ответить с цитированием

  #5  
Старый 22.04.2009, 11:48
Аватар для Gifts
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

nerezus или просто
Код:
from math import factorial
a = factorial(13000)
 
Ответить с цитированием

  #6  
Старый 22.04.2009, 13:24
Аватар для Stanislaw
Stanislaw
Новичок
Регистрация: 06.03.2009
Сообщений: 9
Провел на форуме:
65187

Репутация: 16
Отправить сообщение для Stanislaw с помощью ICQ
По умолчанию

NuR выиграл=)
 
Ответить с цитированием

  #7  
Старый 22.04.2009, 18:28
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Stanislaw, неа. Gifts выиграл.
 
Ответить с цитированием

  #8  
Старый 22.04.2009, 20:26
Аватар для Stanislaw
Stanislaw
Новичок
Регистрация: 06.03.2009
Сообщений: 9
Провел на форуме:
65187

Репутация: 16
Отправить сообщение для Stanislaw с помощью ICQ
По умолчанию

Цитата:
Кто максимально быстро назовет количество нулей на конце и пять последних чисел перед ними у факториала числа 13000.
NuR сделал это первый
 
Ответить с цитированием

  #9  
Старый 22.04.2009, 20:44
Аватар для mailbrush
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Реально, школьник. Тебе что важно - кто сделал первый, или кто качественнее сделал?
 
Ответить с цитированием

  #10  
Старый 22.04.2009, 21:20
Аватар для astrologer
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Вообще-то, для этого не нужно считать факториал.
Количество нулей можно найти хоть на бумажке, т.к. ноль образуется из произведения 2 * 5, двойки всегда в избытке.
PHP код:
function countZeroes($n)
{
  
$base   5;
  
$power  1;
  
$amount 0;

  while(
$power $n)
  {
    
$amount += floor($n $power *= $base);
  }
  
  return 
$amount;
}

echo 
countZeroes(13000); // 3248 
Скорее всего это вообще решается без циклов, одним выражением.

Последний раз редактировалось astrologer; 22.04.2009 в 21:25..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МикроДжоинер для начинающих ReanimatoR Статьи 23 02.01.2010 15:07
[Статья] Создание расширения для Windows Explorer при помощи C++ Builder Dobby007 С/С++, C#, Delphi, .NET, Asm 2 29.03.2009 08:58
Редактирование содежимого прошивок для Самсунгов Digimortal Схемы и программы 3 28.02.2007 14:22
Моя подборка софта для КПК на базе Wm5 Noman Схемы и программы 12 19.12.2006 22:40
Программы для работы с железом. Часть 2 – материнские платы _GaLs_ Аппаратное обеспечение 0 19.11.2006 12:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ