Страницы: 1
RSS
DAX. Факториал большого числа
 
Всем привет.
Пытаюсь получить в Power Pivot факториал числа больше 170. Вычисление возвращает ошибку.

Может у кого есть идеи как в PP получить факториал большого числа?

UPD. Добавил файл с примером.
Изменено: liveworkdie - 18.10.2019 09:01:46 (+файл с примером)
 
Даже в описании функции показано что 170 это крышка сверху.
Вот горшок пустой, он предмет простой...
 
Если PP не обязательна, можно в Excel (или VBA) с надстройкой.
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал:
Если PP не обязательна, можно в Excel (или VBA) с  надстройкой .
Спасибо за вариант.

С помощью VBA удавалось получить такой факториал. Проблема в решении этой задачи, в том что значение необходимо получить именно в среде PP, а дальше оно будет участвовать в расчётах мер. Всё это требуется для реализации модели Erlang C. По всей видимости буду копать куда-то в этом направлении.
 
Факториал любого положительного числа это всегда четное число. Попалось интересное сообщение с отнюдь не целым числом 5.0133852! = 127. То есть, стандартный калькулятор (в том числе онлайн) не может это вычислить. Стало интересно, как в Экселе будет выглядеть формула обратного факториала. Точнее, какие цифры с 5.0133852 надо помножить друг на друга, чтобы в итоге получить 127?
Изменено: Excaz - 22.11.2019 09:53:18
 
Цитата
Excaz написал:
5.0133852! = 127
Ну, во первых не 127, а 126,9999803) (или всё же ставьте знак приблизительно вместо равно). Во вторых, вы так сильно доверяете Мыкола Инфолиократ? Если x = ЦелааяЧасть(x) = M + ДробнаяЧасть(x) = m, то приведённая им формула x! = x * (M! * m + (M-1) * (1-m)) даёт ошибку
5,0133852*(ФАКТР(ЦЕЛОЕ(5,0133852))*ОСТАТ(5,0133852;1)+(ЦЕЛОЕ(5,0133852)-1)*(1-ОСТАТ(5,0133852;1))) = 27,83773978
Если предположить, что в формуле пропущен факториал во втором слагаемом x! = x * (M! * m + (M-1)! * (1-m)), то будет
=5,0133852*(ФАКТР(ЦЕЛОЕ(5,0133852))*ОСТАТ(5,0133852;1)+ФАКТР(ЦЕЛОЕ(5,0133852)-1)*(1-ОСТАТ(5,0133852;1))) = 126,7633405, что отнюдь не 126,9999803 и тем более не 127
 
И все-таки, Excel может расставить (помножить друг на друга) цифры, чтобы получить 127?
 
Зачем вам это?
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
Excaz написал:
чтобы получить 127
Может. По выше приведённой формуле, если использовать в ней 5,01385233892817, то с точностью до 6,25278E-13 получим 127.
 
A Excel-e можно, чтобы я мог подставлять любые цифры?
 
Здравствуйте, коллеги! Обобщением понятия факториала для множества действительных (и комплексных) чисел является Гамма-функция, придуманная еще Леонардом Эйлером. Поддерживается в Excel, начиная с версии 2013.
Владимир
 
Другими словами говоря, исходное число 127. Какие цифры надо помножить друг на друга (скажем, 5 или 8 раз), чтобы получить 127. Интересует формула в Excel. Вставил, скажем, число 127, 139 или 197 и получил числа от умножения которых они получились.
 
Андрей, приветствую!
sokol92, Владимир. спасибо за Информацию. В очередной раз утверждаюсь во мнении: Математика - сильная вещь.
Excaz, через функцию ГАММА() (любезно подсказанной Владимиром) и подбором параметра.
Итого: Факториал (6,03317226619116 - 1) = 5,03317226619116 (см. пост 16,17) будет давать 127 (с точностью до 5 знаков после запятой)
Изменено: bedvit - 22.11.2019 17:46:00
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit, приветствую!
Цитата
bedvit: подбором параметра
первый раз услышал про этот инструмент — благодарю  :idea:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
bedvit написал:
через функцию ГАММА() (любезно подсказанной Владимиром) и подбором параметра.
Благодарю. В моем Экселе-2003 отдельной такой функции нет..Поэтому пока не получается. Кстати, здесь фoрмула Гаммы другая.
Изменено: Excaz - 22.11.2019 14:15:13
 
Цитата
bedvit написал:
Итого: Факториал 6,03317226619116 будет давать 127 (с точностью до 5 знаков после запятой)
Коллеги, ввел вас в заблуждение (и себя). Вот как выглядит результаты функции расчета факториала и Гамма-функции.
Видим смещение на единицу в аргументе.
Думаю будет верным следующий ответ: Факториал 5,03317226619116 будет давать 127 (с точностью до 5 знаков после запятой)
Все верно?
Изменено: bedvit - 22.11.2019 17:00:34
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал:
ввел вас в заблуждение (и себя)
Привет, Виталий.
Не, всё правильно. Считает как определено: Если  z — целое неотрицательное число, то результат функции как на картинке. Вводим ГАММА(6) = ГАММА(5 + 1)! = 5! = 120.
Владимир, добрый вечер, большое спасибо за наводку.
Изменено: Андрей VG - 22.11.2019 17:25:25
 
Андрей, спасибо! Подправил 13 сообщение.
«Бритва Оккама» или «Принцип Калашникова»?
 
Андрей VG, жаль только что DAX от этого не легче.  :D  Гамма функции там нема. Да и значение факториала, на сколько я понимаю ограничено именно максимальной крышкой сверху для результата функции, число с большим количеством знаков DAX попросту не знает.  :(
Вот горшок пустой, он предмет простой...
 
Цитата
bedvit написал:
Факториал 5,03317226619116 будет давать 127 (с точностью до 5 знаков после запятой)
Но как, вставив 127 в Excel, получить 5,03317226619116 и другие множители? В таблице это можно посмотреть? Чтобы была возможность подставлять вместо 127 и любые другие нечетные числа.
Изменено: Excaz - 22.11.2019 18:22:26
 
Ссылка, указанная в #15, не Гамма-функция, а Гамма-распределение.
Владимир
 
Цитата
Excaz написал:
Но как, вставив 127 в Excel, получить 5,03317226619116
можете воспользоваться поиском решения для нахождения агрумента функции ГАММА, при котором она равна 127. А по поводу множителей - ждите того, кому будет интересно представить это в виде множителей. И! Не стесняйтесь отвечать на вопросы, а то перестанут реагировать и на ваши. И! Собственно, какое отношение ваш вопрос имеет к теме
Цитата
DAX. Факториал большого числа
Цитата
PooHkrd написал:
Гамма функции там нема.
Алексей, а если бы была, то чем бы это помогло? ГАММА(1000) также неисчислима :)  Боюсь, вопрос на самом деле лежал в плоскости, например, вычисления A(n, m) = n! / (n - m)!. Но для его решения для больших n и малых m не нужно вычислять n! Но, и делать это в DAX тоже не рекомендуется. Вот в Power Query - самое то.
Страницы: 1
Наверх