Как найти среднее арифметическое двоичных чисел

Перейти к контенту

ГДЗ § 12. Арифметические операции в позиционных системах счисления

§ 12. Арифметические операции в позиционных системах счисления ГДЗ по Информатике для 10 класса. Босова.


6. Найдите среднее арифметическое следующих чисел:

1) 100101102, 11001002 и 1100102;
2) 2268, 6416 и 628.

Ответ

1) переводим из 2 в 10 систему, получаем числа 150,100,50, складываем,
150 + 100 + 50 = 300
делим на количество чисел, то есть на 3.
Ответ: 100

2) тоже переводим все числа в 10 систему, получаем 150, 100 и последнее число уже дано в 10. 
150 + 100 + 62 = 312
делим на количество, то есть на 3, получаем 312 : 3 = 104
Ответ: 104


Задачи
по теме «Системы счисления»

                                        Примеры
решения

Задание
№1.
 
Сколько значащих цифр в записи десятичного числа 357 в системе
счисления с основанием 3? 

Решение: 
Переведём число 35710 в троичную систему счисления: 
pic11.jpg 
Итак, 35710 = 1110203. Число 1110203 содержит 6
значащих цифр. 

Ответ: 6.  

Задание
№2.
 
Дано А=A715, B=2518. Какое из чисел C, записанных в двоичной
системе, отвечает условию A<c<b? 

1) 101011002 
2) 101010102 
3) 101010112 
4) 101010002 
Решение: 
Переведём числа А=A715 и B=2518 в двоичную систему
счисления, заменив каждую цифру первого числа соответствующей тетрадой, а
каждую цифру второго числа – соответствующей триадой: A715= 1010 01112;
2518 = 010 101 0012. 

Условию a<b<c Ответ: 101010002 (вариант 4). 


Задание №3.
 
На какую цифру оканчивается запись десятичного числа 123 в
системе счисления с основанием 6? 

Решение: 
Переведём число 12310 в систему счисления с основанием
6: 

pic12.jpg 
12310 = 3236. 
Ответ: Запись числа 12310 в системе счисления с основанием
6 оканчивается на цифру 3. 

Задания на выполнение арифметических действий над числами,
представленными в разных системах счисления 

Задание №4.

 
Вычислите сумму чисел X и Y, если X=1101112, Y=1358. Результат
представьте в двоичном виде. 

1) 100100112 2) 100101002 3) 110101002 4)
101001002 

Решение: 
Переведём число Y=1358 в двоичную систему счисления,
заменив каждую его цифру соответствующей триадой: 001 011 1012. Выполним
сложение: 

pic13.jpg 
Ответ: 100101002 (вариант 2). 

Задание №5.

 
Найдите среднее арифметическое чисел 2368, 6С16 и 1110102.
Ответ представьте в десятичной системе счисления. 

Решение: 
Переведём числа 2368, 6С16 и 1110102 в десятичную
систему счисления: 

pic14.jpg 
Вычислим среднее арифметическое чисел: (158+108+58)/3 =
10810. 

Ответ: среднее арифметическое чисел 2368, 6С16 и
1110102 равно 10810. 

Задание №6.

 
Вычислите значение выражения 2068 + AF16 ? 110010102. Вычисления
производите в восьмеричной системе счисления. Переведите ответ в десятичную
систему. 

Решение: 
Переведём все числа в восьмеричную систему счисления: 
2068 = 2068; AF16 = 2578; 110010102 = 3128 
Сложим числа: 
pic15.jpg 
Переведём ответ в десятичную систему: 
pic16.jpg 
Ответ:51110. 

Задания на нахождение
основания системы счисления 


Задание №7.
 
В саду 100q фруктовых деревьев: из них 33q яблони,
22q груши, 16q слив и 17q вишен. Найдите основание системы
счисления, в которой посчитаны деревья. 

Решение: 
Всего в саду 100q деревьев: 100q =
33q+22q+16q+17q. 

Пронумеруем разряды и представим данные числа в развёрнутой
форме: 

pic17.jpg 
Ответ: Деревья посчитаны в системе счисления с основанием
9. 

Задание №8.

 
Найдите основание x системы счисления, если известно, что
2002x = 13010. 

Решение: 
Пронумеруем разряды и запишем данные числа в развёрнутой
форме: 

pic19.jpg 
Ответ:4.

Задание
№9.
 
В системе счисления с некоторым основанием десятичное число 18
записывается в виде 30. Укажите это основание. 

Решение: 
Примем за х основание неизвестной системы счисления и составим
следующее равенство: 

1810 = 30x; 
Пронумеруем разряды и запишем данные числа в развёрнутой
форме: 

pic18.jpg 
Ответ: десятичное число 18 записывается в виде 30 в системе
счисления с основанием 6. 


13

1 ответ:



0



0

А) переводим из 2 в 10 систему, получаем числа 150,100,50, складываем,
150 + 100 + 50 = 300
делим на количество чисел, то есть на 3.
Ответ: 100
б) тоже переводим все числа в 10 систему, получаем 150, 100 и последнее число уже дано в 10. 
150 + 100 + 62 = 312
делим на количество, то есть на 3, получаем 312 : 3 = 104
Ответ: 104

Читайте также

<span>Uses
 
CRT;

Const
 
nmax=40;
 
mmax=40;

var
 a,b:array[1..nmax,1..mmax] of integer;
 
i,j,n,m:integer;

begin

ClrScr;

repeat
 
write(‘N:=’);
 
Readln(n);

until n in [1..nmax];

repeat
 
write(‘M:=’);
 
Readln(m);

until m in [1..mmax];
writeln(‘Исходный массив: ‘);

randomize;

for i:=1 to n do

begin
 
for j:=1 to m do
 begin
 
a[i,j]:=random(10)-3;
 
write(a[i,j]:5);
 
b[i,j]:=a[i,j]*a[i,j]*a[i,j];
 
end;

writeln;

end;

writeln(‘Результирующий массив: ‘);

for i:=1 to n do

begin
 
for j:=1 to m do
 
begin
 
write(b[i,j]:5);
 
end;

writeln;

end;

readkey

end.</span>

Давайте будем кодировать температуры от 0 до 64 градусов, а потом просто вычитать из них 30. Чтобы закодировать число от 0 включительно до 64 исключительно необходимо 6 бит (2 в 6-ой = 64). Если мы хотим кодировать включительно нам потребуется 7 бит.

Винчестер
…………….

Конъюнкция, дизъюнкция, импликация, тавтология.

В начале был С. С++ стал его расширением. Добавились классы, шаблоны, ссылочный тип, явно появились виртуальные функции, расширился набор стандартных библиотек.

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

1. Выполните арифметические операции над двоичными числами:
1) 10010011 + 101101;
2) 110010,11 + 110110,11;
3) 110101110 — 10111111;
4) 111110 • 100010;
5) 11111100101 : 101011.

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

2. Какое число следует за каждым из данных:

1) 2234; 2) 6778; 3) 22223; 4) 10012?

Ответ для каждого числа дайте в указанной и десятичной системах счисления.

Самостоятельно.

3. Какое число предшествует каждому из данных:

1) 2223; 2) 10005; 3) 2334; 4) 10012?

Ответ для каждого числа дайте в указанной и десятичной системах счисления.

Самостоятельно.

4. Сумму восьмеричных чисел 17 + 1700 + 170000 + 17000000 + 1700000000 перевели в шестнадцатеричную систему счисления. Найдите в шестнадцатеричной записи числа, равного этой сумме, пятую цифру слева.

5. Вычислите значение выражения:

1) (11111012 + AF16) : 368;
2) 1258 + 111012 • А216 — 14178.

6. Найдите среднее арифметическое следующих чисел:

1) 100101102, 11001002 и 1100102;
2) 2268, 6416 и 628.

7. В примерах на сложение восстановите неизвестные цифры, обозначенные знаком вопроса, определив вначале, в какой системе счисления эти числа записаны.

Самостоятельно.

8. Даны 4 целых числа, записанные в двоичной системе счисления:

11000000, 11000011, 11011001, 11011111.

Сколько среди них чисел, больших, чем АВ16 + 258?

9. Сколько единиц в двоичной записи числа 42014 + 22015 — 9?

*10. Сколько единиц в двоичной записи числа 84024 — 416O5 + 21024 — 126?

11. Сколько цифр в восьмеричной записи числа 21024 + 21026?

12. Какая первая цифра в шестнадцатеричной записи числа 21024 + 21025?

agata172

0 / 0 / 0

Регистрация: 10.04.2020

Сообщений: 39

1

Среднее арифметическое значение всех листьев бинарного дерева

10.01.2021, 00:43. Показов 3672. Ответов 5

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Бинарное дерево поиска , мой код:
/*12. Напишите программу, которая формирует бинарное дерево поиска, выводит построенное дерево на экран.
Данные могут вводиться с клавиатуры, из файла или генерироваться с помощью генератора случайных чисел.
Выбор способа ввода данных выполняется во время работы программы. В построенном дереве необходимо подсчитать среднее арифметическое листьев дерева.
Для реализации АТД «Дерево» используйте динамическое распределение памяти. Перед завершением работы программы освободить занимаемую динамическую память.
Для этого используйте поэлементное удаление элементов динамической структуры данных.*/

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
#include "лаб.4.h"
using namespace std;
 
struct Node
{
    int data;
    Node* left;
    Node* right;
};
    /*возвращает указатель на новый созданный объект*/
  Node* Add(Node* node, int k)
   {
    
      if (node == NULL)
      {
          node = new Node;
          node->data = k;
          node->left = NULL;
          node->right = NULL;
      }
      else if (k < node->data)
      {
          node->left = Add(node->left, k);
          cout <<  " node->left " << node->left  << endl;
      }
      else
      {
          node->right = Add(node->right, k);
          cout << " node->right " << node->right <<endl;
      }
       return node;
  }
  void DeleteTree(Node* node)
  {
      if (node != NULL)
      {
          Node* p;
          DeleteTree(node->left);
          DeleteTree(node->right);
          p = node;
          node = NULL;
          delete p;
      }
  }
  void Arithmetic(Node* node, int *sum)
  {
      if (!node) { return; }
      if (!node->left && !node->right)
      {
         
          *sum += node->data;
      }
 
      Arithmetic(node->left, sum);
      Arithmetic(node->right, sum);
     
  }
 
 
 
  void PrintTree(Node* node, int h)//h-на каком уровне находится узел.Корень находится на уровне 0.
  {
      if (node != NULL)
      {
          PrintTree(node->right, h + 1);
          cout << "node->right=" << node->right <<" "<<"h="<<h<<endl;
          for (int i = 0; i < h; i++) cout << " ";//Перед значением узла для имитации структуры дерева выводится количество пробелов, пропорциональное уровню узла.
          cout << node->data << endl;
          PrintTree(node->left, h + 1);
          cout <<"node->left="<< node->left << " " << "h=" << h << endl;
      }
 
  }
 
 
int main()
{
    setlocale(LC_ALL, "rus");
    int k=0,num=0,a;
    Node* BinaryTree = NULL;;
    cout << "Как считывать данные?" << endl;
    cout << "1. Ввод с клавиатуры" << endl;
    cout << "2. Ввод из файла" << endl;
    cout << "3. Ввод с помощью генератора случайных значений" << endl;
    cout << "Выберите: ";
    cin >> k;
 
    if (k == 1)
    {
        cout << "Какое количество чисел хотите ввести?" << endl;
        cin >> num;
        while (num)
        {
            cout << "Введите: " << endl;
            cin >> a;
            BinaryTree = Add(BinaryTree, a);
            num--;
        }
    }
    int sum = 0, rezalt=0,kol=0;
    cout<<" Двоичное дерево:n";
    //PrintTree(BinaryTree, 0);
    Arithmetic(BinaryTree, &sum);
    cout << sum;

————————————
как мне вместо суммы посчитать среднее арифм. значение? подскажите пожалуйста



0



Мозгоправ

1739 / 1033 / 468

Регистрация: 01.10.2018

Сообщений: 2,138

Записей в блоге: 2

10.01.2021, 01:09

2

Цитата
Сообщение от agata172
Посмотреть сообщение

как мне вместо суммы посчитать среднее арифм. значение?

По определению. Сумму разделить на количество чисел.



0



Catstail

Модератор

Эксперт функциональных языков программированияЭксперт Python

35559 / 19459 / 4071

Регистрация: 12.02.2012

Сообщений: 32,497

Записей в блоге: 13

10.01.2021, 09:01

3

Лучший ответ Сообщение было отмечено agata172 как решение

Решение

agata172, мне что-то не нравится твой алгоритм подсчета суммы

C++
1
2
3
4
5
6
7
8
9
10
void Arithmetic(Node* node, int *sum)
{
     if (!node) { return; }
     if (!node->left && !node->right) // если нет обоих потомков (т.е. стоим на листе), то учтем значение
     {                                             // а если потомки есть?
        *sum += node->data;
     }
     Arithmetic(node->left, sum);
     Arithmetic(node->right, sum);
}

Не лучше ли так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void summa(Node* node, int *sum)
{
     if (!node) { return; }
     summa(node->left,sum);
     summa(node->right,sum);
     *sum += node->data;
}
void count(Node* node, int *num)
{
     if (!node) { return; }
     count(node->left,num);
     count(node->right,num);
     (*num)++;
}
double average(Node* node)
{
      int s=0,c=0;
      summa(node,s);
      coount(node,c);
      return ((double)s)/((double)c);
}

А можно и совместить…



1



Мозгоправ

1739 / 1033 / 468

Регистрация: 01.10.2018

Сообщений: 2,138

Записей в блоге: 2

10.01.2021, 16:15

4

Цитата
Сообщение от Catstail
Посмотреть сообщение

void count(Node* node, int *num)

Там вроде количество узлов известно изначально. Не?
Ну или при построении дерева можно посчитать…



0



Модератор

Эксперт функциональных языков программированияЭксперт Python

35559 / 19459 / 4071

Регистрация: 12.02.2012

Сообщений: 32,497

Записей в блоге: 13

10.01.2021, 16:33

5

Цитата
Сообщение от L0M
Посмотреть сообщение

Ну или при построении дерева можно посчитать…

— я решал задачу, в которой: 1) изестна структура дерева 2) мне дан указатель на уже кем-то (не знаю кем) построенное дерево.



0



oleg-m1973

6577 / 4562 / 1843

Регистрация: 07.05.2019

Сообщений: 13,726

10.01.2021, 18:51

6

Цитата
Сообщение от agata172
Посмотреть сообщение

В построенном дереве необходимо подсчитать среднее арифметическое листьев дерева.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int Arithmetic(const Node* node, int &n)
{
    if (!node) 
        return 0;
 
    ++n;
    return node->data + Arithmetic(node->left, n) + Arithmetic(node->right, n);
}
 
int Arithmetic(const Node *node)
{
    if (!node)
        return 0;
 
    int n = 1;
    const int sum = node->data + Arithmetic(node->left, n) + Arithmetic(node->right, n);
    return sum / n;
}

Добавлено через 1 минуту

Цитата
Сообщение от agata172
Посмотреть сообщение

cout<<» Двоичное дерево:n»;
    //PrintTree(BinaryTree, 0);
    Arithmetic(BinaryTree, &sum);
    cout << sum;

C++
1
std::cout << "Mean: " << Arithmetic(BinaryTree) << std::endl;

Добавлено через 4 минуты

Цитата
Сообщение от agata172
Посмотреть сообщение

void DeleteTree(Node* node)

C++
1
2
3
4
5
6
7
8
9
void DeleteTree(Node *node)
{
    if (!node)
        return;
 
    DeleteTree(node->left);
    DeleteTree(node->right);
    delete node;
}



1



Понравилась статья? Поделить с друзьями:
  • Как найти момент инерции формулы
  • Как найти какая у меня группа крови
  • Как найти грамотного психотерапевта
  • Как найти выживших dead space 3
  • Не оптимальный режим работы монитора как исправить 1680 1050