Предполагая:
- x ≤ 10 000 000.
- 0 ≤ y ≤ 5.
- IEEE-Используется 754 базовых 64-разрядных двоичных числа с плавающей запятой с округлением до ближайшего числа, связанного с четностью.
Тогда результатом деления никогда не будет число, дробная часть которого меньше½, но округляется до ½.
Наибольший результат достигается, когда x = 10 000 000 и y = 0, в этом случае z = 10 000 000,Тогда z имеет 24 бита в своей целочисленной части.Формат с плавающей запятой имеет 53 бита в значении, поэтому 29 остаются доступными для дробной части.Это означает, что любая часть дроби, меньшая ½ - 2 -30 , будет округлена до ½ - 2 -29 или меньше (поскольку биты, доступные для дроби, могут делать различия, которыеотлично - если математический результат меньше ½ - 2 -30 , то представимое значение ближе к нему, чем ½, поэтому используется меньшее значение).
Поэтому толькоточный математический результат с дробью в [½ - 2 -30 , ½) может быть меньше ½, но округлен до ½.Пусть z будет таким значением, и пусть t будет его дробной частью.
Из постановки задачи мы знаем, что z • 10 y - целое число ( x ).Поэтому t • 10 y является целым числом, и, даже если y меньше 5, t • 10 5 - это целое число.
Поскольку t находится в [½ - 2 −30 , ½), t • 10 5 в [(½ - 2 −30 ) • 10 5 , ½ • 10 5 ) = [50 000 - 2 -30 • 10 5 , 50 000) = [50 000 - 0,0000931322574615478515625, 50 000).
Очевидно, что в этом интервале нет целых чисел, поэтому неттакой z существует.