Есть t,u и v (количество единиц, двоек и троек). Из них составляем число длиной (t+u+v цифр).
Какое количество различных чисел можно получить?
Я правильно понимаю, что это число будет равно с( t, t+u+v ) * с( u, u+v )?
Спасибо, работает.
А еще не подскажете, как тут избежать деления. В задаче, которую я решаю, запросто могут выползти вычисления вида 1000! / ( 500! * 100! ) к примеру. Если бы был один факториал в знаменателе, то понятно,что просто считаем верхний факториал не от 1, а до знаменатель+1, а тут 2 (а то и 3) факториала.
Так сходу не скажу, у вас чисто математика или программу пишите?
Если программу, то можно попробовать создать два массива - в первом множители 2...1000, во втором 2..500, 2..100 и попробовать сократить числитель. Перед этим лучше сократить самый большой факториал. В любом случае ответ будет "длинный", не только вычисления.
Спасибо, работает.
А еще не подскажете, как тут избежать деления. В задаче, которую я решаю, запросто могут выползти вычисления вида 1000! / ( 500! * 100! ) к примеру. Если бы был один факториал в знаменателе, то понятно,что просто считаем верхний факториал не от 1, а до знаменатель+1, а тут 2 (а то и 3) факториала.
alex_ak1: не "до знаменатель+1", а от знаменатель+1. Если в числителе 1000!, а в знаменателе 500!, то считаем в числителе от 501. Если очень много, то сокращайте знаменатели с числителем. Кстати, отметьте решения.