М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
tiomashash
tiomashash
23.02.2021 20:42 •  Информатика

Послідовно вводиться 7 довільних цілих чисел. Вивести на екран парні Python. Информатика 8 класс

👇
Открыть все ответы
Ответ:

#Задача 8

n = int(input('Введите число n: '))

factorial = 1

for i in range(1, n+1):

   factorial *= i

print(factorial)

#Задача 9

def divide(n):

   while n > 1:

       if n % 3 != 0:

           return False

       n //= 3

   return True

print(divide(3))

print(divide(4))

print(divide(27))

#Задача 10

import math

n = int(input('Введите число n: '))

x = math.prod(range(n, 0, -2))

print(x)

Объяснение:

В 9ой задаче код:

print(divide(3))

print(divide(4))

print(divide(27))

просто для теста делал где видно что работает

4,4(60 оценок)
Ответ:
aisylu0706
aisylu0706
23.02.2021

Объяснение:

в числах одинарной точности на знак отводится 1 бит, на экспоненту - 8, на мантиссу - 23.

в нормализованных числах старший бит всегда равен единице и он не записывается в число, поэтому реально мантисса для таких чисел имеет размер 24 бита.

к экспоненте перед записью добавляется число 127.

для начала запишем знак числа. если число положительное - запишем в знак 0, если отрицательное - 1 и отбросим знак числа для дальнейших вычислений.

далее приведем число к такому виду, что перед запятой в двоичной записи у него только единица (если изначальное число 0 - оно имеет специальную запись 0 00000000 00000000000000000000000₂)

для этого либо умножаем число на 2 пока оно не станет >= 1, если оно меньше 1, либо делим на 2 пока оно все еще >= 1.

если умножаем - в экспоненту пойдет отрицательное число умножений. если делим - положительное число делений.

потом получившееся число умножаем на 2²³ (8388608), округляем до ближайшего целого и отбрасываем старший бит. результат записываем в мантиссу.

0,5 - положительное, в знак 0

0,5 < 1, умножаем его на 2, пока оно не станет >= 1. получилось 1 за 1 умножение. в экспоненту пойдет -1

мантисса = 1*8388608 = 100000000000000000000000₂. отбрасываем старший бит. получается 000000000000000000000000₂

записываем:

знак = 0 (число положительное)

в экспоненте 127 - 1 = 126 = 01111110₂

в мантиссе 000000000000000000000000₂ (без старшей единицы),

получаем:

0 01111110 00000000000000000000000₂

25,12 положительное. в знак 0

25,12 делим на 2, пока >= 1. получаем 1,57 за 4 деления (если поделим еще раз, будет уже 0,785 < 1). в экспоненту пойдет +4.

1,57 * 8388608 = 13170114,56. округляем, получаем 13170115 = 110010001111010111000011₂

отбрасываем старший бит, получаем 10010001111010111000011₂

записываем

знак = 0

экспонента = 127+4 = 10000011₂

мантисса = 10010001111010111000011₂

получаем:

0 10000011 10010001111010111000011₂

-25,12 отрицательное, записываем в знак единицу, далее отбрасываем знак числа и считаем ровно как в предыдущем примере

1 10000011 10010001111010111000011₂

-3456,1. в знак единица, отбрасываем знак.

3456,1 > 1. делим на 2¹¹. получаем 1.687548828125, в экспоненту 11

1.687548828125 * 8388608 = 14156185.6. округляем. 14156186 = 110110000000000110011010₂, отбрасываем старшую единицу: 10110000000000110011010₂

знак 1

экспонента 127 + 11 = 10001010₂

мантисса 10110000000000110011010₂

результат 1 10001010 10110000000000110011010₂

с денормализованными числами работают иначе. если интересно (в чем я сомневаюсь :)), пишите в комментарии.

4,6(18 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ