LINUX.ORG.RU
ФорумTalks

Разомнемся

 


0

1

Не устали еще обновляться и экспертствовать в толксах? Предлагаю размяться.

Вы пришли в магазин. Там есть k видов шоколадок. А вам всего нужно купить n шоколадок (k < n). Сколько вариантов у вас есть это сделать?

Присылаете рекурсивную дрисню на хаскелях / схемах / еще чем-то - отправляетесь лечиться. Идете что-то гуглить - перестаете, все что нужно для решения и так есть при вас.

Ответ на: комментарий от alex4321

просто так будет хоть немного интереснее

upcFrost ★★★★★
()

Вы пришли в магазин. Там есть k видов шоколадок. А вам всего нужно купить n шоколадок (k < n). Сколько вариантов у вас есть это сделать?

Ни одного. В магазине 10 шоколадок (k), купить нужно 20 (n). Исходя из условия нельзя купить больше, чем есть в магазине.

andreyu ★★★★★
()

На что только не пойдешь, чтоб домашку самому не делать 😂

unt1tled ★★★★
()
Ответ на: комментарий от f1u77y

Соответствующая функция binomial имеет вид:

(define (binomial n k)
  (define (iter result n k)
    (cond ((or (= k 0) (= k n)) result)
          (else
           (let ((q1 (make-rat n (- n k)))
                 (q2 (make-rat (+ 1 (- n k)) k)))
             (let ((r1 (mul result q1))
                   (r2 (mul result q2)))
               (if (< (weight r1) (weight r2))
                   (iter r1 (- n 1) k)
                   (iter r2 n (- k 1))))))))

  (numer (iter (make-rat 1 1) n k)))

Deathstalker ★★★★★
()
Ответ на: комментарий от f1u77y

Нельзя же так. Я полчаса вчера ломал голову над тем, почему твой вариант это требование учитывает, а его нет, хотя казалось бы наоборот.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

я выше написал, что он был в итоге прав, а я обосрался

f1u77y ★★★★
()
Ответ на: комментарий от andreyu

если ничего не сказано про общее количество в магазе, то подразумевается, что их очень много. но да, вообще это лучше всё же сказать явно

f1u77y ★★★★
()
Ответ на: комментарий от Harald

Благодарю, меня уже ткнули мордой в этот момент.

andreyu ★★★★★
()
Ответ на: комментарий от vurdalak

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

Zaskard
() автор топика
Ответ на: комментарий от tiinn

Поддерживаю!

У бита k есть два состояния (вида шоколадок), берём, например, 3 бита (шоколадки)...

3 бита... 2 в кубе...

Хотя нет, неправильно. Надо считать сколько битов 0 и сколько 1...

Например 4 бита (с тремя не очевидно)

0011

0101

1100

Это всё (и ещё чуть-чуть) - вариант «две таких и две других».

MumiyTroll ★★★
()
Последнее исправление: MumiyTroll (всего исправлений: 1)

Как минимум один.

Zhbert ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.