Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra)
@ 2007-05-19 00:29:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Про функцию
К этому: http://lj.rossia.org/users/kouzdra/240714.html

fn x y = (z + 1) `exp` x `div` z `exp` y `mod` z
          where z = (x+2)  `exp` (x+2)
                exp a 0 = 1
                exp a n = a * (a `exp` (n-1))


Как правильно ответили многие (хотя, кажется, все - путем прогона тестов) -
fn x y - это число сочетаний из x по у.

Почему - очень просто: возведем в степень y число 10^n + 1 (где n достаточно велико). Получим строчку биномиальных коэффициентов для степени y в десятичной записи, далее - с помощью деления и остатка вырезается нужный коэффициент. Превращение этого в приведенную функцию - дело техники.


(Добавить комментарий)


[info]do_
2007-05-19 00:51 (ссылка)
О. Тоже думал, что это Cnm, только не мог понять, как это получается...

(Ответить)

хотя, кажется, все - путем прогона тестов
[info]blue_slonopotam
2007-05-19 11:55 (ссылка)
Неправильно кажется.
Вывод довольно простой.

(Ответить)


[info]lolepezy
2007-05-21 09:57 (ссылка)
Я почему-то думал, что там бета-функция для дискретных аргументов.


(Ответить)


[info]ppkk
2007-05-21 15:43 (ссылка)
Что это за язык, если не секрет?

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2007-05-21 23:26 (ссылка)
Haskell

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2007-05-22 17:05 (ссылка)
А зачем он нужен?

(Т.е. я синтаксиса не знаю, но в курсе, что это популярный функциональный язык, в нём по крайней мере можно писать http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all и работать будет не слишком медленно. Википедия пишет загадочное "часто используется в исследованиях", но ссылка на зависимый источник.)

Что на нём легко, просто или быстро делать?

Если не сложно, то в двух словах: применения в интернете я сам могу найти, но от живого человека, работающего программистом, интереснее узнать.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2007-05-22 17:16 (ссылка)
На мой взгляд нужен он в основном как экспериментальная платформа для опытов в разработке языков и для обучения кое-каким вещам (тут он просто оказался удачным для формулировки алгоритма), для практического программирования в целом imho он не очень - слишком наворочен и тяжеловат.

С точки зрения практической я в общем если нет необходимости использовать мэйнстримный язык, пользую обычно O'Caml

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2007-05-22 17:31 (ссылка)
Можно его тогда попиарить: там одного примера только не хватает на O'Caml
http://shootout.alioth.debian.org/gp4/benchmark.php?test=meteor&lang=all

Задачка решаемая, вопрос в тупости перебора. На Хаскеле программу кто-то написал.

А для каких практических целей O'Caml?

(Ответить) (Уровень выше)