Войти
Регистрация
Спроси ai-bota
В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Показать больше
Показать меньше
uchenica7
25.12.2022 18:34 •
Информатика
Центральний об'єкт на ментальній карті - це...
Показать ответ
Ответ:
Minenub
23.09.2022 06:13
Код написан ниже.
Пример ввода:
4
x100+12mamba+11=barry-3
7x100-4barry=4
barry=x100-2mamba
4=2+2
Пример вывода:
barry=6
mamba=-1
x100=4
#include <iostream>
#include <map>
#include <string>
#include <set>
#include <vector>
#define abs(x) ((x)<0 ? -(x) : (x))
using namespace std;
typedef map<string, double> equation;
equation parseLine(const string &str, set<string> &vars) {
map<string, double> eqn;
bool left_part = true;
size_t i = 0;
while (i < str.length()) {
double n = 0;
bool isNeg = !left_part;
bool isCoeffOmitted = true;
string var = "";
if (str[i] == '='){
left_part = false;
i++;
continue;
}
if ((str[i] == '-') || (str[i] == '+'))
{
if (str[i] == '-') isNeg = !isNeg;
i += 1;
}
while ((i < str.length()) && (str[i] >= '0') && (str[i] <= '9')) {
n = 10 * n + (str[i] - '0');
isCoeffOmitted = false;
i++;
}
if ((i < str.length()) && (str[i] == '.')) {
int exp = 0;
i++;
while ((i < str.length()) && (str[i] >= '0') && (str[i] <= '9')){
n = 10 * n + (str[i] - '0');
exp++;
i++;
}
for (int j = 0; j < exp; n /= 10., j++);
}
while ((i < str.length()) && (str[i] != '+') && (str[i] != '=') && (str[i] != '-')){
var += str[i];
i++;
}
if (isCoeffOmitted) n = 1;
if (isNeg) n = -n;
eqn[var] += n;
vars.insert(var);
}
return eqn;
}
void GaussJordan(vector<equation> &eqns, const vector<string> &vars) {
for (size_t i = 0; i < vars.size(); i++) {
size_t j = i;
while ((j < eqns.size()) && (eqns[j][vars[i]] == 0))
j++;
if (j == eqns.size()) throw "Underdetermined system";
if (j != i) swap(eqns[i], eqns[j]);
double elem = eqns[i][vars[i]];
for (equation::iterator it = eqns[i].begin(); it != eqns[i].end(); it++)
it->second /= elem;
for (j = i + 1; j < eqns.size(); j++){
elem = eqns[j][vars[i]];
for (equation::iterator it = eqns[i].begin(); it != eqns[i].end(); it++)
eqns[j][it->first] -= elem * eqns[i][it->first];
}
}
for (size_t i = vars.size(); i < eqns.size(); i++)
for (equation::iterator it = eqns[i].begin(); it != eqns[i].end(); it++)
if (abs(it->second) > 1e-12) throw "No solutions";
for (size_t i = vars.size() - 1; i > 0; i--) {
for (size_t j = 0; j < i; j++) {
eqns[j][""] -= eqns[j][vars[i]] * eqns[i][""];
eqns[j][vars[i]] = 0;
}
}
}
void printAnswer(vector<equation> &eqns, vector<string> &vars) {
for (size_t i = 0; i < vars.size(); i++)
cout << vars[i] << "=" << -eqns[i][""] << endl;
}
int main() {
set<string> vars;
vector<equation> eqns;
size_t n = 0;
cin >> n;
for (size_t i = 0; i < n; i++) {
string t;
cin >> t;
eqns.push_back(parseLine(t, vars));
}
vars.erase("");
vector<string> vars_list(vars.begin(), vars.end());
try {
GaussJordan(eqns, vars_list);
}
catch (char const *e) {
cout << e;
return 1;
}
printAnswer(eqns, vars_list);
return 0;
}
0,0
(0 оценок)
Ответ:
bozhkosofia
03.06.2023 08:59
Формула Шеннона: I=log2 N (I-кол-во инф-ции; N=всё/нужное)
обозначение:
ч - кол-во четвёрок
т - кол-во троек
д - количество двоек
пятёрок нет
по условию т+д=22
не провалившиеся = ч+22 > log2 3=log2 ((ч+22)/(ч+т))
инф-ный объём сообщения, что тройка = 2 битам >
2=log2 ((ч+22)/т)
Имеем систему трёх уравнений с тремя неизвестными:
т+д=22
log2 3=log2 ((ч+22)/(ч+т))
2=log2 ((ч+22)/т) >log2 4=log2 ((ч+22)/т)
Преобразуем:
система:
т+д=22
3=(ч+22)/(ч+т)
4=(ч+22)/т > ч+22=4т
т+д=22
3ч+3т=ч+22
4т=ч+22
т+д=22
3ч+3т=4т
4т=ч+22
т+д=22
3ч=т
12ч=ч+22
т+д=22
3ч=т
ч=2
ч=2 т=3ч=6 д=22-6=16
всего: 2+6+16=24 абитуриента
ответ 24
0,0
(0 оценок)
Популярные вопросы: Информатика
Саша23458
27.04.2023 10:01
Впрограмме «: =» обозначает оператор присваивания, знаки «+», «-», «*» и «/» — соответственно операции сложения, вычитания, умножения и деления. правила...
ksdkjxddjcksmsfmkf
09.08.2020 13:28
Создать массив дробных чисел, не менее чем одинарной точности из 30 элементов. Пользователь должен внести числа самостоятельно. Найти количество элементов, значение...
Енотик83
30.01.2023 02:58
Пример таблицы объекты-объекты-один !...
jernova
20.10.2021 15:04
В трехзначном числе x зачеркнули его вторую цифру. Когда к образованному при этом двузначному числу слева приписали вторую цифру числа x, то полу- чилось число n....
Kiska41384
17.08.2020 17:10
Составить заполнения массива случайными числами в диапазоне 0-100 и определяет количество четных элементов массива....
nata04021980
02.11.2021 23:03
Выполняем на компьютере Вычислите значения данных выражений на языке Python.1. 3+4*5*2+72. 12-6*2+93. 25/5+9*2Выслать скрин или вставить в конец этого...
polisorb2
12.04.2023 17:02
Для чого використовують атрибут - тега ?...
morugadenys
17.02.2020 14:09
STATUE Nowadays you see living statues all over the world.They wear elaborate costumes and body paint, andstand without moving for hours. But what s it like? Is itdifficult?...
miras39
23.11.2022 21:34
4тапсырма . (Орында ) сөзін - Нақ осы шақта жіктеңіз . (Настоящее время глагола ) ...
Группа134ПО
09.02.2020 03:57
1 Бірнеше мемлекетті байланыстырған сауда жолы қалай аталады? 2 Сауда жолындағы басты тауар не? 3 Бұл жол қай елден басталады? 4 Түркістанның бұрынғы атауы? 5 Мұсылмандар...
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку
О НАС
О нас
Блог
Карьера
Условия пользования
Авторское право
Политика конфиденциальности
Политика использования файлов cookie
Предпочтения cookie-файлов
СООБЩЕСТВО
Сообщество
Для школ
Родителям
Кодекс чести
Правила сообщества
Insights
Стань помощником
ПОМОЩЬ
Зарегистрируйся
Центр помощи
Центр безопасности
Договор о конфиденциальности полученной информации
App
Начни делиться знаниями
Вход
Регистрация
Что ты хочешь узнать?
Спроси ai-бота
Пример ввода:
4
x100+12mamba+11=barry-3
7x100-4barry=4
barry=x100-2mamba
4=2+2
Пример вывода:
barry=6
mamba=-1
x100=4
#include <iostream>
#include <map>
#include <string>
#include <set>
#include <vector>
#define abs(x) ((x)<0 ? -(x) : (x))
using namespace std;
typedef map<string, double> equation;
equation parseLine(const string &str, set<string> &vars) {
map<string, double> eqn;
bool left_part = true;
size_t i = 0;
while (i < str.length()) {
double n = 0;
bool isNeg = !left_part;
bool isCoeffOmitted = true;
string var = "";
if (str[i] == '='){
left_part = false;
i++;
continue;
}
if ((str[i] == '-') || (str[i] == '+'))
{
if (str[i] == '-') isNeg = !isNeg;
i += 1;
}
while ((i < str.length()) && (str[i] >= '0') && (str[i] <= '9')) {
n = 10 * n + (str[i] - '0');
isCoeffOmitted = false;
i++;
}
if ((i < str.length()) && (str[i] == '.')) {
int exp = 0;
i++;
while ((i < str.length()) && (str[i] >= '0') && (str[i] <= '9')){
n = 10 * n + (str[i] - '0');
exp++;
i++;
}
for (int j = 0; j < exp; n /= 10., j++);
}
while ((i < str.length()) && (str[i] != '+') && (str[i] != '=') && (str[i] != '-')){
var += str[i];
i++;
}
if (isCoeffOmitted) n = 1;
if (isNeg) n = -n;
eqn[var] += n;
vars.insert(var);
}
return eqn;
}
void GaussJordan(vector<equation> &eqns, const vector<string> &vars) {
for (size_t i = 0; i < vars.size(); i++) {
size_t j = i;
while ((j < eqns.size()) && (eqns[j][vars[i]] == 0))
j++;
if (j == eqns.size()) throw "Underdetermined system";
if (j != i) swap(eqns[i], eqns[j]);
double elem = eqns[i][vars[i]];
for (equation::iterator it = eqns[i].begin(); it != eqns[i].end(); it++)
it->second /= elem;
for (j = i + 1; j < eqns.size(); j++){
elem = eqns[j][vars[i]];
for (equation::iterator it = eqns[i].begin(); it != eqns[i].end(); it++)
eqns[j][it->first] -= elem * eqns[i][it->first];
}
}
for (size_t i = vars.size(); i < eqns.size(); i++)
for (equation::iterator it = eqns[i].begin(); it != eqns[i].end(); it++)
if (abs(it->second) > 1e-12) throw "No solutions";
for (size_t i = vars.size() - 1; i > 0; i--) {
for (size_t j = 0; j < i; j++) {
eqns[j][""] -= eqns[j][vars[i]] * eqns[i][""];
eqns[j][vars[i]] = 0;
}
}
}
void printAnswer(vector<equation> &eqns, vector<string> &vars) {
for (size_t i = 0; i < vars.size(); i++)
cout << vars[i] << "=" << -eqns[i][""] << endl;
}
int main() {
set<string> vars;
vector<equation> eqns;
size_t n = 0;
cin >> n;
for (size_t i = 0; i < n; i++) {
string t;
cin >> t;
eqns.push_back(parseLine(t, vars));
}
vars.erase("");
vector<string> vars_list(vars.begin(), vars.end());
try {
GaussJordan(eqns, vars_list);
}
catch (char const *e) {
cout << e;
return 1;
}
printAnswer(eqns, vars_list);
return 0;
}
обозначение:
ч - кол-во четвёрок
т - кол-во троек
д - количество двоек
пятёрок нет
по условию т+д=22
не провалившиеся = ч+22 > log2 3=log2 ((ч+22)/(ч+т))
инф-ный объём сообщения, что тройка = 2 битам >
2=log2 ((ч+22)/т)
Имеем систему трёх уравнений с тремя неизвестными:
т+д=22
log2 3=log2 ((ч+22)/(ч+т))
2=log2 ((ч+22)/т) >log2 4=log2 ((ч+22)/т)
Преобразуем:
система:
т+д=22
3=(ч+22)/(ч+т)
4=(ч+22)/т > ч+22=4т
т+д=22
3ч+3т=ч+22
4т=ч+22
т+д=22
3ч+3т=4т
4т=ч+22
т+д=22
3ч=т
12ч=ч+22
т+д=22
3ч=т
ч=2
ч=2 т=3ч=6 д=22-6=16
всего: 2+6+16=24 абитуриента
ответ 24