4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
|
|
1 | |
Clojure Project Euler: Smallest multiple23.11.2014, 19:51. Показов 1552. Ответов 16
Метки нет (Все метки)
Project Euler: Smallest multiple
2520 - самое маленькое число, которое делится без остатка на все числа от 1 до 10. Какое самое маленькое число делится нацело на все числа от 1 до 20?
0
|
23.11.2014, 19:51 | |
Ответы с готовыми решениями:
16
Clojure Project Euler: Multiples of 3 and 5 Clojure Project Euler: Summation of primes Clojure Project Euler - large sum Clojure Project Euler: 10001st prime |
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,589
|
||||||||||||||||
23.11.2014, 21:34 | 2 | |||||||||||||||
Сообщение было отмечено _sg как решение
Решение
2
|
Модератор
|
||||||
23.11.2014, 21:36 | 3 | |||||
1
|
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
|
||||||
23.11.2014, 21:41 [ТС] | 4 | |||||
2
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,589
|
||||||||||||||||||||||||||
23.11.2014, 22:05 | 5 | |||||||||||||||||||||||||
Сообщение было отмечено _sg как решение
Решение
Catstail,
_sg, LispWorks выпадает с переполнением стека из-за глубины рекурсии. =)
2
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|||||||||||
23.11.2014, 22:13 | 6 | ||||||||||
Сообщение было отмечено _sg как решение
Решение
2
|
505 / 511 / 42
Регистрация: 12.12.2013
Сообщений: 484
|
|||||||||||
23.11.2014, 22:49 | 7 | ||||||||||
Сообщение было отмечено _sg как решение
Решение
Clojure:
2
|
Модератор
|
||||||
23.11.2014, 22:56 | 8 | |||||
Сообщение было отмечено _sg как решение
Решение
Вот:
korvin_, да, я уже сообразил и переделал.
1
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,589
|
||||||
23.11.2014, 23:07 | 9 | |||||
Сообщение было отмечено _sg как решение
Решение
castorsky, лол, я думал на Project Euler какие-то сложные задачи, а это оказалась простейшая lcm. Я вначале подумал об этом, но все же решил, что это что-то другое.
1
|
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
|
||||||
23.11.2014, 23:25 [ТС] | 10 | |||||
0
|
505 / 511 / 42
Регистрация: 12.12.2013
Сообщений: 484
|
||||||
24.11.2014, 00:47 | 11 | |||||
Еще один вариант, переписал с решения на F#:
Кликните здесь для просмотра всего текста
Код
let problem5_correct() = let primesWithLimit limit = let testPrime (possiblePrime : float) = let sqrRootOfPrime = sqrt (possiblePrime) {2.0..sqrRootOfPrime} |> Seq.forall (fun divisor -> match divisor with | 1.0 -> true | x when divisor = possiblePrime -> true | _ -> possiblePrime % divisor > 0.0) {2.0..limit} |> Seq.filter (fun index -> testPrime index) let computeLimit = sqrt (20.0) primesWithLimit 20.0 |> Seq.fold (fun state prime -> let exponent = match prime < computeLimit with | true -> floor ((log (20.0) / log (prime))) | _ -> 1.0 state * (float (prime) ** exponent)) 1.0 |> int64 // 232792560L problem5_correct() |> printfn "%A"
1
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
24.11.2014, 17:20 | 12 |
0
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,589
|
|||||||||||
24.11.2014, 23:20 | 13 | ||||||||||
Кстати, свертку лучше сделать вручную, чем через CL'ный reduce:
1
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|||||||||||
25.11.2014, 00:22 | 14 | ||||||||||
Что же тут странного? Это не простой проход, а универсальная рекурсивная фвп, которая компенсирует ограничение на длину списка.
0
|
defun
603 / 617 / 44
Регистрация: 30.04.2011
Сообщений: 702
|
||||||
25.11.2014, 07:52 | 15 | |||||
korvin_,
1
|
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,589
|
|
25.11.2014, 09:31 | 16 |
Гм, забавно... Это SBCL? Может в LispWorks reduce кривой. =/
Добавлено через 5 минут А какой? 1) это просто свертка (fold); 2) сомневаюсь, что в CL она сделана рекурсивно, иначе LW уже бы выдал переполнение стека. Впрочем он умеет немного TCO, но сомневаюсь, что там не цикл внутри.
0
|
defun
603 / 617 / 44
Регистрация: 30.04.2011
Сообщений: 702
|
||||||
25.11.2014, 10:11 | 17 | |||||
korvin_, да, это sbcl
0
|
25.11.2014, 10:11 | |
25.11.2014, 10:11 | |
Помогаю со студенческими работами здесь
17
Clojure Project Euler: Number letter counts Clojure Project Euler: Sum square difference Clojure Project Euler: Largest product in a series Clojure Project Euler: Special Pythagorean triplet Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |