Форум программистов, компьютерный форум, киберфорум
Комбинаторика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
3 / 2 / 0
Регистрация: 04.06.2019
Сообщений: 62

Сколько существует неотрицательных целых решений уравнения

18.12.2019, 23:20. Показов 6438. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сколько существует неотрицательных целых решений уравнения
x1 + x2 + x3 + x4 + x5 + x6 + x7 = 40, таких, что

x1 <= 2, x2 >= 2, x3 <= 3, x4 > 2, x5 <= 4, x6 > 3, x7 <= 5?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.12.2019, 23:20
Ответы с готовыми решениями:

Сколько существует решений уравнения x1 + x2 + … + x55 = 25 в целых числах, где xi ≥ -3?
добрый вечер, как решать данную задачу Сколько существует решений уравнения x1 + x2 + … + x55 = 25 в целых числах, где xi ≥ -3?

Сколько целых неотрицательных решений имеет уравнение?
В связи с этой темой https://www.cyberforum.ru/combinatorics/thread1983768.html#post10583125 возник следующий вопрос. Сколько целых...

Сколько решений в целых неотрицательных числах имеет уравнение
Сколько решений в целых неотрицательных числах имеет уравнение х1+х2+х3+х4+х5+12?

4
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
19.12.2019, 00:20
Конечно, надо сразу свести к такому
x1 + .... x7 = 31
где ограничения остаются только для x1,x3, x5, x7
Написать программку несложно (перебор 360 вариантов)
Аналитическая формула, кажется, существует. Но он - многоэтажная ...
0
3 / 2 / 0
Регистрация: 04.06.2019
Сообщений: 62
22.12.2019, 01:02  [ТС]
Байт, правильная реализация?
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <fstream>
 
 
 
int n;
int *x_min;
int *x_max;
int *x_tek;
 
 
std::ofstream fout;
 
 
void func_show(void)
{
    for (int i = 0; i < 5; i++)  fout << x_tek[i] + x_min[i]<<" ";
    fout << x_tek[6] + x_min[6]<<" ";
    fout << x_tek[5] + x_min[5] << std::endl;
 
}
 
 
void func_generator(int level, int nakop)
{
    if (level == 6)
    {
        //все, мы получили одно из решений
        int xx = n - nakop;
        x_tek[level] = xx;
        func_show();
    }
 
    else
    {
        for (int ii = 0; ((ii <= n - nakop) && (ii <= x_max[level]));ii++)
        {
            x_tek[level] = ii;
            func_generator(level + 1, nakop + ii);
 
        }
 
 
    }
}
 
 
 
    //////////////////////
 
 
 
 
 
int main()
{
    std::cout << "x1+x2+x3+x4+x5+x6+x7=40 !\n"; 
 
 
    n = 40;
    // 1. закладываем условия в массив  минимальное значение xi -   максимальное значение xi.  если не знаем минимальное - то пишем 0
    // если не знаем максимальное - то пишем 40   выражение x>3  -  приводим к виду x>=4  и пишем 4 в минимальное значение. !Это важно
    x_min = new int[8];
    x_max = new int[8];
    x_tek = new int[8];
 
 
    x_min[0] = 0;  x_max[0] = 2;
    x_min[1] = 2;  x_max[1] = n;
    x_min[2] = 0;  x_max[2] = 3;
    x_min[3] = 3;  x_max[3] = n;
    x_min[4] = 0;  x_max[4] = 4;
    x_min[5] = 0;  x_max[5] = 5;
    x_min[6] = 4;  x_max[6] = n;
 
 
    int sum1 = 0;
    //суммируем все минимальные ограничения на x[i][1] - таким образом мы избавились от ограничений на минимальное значение x + инициализация вспомогательных переменных
    for (int i = 0; i < 7;i++) sum1 += x_min[i];
 
    n -= sum1;
 
    // мы избавились от условий вида xi>3  - эти условия можно теперь вообще не учитывать-   уравнение теперь выглядит как x1+x2+x3+x4+x5+x6+x7=31
 
 
    //теперь устанавливаем новые максимальные значения (теперь x[i] не может быть больше, чем 31 ! (т.е. n))
    for (int i = 0; i < 7;i++) if (x_max[i] > n) x_max[i] = n;
 
    //благодаря нашим преобразованиям нам теперь не надо проверять кучу условий, у нас хоть все, кроме последнего x7  могут быть нулями.
    //на каждой следующей глубине цикла важно проверять не все значения, а только от 0 до n- уже накопленная сумма - так количество вариантов значительно снизится
    //последний х7 получаем по формуле n-накопленная сумма (x1+x2+x3+x4+x5+x6)
    int level = 0;
    int nakop = 0;
    
    fout.open("c:\\labs\\out_file.txt");
    
    func_generator(level, nakop);
 
    fout.close();
    //Console.WriteLine("Задача 17_2! ");
    
    return 0;
 
}
0
Эксперт по математике/физике
 Аватар для jogano
6360 / 4067 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
22.12.2019, 01:18
n2kkrd, и сколько получается вариантов? Не 1'580'227 ?
0
3 / 2 / 0
Регистрация: 04.06.2019
Сообщений: 62
22.12.2019, 01:49  [ТС]
jogano, 118230
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.12.2019, 01:49
Помогаю со студенческими работами здесь

Сколько существует решений уравнения
Как решить задачу? Сколько существует решений уравнения n1+n2+n3+n4+n5=62 если n1&gt;=5, n2&gt;=4, n3&gt;=2, n4&gt;=1 n&gt;=6

Cколько существует решений уравнения в целых числах?
Добрый день, преподаватель дал нам решать около 60 задач, помогите пожалуйста 2. Сколько существует решений уравнения x1 + x2 + · ·...

Как найти число неотрицательных решений уравнения?
Как найти число неотрицательных решений такого уравнения: x1+x2+....+xn=m

Сколько решений в целых числах имеет уравнение?
Сколько решений в целых числах имеет уравнение x1+x2+....+xm=n ecли все xi меньше или равно 3

Сколько существует решений в целых числах?
Сколько существует натуральных n, меньших 1031, таких что уравнение a^2+b^2=3^n имеет решение в целых числах?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru