Rdamir2008
16.10.2021 21:42

Питон. Азы программирования. Задача в том, чтобы в питоне считать
весь текст и разбить его на части, каждая из которых по возможности не
превышала бы 1000 символов, при этом разбивать абзацы (строки) на
части нельзя.

Представим, что мы считали текст, который состоит из строк следующей
длины:
100
500
300
600
1100
50
Тогда мы должны были бы его разбить на 4 части:
1 из первых трех строк (100+500+300)
2 из четвертой строки (600)
3 из пятой строки (1100)
4 из шестой строки (50).
Мы только ввод и запись файлов, цикл for, списки, range и несколько других штук для начинающих, поэтому хотелось бы получить максимально простой и понятный ответ.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
psossl
08.06.2020 02:35

Можно решать через формулы для количества информации в сообщении, записанном алфавитом с известным количеством символов.

Здесь алфавит- это набор всех возможных значений показаний прибора (каждое из возможных показаний- один из символов алфавита). Значит, мощность алфавита равна:

\mbox{\mathversion{bold} $N=100}  символов

Было сделано 50 измерений, и соответственно записано 50 значений показаний прибора. Каждая из этих записей- это один символ, записанный в сообщении. Значит, длина сообщения равна:

\mbox{\mathversion{bold} $K=50}  символов

Далее, количество информации в одном символе ( \mbox{\mathversion{bold} $i} ) можно найти двумя путями:

1) Через формулу  \mbox{\mathversion{bold} \displaystyle N=2^{\,i}} .   Просто подбираем (по таблице степеней двойки или считая на калькуляторе) такое минимальное целое значение \mbox{\mathversion{bold} $i} , чтобы два в этой степени дало значение не меньше чем \mbox{\mathversion{bold} $N=100}  символов. Например:

\mbox{\mathversion{bold} \displaystyle 2^6=64}  (меньше чем 100, не хватит для всех символов нашего алфавита)

\mbox{\mathversion{bold} \displaystyle 2^7=128}  (не меньше 100, достаточно для хранения всех 100 значений)

То есть, минимальная нужная нам степень равна 7. Значит, количество информации в одном символе (для нашего алфавита) равно:

\mbox{\mathversion{bold} $i = 7}  бит

2) Если вы уже проходили формулу расчёта через двоичный логарифм, то можно считать по ней. При этом, двоичный логарифм (которого может не быть в калькуляторе) можно заменить отношением десятичных либо натуральных логарифмов:

\mbox{\mathversion{bold} \displaystyle i=\log_2 N=\log_2 100=\frac{\lg 100}{\lg 2}=\frac{\ln 100}{\ln 2}}=6{,}64...

Раз получилось дробное значение, то выбираем следующее целое (большее, чем полученное по расчёту). То есть, число 7. Другими словами, округляем до целых, но не как обычно, а всегда в большую сторону. Опять же, мы получили, что:

\mbox{\mathversion{bold} $i = 7}  бит

Далее, считаем количество информации в сообщении (информационный размер сообщения):

\mbox{\mathversion{bold} $I=K\cdot i=50\cdot7=350}  бит

Переводим в байты:

\mbox{\mathversion{bold} $I=350:8=43{,}75}  Б

Это значение тоже можно было бы округлить до целых (всегда в большую сторону), ведь при хранении чаще всего хранят целое число байт. Но, в задаче не сказано про именно целое число байт, поэтому не будем округлять.

ответ: 43,75 байт

0,0(0 оценок)
Ответ:
zadyriakaartem
20.01.2022 13:33

#include "stdafx.h"

#include <iostream>

using namespace std;

int main()

{

setlocale (LC_ALL, "RUS");

int i,j,N,M,a[20][20];

cout<<"N="; //ввод количества строк

cin>>N;

cout<<"M="; //ввод количества столбцов

cin>>M;

cout<<"Input matrix A \n";

//цикл по переменной i, в которой перебираем строки матрицы

for (i=0; i<N; i++)

//цикл по переменной j, в котором перебираем элементы внутри строки

for (j=0; j<M; j++)

cin>>a[i][j]; //ввод очередного элемента матрицы

cout<<"matrix A \n";

for (i=0; i<N; i++)

{

//цикл по переменной i, в котором перебираем строки матрицы

for (j=0; j<M; j++)

cout<<a[i][j]<<"\t"; //вывод очередного элемента матрицы

cout<<endl; //переход на новую строку после вывода всех элементов строки

}

system("pause");

return 0;

}

Объяснение:

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота