unalone5593
?>

Какие ученые сыграли важную роль в развитии устройств вычислительной техник

Информатика

Ответы

Dom540703174

В своей аналитической машины Чарльз Бэббидж выпустил в свет в 1835 году. Это машина - компьютер общего назначения, считается, использовались и сведения, вносимые программ для перфокарты, а двигатель пара использовались в качестве источника энергии. Кольца для зубов использовались математические операции.

Изначально, идея по Бэббидждің, логарифмические таблицы с большой точностью, необходимо создание печатающих машин. Только затем, с применением перфокарт, эта идея "аналитической машины" до развивались.

Планы определены, что может жеткізілгенімен реализации проекта, определенные при создании машины возникли определенные трудности. Бэббидж поступил в дискуссии с человеком, который в каждом своем несогласии с идеями. Надо вручную все части машин. Тысячи детальдардан машина для выезда детальда стоимость каждой ошибки, поэтому, при более высокой точности изготовления деталей. В результате, между деталей, совершающих содержит автор проекта и специалист, и государственного финансирования

Светлана-Тигран

Задачка мне очень понравилась, прилагаю решение на C#, консольное приложение

Объяснение:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Археологи_строители

{ class Program

   {

       static void Main(string[] args)

       {

           //Объявляем и задаем переменные "M" и "N", а так же переменную для результата

           int M,N=new int();

           int MyResult = 0;

           Console.WriteLine("Ведите Текущее количество ступенек и Сколько их должно быть:");

           M = int.Parse(Console.ReadLine());

           N = int.Parse(Console.ReadLine());

           // Создаем массив для хранения данных о ступенях. M-Количество ступенек, Цифра - для колонок длины и высоты

           int[,] mass = new int[M,2];

           // Запись значений в массив

           for (int x = 0; x < M; x++){

               for (int y = 0; y < 2; y++){

                   if (y==0){  //Чисто для юзерфрендли отображения

                       Console.Write($"Введите значение Длины для ступеньки №{x + 1}= ");} else{

                       Console.Write($"Введите значение Высоты для ступеньки №{x + 1}= ");}

                   mass[x, y] = Convert.ToInt32(Console.ReadLine());}

                   Console.WriteLine();}

           /* Как оказалось, самый простой определить какую же ступеньку надо "поднимать"-

            * это вычислить площадь гипотетически "заполняемого" пространства над ступенькой и взять

            * наименьшее значение.

            *  

            * Итак, допустим если у нас 5 ступенек, то нам нам необходимо записать 4 значения

            * (в рамках лестницы) площади заполняемых ступенек.

            *  

            * Перемножаем Длину ступеньки N на высоту ступеньки N+1, M-1 раз и сохраняем в массив

            */

           int M2 = M; //Дублируем изначальное число ступенек для контроля цикла

           for (int z = 0; z <M2-N; z++)

           {

               int[] acreage = new int[M - 1];

               for (int x = 0; x < M - 1; x++)

               {

                   for (int y = 0; y < 2; y++)

                   {

                       acreage[x] = mass[x, 0] * mass[x + 1, 1];

                   }

               }

               /*

                * И так у нас есть все значения гипотетически заполняемой ступеньки.

                * Ищем минимальное значение площади  

                */

               int minAcreage = acreage[0];

               for (int i = 0; i < M - 1; i++)

               {

                   if (minAcreage > acreage[i])

                   {

                       minAcreage = acreage[i];

                   }

               }

               MyResult = MyResult+minAcreage; //Плюсуем данное значение в переменную результата

               // У нас есть минимальная площадь. Найдем номер данной ступеньки

               int IndexAcreage = Array.IndexOf(acreage, minAcreage);

               //"Достроим нужную нам ступеньку и запишем обновленные данные во временный массив"

               int[,] tempMass = new int[M - 1, 2]; //Он на размер меньше, т.к. и "полных" ступенек у нас стало меньше

               for (int x = 0; x < M - 1; x++)

               {

                   for (int y = 0; y < 2; y++)

                   {

                       //Ступеньки до IndexAcreage мы просто переписываем во временный массив

                       if (x < IndexAcreage)

                       {

                           tempMass[x, y] = mass[x, y];

                       }

                       //2 ступеньки от IndexAcreage мы превращаем в одну (застраивая их блоками)

                       else if (x == IndexAcreage)

                       {

                           tempMass[x, y] = mass[x, y] + mass[x + 1, y];

                       }

                       /* и после IndexAcreage мы та же копируем, но со сдвигом вправо, т.к. полноценных  

                        * ступенек стало меньше

                        */

                       else if (x > IndexAcreage)

                       {

                           tempMass[x, y] = mass[x + 1, y];

                       }

                   }

               }

               M = M - 1; //Поскольку ступенек теперь меньше, то и их фактическое число необходимо уменьшить

               for (int x = 0; x < M + 1; x++)

               {

                   for (int y = 0; y < 2; y++)

                   {

                       mass[x, y] = 0;

                   }

               }

               //переписываем данные в основной массив и запускаем следющую интерацию цикла

               for (int x = 0; x < M; x++)

               {

                   for (int y = 0; y < 2; y++)

                   {

                       mass[x, y] = tempMass[x, y];

                   }

               }

           }

           Console.WriteLine($"Минимально необходимое число блоков: {MyResult}");

           Console.ReadKey(true);

       }

   }

}

MN-Natusik80
Количество информации определяется величиной, показывающей насколько уменьшилось наше незнание в вопросе.
1. Если на светофоре горит желтый свет и мы не знаем, какой свет горел на нем до желтого, то возможны два исхода - зеленый свет и красный свет. Какой бы из них потом не загорелся, мы получим выбор 1 из 2 возможных. А этому соответствует один бит информации.
2. Если на светофоре горит красный свет и это "нормальный светофор", то мы ЗНАЕМ, что после красного света всегда следует желтый. Поэтому при зажигании желтого света наше незнание не меняется, следовательно, мы получаем ноль бит информации.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Какие ученые сыграли важную роль в развитии устройств вычислительной техник
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

gumirovane2294
Мусаев Игоревич371
ASRodichev
notka19746
yurievaalxndra55
Liliya-buc
vettime625
vnolenev
gusrva3001
Дмитрий-Олейникова
Вадимовна
Ofelya1308
mbykovskiy
betepah
imosal