• Предмет: Информатика
  • Автор: sabinazxc
  • Вопрос задан 4 месяца назад

Растровое изображение рамером 512 на 250 пикселей, созданное с помощью палитры на 256 цветов.
передали по каналу связи со скоростью 5 Мбит/с. За сколько секунд передалось данное изображение?

Ответы

Ответ дал: nullptr53
0

Ответ:

Вот даже код который передает по сокету изображение и расчитывает ответ на указанный вопрос. Жаль что сокет и канал связи все таки имеют отличия иначе я бы очень точно это рассчитал. А так ответ:

import asyncio

from PIL import Image

import socket

import os

import time

async def handle_client(reader, writer):

# Размер изображения

image_width = 512 # ширина в пикселях

image_height = 250 # высота в пикселях

bits_per_pixel = 8 # количество бит на пиксель (палитра из 256 цветов)

# Размер файла изображения в битах

image_size_bits = image_width * image_height * bits_per_pixel

# Конвертируем скорость передачи из Мбит/с в байты/сек

transfer_speed_mbps = 5

transfer_speed_bps = transfer_speed_mbps * 1e6 # 1 Мбит/с = 1e6 бит/с

# Рассчитываем время передачи в секундах

transfer_time_seconds = image_size_bits / transfer_speed_bps

print(f"Размер изображения: {image_width}x{image_height} пикселей")

print(f"Скорость передачи: {transfer_speed_mbps} Мбит/с")

print(f"Время передачи изображения: {transfer_time_seconds:.2f} секунд")

# Открываем и отправляем файл изображения по соксу

async def main():

# Определяем IP-адрес и порт сервера

server_ip = "127.0.0.1"

server_port = 25565

# Создаем изображение с помощью Pillow

image = Image.new("P", (512, 250))

palette = []

for i in range(256):

palette.extend((i, i, i))

image.putpalette(palette)

# Сохраняем изображение

image.save("image.png")

# Создаем сервер

server = await asyncio.start_server(

handle_client, server_ip, server_port)

print(f"Сервер запущен на {server_ip}:{server_port}")

reader, writer = await asyncio.open_connection(server_ip, server_port)

# Отправьте запрос на получение изображения

writer.write(b"GetImage") # Простой запрос, можете использовать свой протокол

# Создайте файл для сохранения полученного изображения

with open("image.png", "wb") as file:

while True:

data = await reader.read(1024)

if not data:

break

file.write(data)

# Закройте соединение с сервером

writer.close()

await writer.wait_closed()

async with server:

await server.serve_forever()

if __name__ == "__main__":

asyncio.run(main()

Точный ответ - 0.204

Приложения:

nullptr53: не за что. я же не смог помочь
Аноним: То, что я написал, правильно. Если ошибка и есть, то только в условии твоей задачи, которую ты написал.
sabinazxc: Насчет условия всё правильно, но возможно сама программа ошиблась в числах, не знаю. А ещё, не смотря на то, что не правильно, всё равно спасибо
Аноним: Объясняю. Размер картинки = 512*250 точек. Точка занимает log2(256) / 8 = 1 байт. Итого 128000 байтов. Скорость передачи = 5 МБ/с = 5242880 Б/с. Итого: 128000 / 5242880 = 0,0244140625 точно.
nullptr53: сорри ребят? вы про того чмошника что всех хохлами обзывает? наверное думает что я русский, будучи украинцем. хз я его заблокал
Аноним: Если и этот ответ тебе не подошёл, то тебя даже на фронт не возьмут, потому что собаки побрезгуют такого тупого xoxла жрать.
sabinazxc: Хз о чем вы, я лично гадаю на картах как решить это
Аноним: А кто ты, если не xoxoл, и что делаешь на xoxляцком сайте?
sabinazxc: Сорри мен, это приложение создано для всех, а не только для хохлов
Аноним: Да, это приложение нагло суёт всем в лицо xoxлопиgopскую пропаганду.
Вас заинтересует