быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|||||||||||
1 | |||||||||||
Метод float.as_integer_ratio() возвращает числа, умноженные на неимоверно большие коэффициенты, ЗАЧЕМ?04.10.2016, 17:41. Показов 5185. Ответов 10
Метки нет (Все метки)
Друзья! питон 3.1.1
+++++++++++++++++++++++++++++ (21, 10)- это правильный результат; (42, 20)- тоже ничего (84, 40)-похуже будет А предлагаемый результат это изврат полный. Зачем же питон умножает 21 и 10 на неимоверно большие коэффициенты (точнее на коэффициент 225179981368524,8 ещё и нецелый к тому же) и выдаёт получившийся результат? Вроде и так всё непросто, не пойму, зачем сложности на ровном месте создавать? Тем более, что здесь чётко сказано:
0
|
04.10.2016, 17:41 | |
Ответы с готовыми решениями:
10
Почему функция возвращает большие числа? Метод наименьших квадратов. Получаются очень большие числа Разработать метод, который возвращает количество делителей заданного числа х Разработать метод f (x), который возвращает младшую цифру натурального числа x |
05.10.2016, 14:38 | 2 | |||||
Сообщение было отмечено dondublon как решение
Решение
Видимо, алгоритм такой. В описании не сказано, что коэффициенты будут наименьшими
Добавлено через 24 минуты C просторов stackoverflow:
0
|
dondublon
|
07.10.2016, 14:20
#3
|
Не по теме: Иэхх. Сам себя не похвалишь - никто не похвалит.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
07.10.2016, 17:16 [ТС] | 4 |
0
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
|
07.10.2016, 17:53 | 5 |
Числа с плавающей запятой хранятся в двоичном представлении, поэтому число 2.1 на самом деле может храниться как 2.100000000000000034, допустим. А 1.5 всегда 1.5, потому что 0.5 = 1/2
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
07.10.2016, 17:57 [ТС] | 6 | |||||
извините, сразу не написал у меня такой результат:
0
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
||||||
07.10.2016, 18:19 | 7 | |||||
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
07.10.2016, 21:29 [ТС] | 9 | |||||
Ну я уж не буду ставить себе 3.4, но к документации по 3.4 всё же обращусь
+++++++++++++++++++++++++++++++++++++++ В общем-то, использование limit_denominator всё решает, но вот перевод меня обескураживает. Во-первых, эффект:
С каких пор "at most 1000000" стало означать "как можно меньший"- вот вопрос!
0
|
08.10.2016, 21:26 | 10 |
Думаю, для ваших целей этого достаточно. Ибо с математической точностью в 8 байт можно засунуть только небольшую долю действительных чисел, как справедливо заметил oldnewyear. Даже если речь о конечных, десятичной записи, дробях.
Я и так в восхищении, что какие-то добрые люди реализовали такой, в общем-то, весьма нетривиальный алгоритм.
0
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
|
09.10.2016, 07:37 | 11 |
Тут даже не в ограничении на разряды проблема, будть хоть 256 разрядов проблема будет та же - теоретически невозможно число 0.1 представить в двоичном представлении с основанием 2
0
|
09.10.2016, 07:37 | |
09.10.2016, 07:37 | |
Помогаю со студенческими работами здесь
11
Разработать метод f (x), который возвращает младшую цифру натурального числа Разработать метод f (x), который возвращает младшую цифру натурального числа x Разработать метод, который возвращает младшую цифру натурального числа Разработать метод, который возвращает младшую цифру натурального числа x Разработать метод, который возвращает вторую справа цифру натурального числа Разработать метод f(x), который возвращает вторую справа цифру натурального числа x Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |