Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
5 / 5 / 4
Регистрация: 28.02.2017
Сообщений: 25

Минимальное целое число

02.04.2017, 17:58. Показов 3926. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как правильно вычислить минимальное целое число, не представимое точно в float и десятичной машинной арифметике, где p = 7. e_min = -9, e_max=9
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2017, 17:58
Ответы с готовыми решениями:

Минимальное целое число
Вычислить минимальное положительное целое число, не представимое точно (p = 7, e_{min} = -9, e_{max} = 9) в машинных арифметиках.

Минимальное целое положительное число среди введенных значений
Напишите программу, которая вычисляет минимальное целое положительное число среди введенных значений. Признаком конца ввода является символ...

Если целое число m делится нацело на целое число n, то вывести на экран частное от деления
Запросите у пользователя два целых числа m и n. Если целое число m делится нацело на целое число n, то вывести на экран частное от...

16
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
03.04.2017, 10:34
Опять?
Уточните задание. Пока звучит глупо.
0
5 / 5 / 4
Регистрация: 28.02.2017
Сообщений: 25
03.04.2017, 10:34  [ТС]
dondublon, это и есть условие
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
03.04.2017, 10:40
читаем https://ru.wikipedia.org/wiki/... 1%81%D1%8C .
Все осмысливаем. Если остаются вопросы - задаем их тут.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
03.04.2017, 11:38
У меня есть догадка, что имеется в виду. Но хотелось бы убедиться, прежде чем приниматься за работу.
0
5 / 5 / 4
Регистрация: 28.02.2017
Сообщений: 25
03.04.2017, 12:51  [ТС]
Я так понимаю, что нужно найти число у которого мантисса будет превышать допустимое значение
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
03.04.2017, 14:19
Эх, не угадал

В любом случае, мантисса у вас не будет превышать 10 по определению.
0
5 / 5 / 4
Регистрация: 28.02.2017
Сообщений: 25
03.04.2017, 19:04  [ТС]
dondublon, а что тогда?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
04.04.2017, 10:41
Тут надо начать немного издалека.

Тип integer - 4 байта. Это я не про Питон, это про нативный тип, который пршёл из процессора x86, откуда подобная запись пришла в языки программирования и библиотеки.
Тип float - тоже 4 байта.
При этом диапазон integer - примерно от -2 млрд до 2 млрд, т. е. от -2e9 до 2е9, а float - от -1е38 до 1е38, то есть покрывает область в 100000000000000000000000000000 раз больше. 29 нулей, ибо 38-9=29.

И этот мегамонстрический диапазон в тех же четырёх байтах!

Вот вам пища для размышлений. Подумайте, какой отсюда следует очевидный вывод, отпишитесь, потом продолжим.
1
5 / 5 / 4
Регистрация: 28.02.2017
Сообщений: 25
04.04.2017, 21:26  [ТС]
dondublon, т.е. число больше, чем допустимое значение float не будет представимо?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
05.04.2017, 11:02
Цитата Сообщение от yudy Посмотреть сообщение
dondublon, т.е. число больше, чем допустимое значение float не будет представимо?
Ну это уж совсем Капитан Очевидность.
Да, блин!
Если integer покрывает до прибизительно 2e9, а float вылезает за эти рамки (1e38), то float-ы, большие по модулю 2e9, integer-ом не покрываются.

Я всё-таки хотел чуть более сложный вывод.
0
5 / 5 / 4
Регистрация: 28.02.2017
Сообщений: 25
05.04.2017, 23:56  [ТС]
dondublon, максимальная мантисса у float 23 бита, если мантисса будет 24 бита, это будет являться минимальным не представимым числом?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
06.04.2017, 09:20
yudy, нет.
Мантисса там 23 бита, это фиксированно, но это не важно, на самом деле.

А вывод таков.
integer - каждое целое число из диапазона представляется уникальным набором из четырёх байт. Почему? 4 байта, 256^4=2^32~=4 млрд. Эти 4 млрд ставим вокруг нуля, получаем те самые +- 2 млрд. То есть целые представляются точно. Каждому числу из диапазона соответствует свой набор бит, 1:1.

Если у вас диапазон в 100000000000000000000000000000 раз больше, то ТОЧНО вы их в тех самых четырёх байтах не представите, хоть тресни. Даже целые, не говоря уж о дробных, но для вашего задания мы говорим о целых.

То есть, некоторые числа будут "сливаться". Два реальных математических числа отличаются, а представление float у них будет одинаковое.
Даже интуиция может подсказать, что, чем больше по модулю число - тем большая разница будет у "сливающихся" соседей.

Теперь жду ваш вывод. Понимание задания и как его делать.
0
5 / 5 / 4
Регистрация: 28.02.2017
Сообщений: 25
09.04.2017, 19:35  [ТС]
dondublon, сложно это для меня, буду дальше читать литературу и разбираться. отпишу, когда пойму

Добавлено через 21 час 53 минуты
dondublon, в питоне мантисса float 53 бита. максимальная экспонента = 1024. число с плавающей точкой представляется по формуле x = мантисса*основание степени*показатель степени. Для float возьмем мантиссу = 53 основание степени = 2 и максимальный показатель 1024 => число
Python
1
9527773614770274310965317511181831088175277988394224835491794301359831817691551046033549298087599409119366035633183847955915857747164080992120913823892128592021698351517870719644017638866042988331013396460505305748421986164150532718117394858663843569657577066283073806717204034739424964156273885470083879272448
следующее идущее за ним число не будет уже точно представимо. Или я не прав?
0
77 / 76 / 57
Регистрация: 07.08.2016
Сообщений: 173
09.04.2017, 22:45
yudy, есть в ответе теория, а в комментарии к ответу формула для вычисления такого числа на python:

Python
1
2
3
>>> import sys
>>> sys.float_info.radix**sys.float_info.mant_dig + 1
9007199254740993
Действительно, число 9007199254740993.0 "округляется" вниз до 9007199254740992.0:

Python
1
2
>>> 9007199254740993.0
9007199254740992.0
1
5 / 5 / 4
Регистрация: 28.02.2017
Сообщений: 25
09.04.2017, 22:46  [ТС]
Kir-malishev, не открывается ссылка
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
10.04.2017, 09:19
yudy, тут нет ничего сложного. Мыслите проще.
Нельзя впихнуть невпихуемое. В четыре байта.

Именно питоновское представление чисел вас не интересует, оно там своё.
Вам нужен нативный тип float. В питоне его можно использовать с помощью модуля ctypes.

Последняя подсказка:
Python
1
2
import ctypes
ctypes.c_float(-2000000000).value == ctypes.c_float(-2000000001).value
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2017, 09:19
Помогаю со студенческими работами здесь

Если целое число m делится нацело на целое число n, то вывести на экран частное от деления
Запросите у пользователя два целых числа m и n. Если целое число m делится нацело на целое число n, то вывести на экран частное от деления,...

Дано вещественное число A и целое число N (> 0). Вывести 1 + A + A2 + A3 + + AN. Дано вещественное число A и целое числ
Дано вещественное число A и целое число N (> 0). Вывести 1 + A + A2 + A3 + + AN. Дано вещественное число A и целое число N (> 0)....

Какое минимальное целое количество отрезков получится из данного
дан брусок длинной 20 метров.Напишите программу , которая посчитает ,какое минимальное целое количество отрезка длинной 1,5 и 2 м получится...

Дано вещественное число Х и целое число N (> 0). Найти значение 1 - X2/2 + X4/4 - + (-1)NX2N/(2N)
Дано вещественное число Х и целое число N (> 0). Найти значение 1 - X2/2 + X4/4 - + (-1)NX2N/(2N).

Дано вещественное число A и целое число N. Вычислить заданную сумму:
лллл Вычислить сумму: 1+A+A2+A3+...+An


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru