простой вопрос по математике (n!)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

простой вопрос по математике (n!)

Сообщение Бяка » 16.08.2006 (Ср) 23:36

только не смейтесь! чёто у меня сегодня туго с математикй...
как попроще на ВБ вычислить факториал?
те 7! это 1*2*3*4*5*6*7
а 6.5431! ? или 6.5437 ?

а как вычислять факториал от 0 до 7 с шагом 0,0001 ?
кинте идейку плиз как енто зробыть а ?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.08.2006 (Ср) 23:43

Почитать определение слова "факториал". После этого такие мысли пропадут.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 17.08.2006 (Чт) 0:11

я понимаю что определение слова "факториал" - произведение всех целых чисел от 1 до n включительно, это я понял но я непонял как ето сделал калькулятор :6.5431=2035,3064507020270898314278686192?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.08.2006 (Чт) 0:15

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 17.08.2006 (Чт) 0:44

все решено!
если интерестно то это делается так:
Код: Выделить всё
X = (X) + 1
Y = Exp(X * Log(X) - X + Log(Sqr(2 * 3.141592 / X)) + 1 / (12 * X) - 1 / (360 * X ^ 3))

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.08.2006 (Чт) 8:12

Эта формула -- приблизительная. Для целых аргументов она выдаёт нецелые значения.
А калькулятор -- выдаёт верные, целые. Завидуй ;-)
Изображение

~Ilya~
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 09.03.2006 (Чт) 14:34

Сообщение ~Ilya~ » 17.08.2006 (Чт) 12:17

Нужно считать гамма-функцию от твоего дробного аргумента

n!=Г(n+1)

[url]
http://functions.wolfram.com/GammaBetaErf/Gamma/
[/url]

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 18.08.2006 (Пт) 22:06

tyomitch
так это из за не точности подсчёта самого VB :cry: число пи надо взять поточнее, операторы Exp, Sqr и Log вычисляют только да 11 знака после запятой. плюс фрмула неполная = Exp(N*Ln(N)-N+ln(sqrt(2*pi/n))+1/(12*n)-1/(360*n*n*n)+1/(1260*n*n*n*n*n)+...)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.08.2006 (Пт) 22:30

Бяка, как ты собираешься вычислить точное значение по бесконечной формуле? VB тут не при чём.
Изображение

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 18.08.2006 (Пт) 22:48

мне ваащето точность не сильно нужна, мне нада только целая часть результата.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.08.2006 (Пт) 23:14

На кой тебе вообще факториал дробных чисел? ты всё равно даже примерно не представляешь себе смысл полученного значения. Можешь с тем же успехом поставить там Rnd^-Rnd.
Изображение

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 18.08.2006 (Пт) 23:43

tyomitch писал(а): Можешь с тем же успехом поставить там Rnd^-Rnd.
неее, у меня при входяшем значении 7 результат должен быть 5040 +/- 5, при 6 = 720 +/- 5 ... при 2=2, 1=1 прчем входящее значение меняется от 1 до 7 с шагом 0,0001

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 19.08.2006 (Сб) 6:05

Бяка писал(а):
tyomitch писал(а): Можешь с тем же успехом поставить там Rnd^-Rnd.
неее, у меня при входяшем значении 7 результат должен быть 5040 +/- 5, при 6 = 720 +/- 5 ... при 2=2, 1=1 прчем входящее значение меняется от 1 до 7 с шагом 0,0001


полный бред
Весь мир матрица, а мы в нем потоки байтов!

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 19.08.2006 (Сб) 20:53

Первый раз вижу вычисление факториала от целого числа от 1 до 7 с точностью до 5ти :shock: :shock: :shock:
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 19.08.2006 (Сб) 22:27

Бяка
Я извеняюсь но тебе надо сходить в холивары... Что ты совсем бред пишешь! :oops: :oops:
#define ROFL 0xDDDD

~Ilya~
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 09.03.2006 (Чт) 14:34

Сообщение ~Ilya~ » 21.08.2006 (Пн) 9:13

Ну почему же бред! Просто, насколько я понимаю, нужна функция, интерполирующая факториал.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.08.2006 (Пн) 9:21

Зачем?
Изображение

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 21.08.2006 (Пн) 12:59

tyomitch писал(а):Зачем?
Затем, что у него задание такое по праку :)
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 21.08.2006 (Пн) 14:11

~Ilya~ прав, на мой взгляд, Гамма-функция - это аналог "факториала" для дробных чисел. Используется как минимум в описании распределений в теории вероятности, скорее всего, еще много где.

Алгоритмы вычисления, кажется, есть на http://alglib.sources.ru/specialfunctions/gamma/gamma.php
Быть... или не быть. Вот. В чём вопрос?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.08.2006 (Пн) 15:09

uhm, если аффтар говорит не о гамма-функции, а о факториале, то скорее всего, он имеет в виду именно факториал, а не гамма-функцию.

Интерполировать факториал на дробные числа -- такой же идиотизм, как, например, интерполировать на них количество делителей числа.
Изображение

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 21.08.2006 (Пн) 15:21

:) Аффтар не может иметь в виду факториал для дробных чисел, поскольку факториала для дробных чисел не существует :) А Гамма-функция — это

Wikipedia писал(а):математическая функция, которая расширяет понятие факториала на поле комплексных чисел.


Слово "интерполировать" здесь, конечно, неуместно, это да. Но и отсылка к числу делителей несправделива (если, конечно, не существует функции, расширяющей понятие "число делителей" :D ).
Быть... или не быть. Вот. В чём вопрос?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.08.2006 (Пн) 15:32

uhm писал(а)::) Аффтар не может иметь в виду факториал для дробных чисел, поскольку факториала для дробных чисел не существует :)

Об этом ему с самого начала топика твердят.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 124

    TopList