2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 17:08 
есть числа $0.0\quad 0.3\quad 1.0\quad 2.3$
можно ли только с помощью сложения, вычитания, умножения, деления, возведения в степень, логарифма, корня и их сочетаний, избавиться от дробной части (или от целой части) у каждого из них?
для значений от $-1$ до $+1$ кроме $0$ набор функций вида:
$N=\ln{\frac{\sqrt{(x^4-x^2)^2}}{(x^4-x^2)}}$
(если функция возвращает $0$, значит число лежит в диапазоне от $-1$ до $1$)

безуспешно пытаюсь получить аналогичную функцию для диапазонов от $-\infty$ до $-1$ и от $1$ до $+\infty$
чтобы для числа $2.9$ возвращала $2$ для числа $3.1$ возвращала $3$ и так далее

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 17:36 
Скорее всего, нельзя (очевидной причины пока привести не могу). И, даже если можно, не нужно. Откуда возникла задача с такими странными ограничениями?

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 17:38 
Аватара пользователя
arseniiv в сообщении #1034138 писал(а):
Скорее всего, нельзя (очевидной причины пока привести не могу)

Элементарные функции и их композиции непрерывны на своей области определения, а функция "целая часть числа" - нет. Возможно я неправильно понял задачу.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 17:41 
А, вот-вот, я тоже подумал про разрывы первого рода, которые нужны для целой части. Даже собрался написать, но вы обогнали. :-)

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 17:44 
arseniiv в сообщении #1034138 писал(а):
Откуда возникла задача с такими странными ограничениями?

1. надо функцию вставлять как индикатор целости числа в разные проверки, есть подозрения, что с арифметическими действиями машина работает быстрее, чем с встроенными алгоритмами (узнали, что число целое (дробное) - не стали его считать).
2. есть другие подозрения, что такая функция - путь к простому доказыванию ВТФ - как индикатор дробности результата.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 18:02 
upgrade в сообщении #1034144 писал(а):
есть подозрения
Так их ведь всегда можно проверить. Или посмотреть спецификацию какого-нибудь современного FPU, и там будет написано, сколько тактов то-то и то-то выполняется.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 18:05 

(Оффтоп)

arseniiv в сообщении #1034149 писал(а):
Или посмотреть спецификацию какого-нибудь современного FPU, и там будет написано, сколько тактов то-то и то-то выполняется.

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

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 18:16 

(Оффтоп)

Так это смотря какое многократное умножение. Если умножать раз двадцать — разве быстрее? А ваши слова можно понять и так.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 18:18 
Аватара пользователя
upgrade в сообщении #1034150 писал(а):
можно и так, а можно по секундомеру тест запустить. вот в последнем случае арифметика быстрее встроенных, не всегда правда.

Такой метод для столь примитивных операций почти наверняка не даст надёжных результатов будучи выполненным из под многозадачной ОС.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 18:41 

(Оффтоп)

arseniiv в сообщении #1034152 писал(а):
Если умножать раз двадцать — разве быстрее?

чем возведение в степень нет, чем использование встроенной функции, для поиска значений, по формуле, содержащей многократные умножения - вполне.
потому что встроенная функция может вызываться очень много раз, и если она универсальная, то видимо в ней понаписано много чего и лишние такты сильно увеличивает время, а копаться в исходниках долго и не факт что поймешь все правильно.
kp9r4d в сообщении #1034153 писал(а):
Такой метод для столь примитивных операций почти наверняка не даст надёжных результатов будучи выполненным из под многозадачной ОС

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

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 19:00 
Аватара пользователя
upgrade в сообщении #1034154 писал(а):
смотря сколько считать

Не смотря. Результат будет сильно зависеть от архитектуры CPU, оптимизатора, ОС, всяческих настроек компилятора (вроде размера стека), фазы луны и вообще.
upgrade в сообщении #1034154 писал(а):
некоторые подсчеты грузят процессор так, что ничего вообще не работает - даже мышь стоит.

И что из этого должно следовать?

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 19:04 
kp9r4d в сообщении #1034157 писал(а):
И что из этого должно следовать?

Время счета оценить можно.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 19:08 
Аватара пользователя
upgrade в сообщении #1034158 писал(а):
Время счета оценить можно.

Не подумайте что я издеваюсь, но как вы пришли от
upgrade в сообщении #1034154 писал(а):
некоторые подсчеты грузят процессор так, что ничего вообще не работает - даже мышь стоит.

к
upgrade в сообщении #1034158 писал(а):
Время счета оценить можно.

?

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 19:21 
Когда закончил считать - отвис, тут то время и оценили.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 19:25 
Аватара пользователя
upgrade
А на другой машине (или на этой же завтра, например) она отвисла за вдвое больший/меньший промежуток времени: что делать?

 
 
 [ Сообщений: 24 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group