Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> большие целые числа, как сделать 
V
    Опции темы
Simpliest
Дата 25.9.2009, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Цитата(NLspieler @  25.9.2009,  17:20 Найти цитируемый пост)
Если бы была бы возможность возводить bc числа в дробную степень,
то тогда было бы вполне достатоно использовать формулу 

Жесть.
Вы прикидываетесь? Или не учили математику?

Вам подсказать как получить X в степени 2.2?

1. Раскладываем на Х^2 * X^0.2
2. X^2
3. X^0.2 - это корень.
4. Отсюда имеем X^0.2 = e^(1/0.2 * Ln(X)) = e^(5*Ln(X))
5. Если 5*Ln(X)  у нас не целое число - идем пункт 1.
6. Считаем произведение.

На пункте 5 мы можем поставить проверку на точность. т.е. после определенной иттерации просто округлить результат до целого.

Это сообщение отредактировал(а) Simpliest - 25.9.2009, 17:36


--------------------
user posted image
PM   Вверх
motorway
Дата 25.9.2009, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



А что можете сказать про такое решение, возможно, неверное (не мое):

Код

echo sprintf("%.4f",pow(1111111111111111111111111111111,0.5));

PM MAIL   Вверх
Simpliest
Дата 25.9.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



у pow точность ограничена 14 или 16 знаков для double (точно не помню).

Тебе же надо БОЛЬШИЕ числа smile


--------------------
user posted image
PM   Вверх
motorway
Дата 25.9.2009, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



ну да. В общем, если у кого-то будет протестированная 100%-но функция для таких вещей, будет хорошо.
PM MAIL   Вверх
NLspieler
Дата 25.9.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Simpliest,
замечательно! Если вы разобрались как решить эту  smile задачу, то тогда 
найдите несколько минут, что бы написать соответствующую функцию.
Которая должна уметь извлекать корень любой степени из чисел навроде:

2983742634876182736817263928374982374109238098798172837682734682653472534

с точностью до 500 знаков после запятой.

Добавлено через 2 минуты и 18 секунд
Цитата(motorway @  25.9.2009,  17:53 Найти цитируемый пост)
В общем, если у кого-то будет протестированная 100%-но функция для таких вещей, будет хорошо.

А зачем тебе такая функция, если не секрет?
Нанотехнологии?
Но для них даже функции pow вполне достаточно.
PM MAIL   Вверх
Simpliest
Дата 25.9.2009, 18:21 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Цитата(NLspieler @  25.9.2009,  17:59 Найти цитируемый пост)
 то тогда 
найдите несколько минут, что бы написать соответствующую функцию.


20 у.е. и через 15 минут будет эта функция.


--------------------
user posted image
PM   Вверх
motorway
Дата 25.9.2009, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



Иногда эстетическое наслаждение представляет просто выложить функцию на обозрение мирового сообщества  smile
PM MAIL   Вверх
Simpliest
Дата 25.9.2009, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Цитата(motorway @  25.9.2009,  18:49 Найти цитируемый пост)
эстетическое наслаждение 

Мое эстетическое наслаждение заключается в непотакании бездарным лентяям.

Я дал готовый алгоритм, написать функцию дело 15ти минут.


--------------------
user posted image
PM   Вверх
NLspieler
Дата 25.9.2009, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Simpliest,
Я вот что не могу понять.
Почему, сначала формула была такой:

Корень = e^((1/n) * Ln(a)), где 
n - степень корня, 
а - число,

но внезапно стала такой:
X^n = e^(1/n * Ln(а))
?

Другой вопрос в том, может ли 
y*Ln(x) 
быть целым числом?

Если нет, то нужно повторить пунк 1? Но с какими значениями?

 
PM MAIL   Вверх
sTa1kEr
Дата 25.9.2009, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(Simpliest @  25.9.2009,  18:35 Найти цитируемый пост)
4. Отсюда имеем X^0.2 = e^(1/0.2 * Ln(X)) = e^(5*Ln(X))

Мне непонятно почему X^0.2 = e^(1/0.2 * Ln(X)) ? Ты, наверное, хотел сказать корень 5 степени от X  равен e^(1/5 * Ln(X)) = e^(0.2 * Ln(X)) ? Но тогда очевидно, что данный алгоритм не будет работать, т.к. n будет всегда дробным.

Это сообщение отредактировал(а) sTa1kEr - 25.9.2009, 19:12
PM MAIL   Вверх
NLspieler
Дата 25.9.2009, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Ну должен же быть способ, полюбому должен!

PM MAIL   Вверх
motorway
Дата 25.9.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



пока что приходят мысли о представлении числа в виде x*10^k, а дальше корень извлекается из x, которое должно быть небольшим, и из 10^k каким-то образом. Но, скорее всего, это 10^k тоже будет большим, так что не знаю...

Это сообщение отредактировал(а) motorway - 25.9.2009, 19:43
PM MAIL   Вверх
Simpliest
Дата 25.9.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Цитата(sTa1kEr @  25.9.2009,  19:11 Найти цитируемый пост)
Мне непонятно почему X^0.2 = e^(1/0.2 * Ln(X)) ?

Да,  возможно, где-то ошибка smile

Момент.

Добавлено через 6 минут и 40 секунд
Так.

В приведении формул была ошибка.  sTa1kEr,  прав.
Правильный вид он указал 
Цитата(sTa1kEr @  25.9.2009,  19:11 Найти цитируемый пост)
корень 5 степени от X  равен e^(1/5 * Ln(X)) = e^(0.2 * Ln(X)) 


Дальше у нас есть два варианта
  • Когда 1/n *Ln(X) > 1 или Ln(X) > n
  • и соответственно  1/n *Ln(X) < 1.
Для первого случая алогоритм рабочий. Т.е. нам надо проверять условие Ln(X) >n.

Для второго случая надо подумать.


--------------------
user posted image
PM   Вверх
motorway
Дата 25.9.2009, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



Цитата

Если 5*Ln(X)  у нас не целое число - идем пункт 1.

Я что-то весьма сомневаюсь, что это будет целым числом для каких-то случаев. ln x - иррационально для рационального x.
Так что я не бездарный лентяй, а просто реализовывать предложенную функцию, пока она не проверена автором, не хочется.

Это сообщение отредактировал(а) motorway - 25.9.2009, 21:43
PM MAIL   Вверх
Simpliest
Дата 25.9.2009, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Цитата(motorway @  25.9.2009,  21:40 Найти цитируемый пост)
Я что-то весьма сомневаюсь, что это будет целым числом 

А там не надо сомневаться. Оно практически всегда будет нецелым. Но проведя "надцать" иттераций вы получите приемлимую сходимость.


--------------------
user posted image
PM   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.