Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22

Сравнение производительности С++ и С# на конкретном примере

31.03.2017, 19:33. Показов 7139. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую знатоков С++ !
Можно ли на С++ вычислить быстрее, чем на C#, переменные для решения уравнения x ^ 3 + y ^ 3 = z ^ 3 - 1
К примеру в диапазоне до 100000.
Код на С#
Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading.Tasks;
 
namespace NET_Framework4
{
    //поиск переменных для решения уравнения x^3 + y^3 = z^3 - 1
    class Program
    {
        static long n;
        static long an;
        static long lim;
        static long k = 0;
        static long[] a;
        static int threadsN = Environment.ProcessorCount; //задать количество потоков
 
        static void Main(string[] args)
        {
            Console.WriteLine("Enter the maximum value of the variables for equation (x ^ 3 + y ^ 3 = z ^ 3 - 1), followed by <Enter>:\n");
            n = Convert.ToInt64(Console.ReadLine());
            Stopwatch sw = Stopwatch.StartNew();
            an = n * n * n;
            a = new long[n + 1];
            lim = (long)(Math.Pow((an - 1) / 2, 1d / 3d));
 
                for (long i = 1; i <= n; i++)
                    a[i] = i * i * i;
 
            var task = new List<Task>();
                for (int i = 1; i <= threadsN; i++)
                {
                    int k = i;
                    task.Add(new Task(() => Func(k)));
                }
            task.ForEach(t => t.Start());//стартуем task
            task.ForEach(t => t.Wait()); //ждем выполнения всех task
            sw.Stop();
            Console.WriteLine("Time {0}", sw.Elapsed);
            Console.Write("\nPress any key to continue... ");
            Console.ReadKey();
        }
 
        static void Func(long start)
        {
            long m = n;
            unsafe
            {
                fixed (long* a = Program.a)
                {
                    for (long x = start; x <= lim; x = x + threadsN)
                    {
                        long ax = a[x];
                        long r = an - ax - 1;
                        while (a[m] > r) m--;
                        long z = (long)(x * 1.2599);
 
                        for (long y = x; y <= m; y++)
                        {
                            long z3 = ax + a[y] + 1;
 
                            for (long az = a[z]; az <= z3; z++, az = a[z])
                            {
                                if (az == z3) Console.WriteLine(k++ + "   " + x + "   " + y + "   " + z);
                            }
                        }
                    }
                }
            }
        }
    }
}

Обсуждение на ветке С#.
Решение на C# прилагаю.
Вложения
Тип файла: rar XYZ_NET_Framework4.rar (3.2 Кб, 8 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2017, 19:33
Ответы с готовыми решениями:

На конкретном примере
Добрый вечер! На конкретном примере показать как с помощью документа переносить данные из одного справочника в другой. Пусть это будет...

Маршрутизация на конкретном примере
ОС Win7 config Настройка протокола IP для Windows Имя компьютера . . . . . . . . . : NamePC Основной DNS-суффикс . ....

Линейный криптоанализ на конкретном примере
суть: есть исходный текст, есть зашифрованная комбинация известно, что шифрование происходило через XOR-операцию исходного текста и...

51
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.04.2017, 17:14
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от bedvit Посмотреть сообщение
на этапе компиляции не известно сколько логический ядер процессора будет в системе
Есть std::thread::hardware_concurrency().
Цитата Сообщение от bedvit Посмотреть сообщение
что бы не смешиваться у разных потоков
C++
1
2
s = to_wstring(k++) + L"   " + to_wstring(x) + L"   " + to_wstring(y) + L"   " + to_wstring(z) + L"\n";
std::wcout << s;
1
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
06.04.2017, 17:48  [ТС]
nmcf, я извиняюсь, у вас "s" это "std::string s" ?
не заходит так.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
06.04.2017, 18:04
Цитата Сообщение от bedvit Посмотреть сообщение
Что это даст?
извиняюсь, в данном случае такое не прокатит, просто показалось, что это константа.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
06.04.2017, 19:36  [ТС]
nmcf, вместо
C++
1
2
3
SYSTEM_INFO sysinfo;
    GetSystemInfo(&sysinfo);
    threadsN = sysinfo.dwNumberOfProcessors;
сделал
C++
1
threadsN = thread::hardware_concurrency();
GbaLog-, все равно спасибо, почитал про constexpr.

Добавлено через 3 минуты
Где то упускаю (см.ниже), видимо нужен new. Пока не понимаю как проще реализовать запуск в разных потоках, через массив.
C++
1
2
3
4
5
6
    thread *thr = new thread[threadsN];
    
    for (int i = 1; i <= threadsN; i++)
    {
        thr[i] = thread(Func,i);
    }
Добавлено через 6 минут
Наверняка можно полернуть еще молотилку чисел (есть ли смысл в ассемблерных вставках?):
Кликните здесь для просмотра всего текста
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
void Func(long long start)
    {
        long long m = n;
        for (long long x = start; x <= lim; x = x + threadsN)
        {
            long long ax = a[x];
            long long r = an - ax - 1;
            while (a[m] > r)
            {
                m--;
            }
            long long z = static_cast<long long>(x * 1.2599);
 
            for (long long y = x; y <= m; y++)
            {
                long long z3 = ax + a[y] + 1;
 
                for (long long az = a[z]; az <= z3; z++, az = a[z])
                {
                    if (az == z3)
                    {
                        wcout << k++ << wstring(L"   ") << x << wstring(L"   ") << y << wstring(L"   ") << z << endl;
                    }
                }
            }
        }
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.04.2017, 20:33
Цитата Сообщение от bedvit Посмотреть сообщение
"s" это "std::string s"?
Нет, конечно. Это wstring.

Добавлено через 17 минут
C++
1
2
    vector<thread> thr(threadsN);
    for (int i = 1; i <= threadsN; ++i) thr[i - 1] = thread(Func, i);
1
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
07.04.2017, 11:30  [ТС]
Итого благодаря помощи форума вышло следующее:
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
#include "stdafx.h"
#include <string>
#include <vector>
#include <iostream>
#include <thread>
 
using namespace std;
 //поиск переменных для решения уравнения x^3 + y^3 = z^3 - 1
    long long n=0;
    long long an=0;
    long long lim=0;
    long long k=1;
    string s;
    vector<long long> a;
    int threadsN; //задать количество потоков
 
    void Func(long long start)
    {
        long long m = n;
        wstring s;
        for (long long x = start; x <= lim; x = x + threadsN)
        {
            long long ax = a[x];
            long long r = an - ax - 1;
            while (a[m] > r)
            {
                m--;
            }
            long long z = static_cast<long long>(x * 1.2599);
 
            for (long long y = x; y <= m; y++)
            {
                long long z3 = ax + a[y] + 1;
 
                for (long long az = a[z]; az <= z3; z++, az = a[z])
                {
                    if (az == z3)
                    {
                        s = to_wstring(k++) + L"   " + to_wstring(x) + L"   " + to_wstring(y) + L"   " + to_wstring(z) + L"\n";
                        wcout << s;
                    }
                }
            }
        }
 
    }
 
int main()
{
    threadsN = thread::hardware_concurrency();
    wcout << wstring(L"Enter the maximum value of the variables for equation (x ^ 3 + y ^ 3 = z ^ 3 - 1), followed by <Enter>:\n") << endl;
    getline(cin, s);
    n = stoll(s);
    unsigned int start_time = clock(); // начальное время
    an = n * n * n;
    a = vector<long long>(n + 1);
    lim = static_cast<long long>(pow((an - 1) / 2, 1.0 / 3));
 
    for (long long i = 1; i <= n; i++) a[i] = i * i * i;
 
    vector<thread> thr(threadsN);
    for (int i = 1; i <= threadsN; ++i) thr[i-1] = thread(Func, i);
    for (int i = 1; i <= threadsN; ++i) thr[i-1].join();
    
    unsigned int end_time = clock(); // конечное время
    unsigned int search_time = end_time - start_time; // искомое время
 
    wcout << wstring(L"Time ") << endl;;
    cout << (search_time / 1000.0) << endl;;
 
    system("pause");
    return 0;
    }
При компиляции через MVS2017, что бы .exe работал без выброса ошибки с требованием msvp140.dll, в свойствах проекта - С++ - Создание кода - Библиотека времени выполнения, выбрать: Многопоточная (MT), при сборке Release.
Вложения
Тип файла: rar C++(x^3+y^3=z^3-1).rar (198.4 Кб, 2 просмотров)
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
07.04.2017, 11:36  [ТС]
С++ примерно на 8% быстрее. (считал в диапазоне переменных до 300 тыс.)
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
07.04.2017, 11:54
bedvit, А шарповый Stopwatch возвращает процессорное время? Он зависит от количества рабочих потоков?
Если не зависит, то всё примерно ок. Но если зависит, то в плюсах используйте :
C++
1
2
3
4
5
6
#include <chrono>
....
auto start_time = std::chrono::high_resolution_clock::now();
....
auto end_time = std::chrono::high_resolution_clock::now();
auto search_time = std::chrono::duration_cast<std::chrono::microseconds>(end_time - start_time).count(); // искомое время
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
07.04.2017, 12:53  [ТС]
Если прогнать несколько итераций в диапазоне до 500 тыс., то время выполнения примерно меньше на 6-8%. Каждый проход уменьшается по времени и в плюсах и в шарпе.

Добавлено через 3 минуты
Nosey, вот что пишут здесь (машинный перевод).
Кликните здесь для просмотра всего текста
Stopwatch Измеряет затраченное время с помощью подсчета тактов таймера в базового механизма таймера. Если установленное оборудование и операционная система поддерживают счетчики производительности высокого разрешения, то Stopwatch класс использует этот счетчик для измерения затраченного времени. В противном случае — Stopwatch класс использует системного таймера для измерения затраченного времени. ...

...На многопроцессорном компьютере он не имеет значения, на каком процессоре выполняется поток. Однако из-за ошибок в BIOS или слой абстрагирования оборудования (HAL), можно получить различные результаты расчета времени на разных процессорах. Чтобы задать сходство процессоров для потока, используйте ProcessThread.ProcessorAffinity метод.
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
07.04.2017, 13:28
Цитата Сообщение от bedvit Посмотреть сообщение
вот что пишут здесь (машинный перевод).
Да, это я погуглил предварительно, но это не дало мне уверенности, поэтому и написал.
Просто запустите шарповый код на одном потоке, и если выведенный результат времени сохранится с результатом многопоточной версии - то всё ок, если же будет много больше, то у меня для шарпа очень плохие новости.
Ну а вообще, я помню что, шарп отлично справляется с числодробилками, поэтому думаю что всё верно, но вам бы советовал таки проверить.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
07.04.2017, 15:48  [ТС]
На ПК послабее, выигрыш на 20%, отчего так?

Добавлено через 2 минуты
Цитата Сообщение от Nosey Посмотреть сообщение
на одном потоке
выполняется дольше, что логично
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
07.04.2017, 16:11
Цитата Сообщение от bedvit Посмотреть сообщение
На ПК послабее, выигрыш на 20%, отчего так?
Не знаю но и это не важно, ибо:
Цитата Сообщение от bedvit Посмотреть сообщение
выполняется дольше, что логично
, тогда в плюсовом коде, для измерения времени, используйте код из 28 сообщения. Поскольку в плюсовом коде(std::clock) вы изменяли "время" всех потоков.
И оптимизируйте шарповую версию, если это челендж С++ vs C#

На всякий случай мануалы:
http://en.cppreference.com/w/cpp/chrono/c/clock
http://en.cppreference.com/w/cpp/chrono
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
07.04.2017, 16:44  [ТС]
проверил на секундомере тупо с телефона, из-за несовершенства срабатывания пальца получил отклонения в 5% результатов в секундомере от результатов в программе. Можете сами проверить. Посему точность для данного вида сравнения приемлемая. Сравнил на двух ПК, .exe-ки, 6 подходов.
Добавил и ваш код, результат в рамках погрешности измерения (т.е. не изменился)
Кликните здесь для просмотра всего текста
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
// ConsoleApplication4.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <string>
#include <vector>
#include <iostream>
#include <thread>
 
using namespace std;
//поиск переменных для решения уравнения x^3 + y^3 = z^3 - 1
    long long n=0;
    long long an=0;
    long long lim=0;
    long long k=1;
    string s;
    vector<long long> a;
    int threadsN; //задать количество потоков
 
    void Func(long long start)
    {
        long long m = n;
        wstring s;
        for (long long x = start; x <= lim; x = x + threadsN)
        {
            long long ax = a[x];
            long long r = an - ax - 1;
            while (a[m] > r)
            {
                m--;
            }
            long long z = x * 12599/10000;
 
            for (long long y = x; y <= m; y++)
            {
                long long z3 = ax + a[y] + 1;
 
                for (long long az = a[z]; az <= z3; z++, az = a[z])
                {
                    if (az == z3)
                    {
                    s = to_wstring(k++) + L"   " + to_wstring(x) + L"   " + to_wstring(y) + L"   " + to_wstring(z) + L"\n";
                        wcout << s;
                    }
                }
            }
        }
 
    }
 
int main()
{
    threadsN = thread::hardware_concurrency();
    wcout << wstring(L"Enter the maximum value of the variables for equation (x ^ 3 + y ^ 3 = z ^ 3 - 1), followed by <Enter>:\n") << endl;
    getline(cin, s);
    n = stoll(s);
    //unsigned int start_time = clock(); // начальное время
    auto start_time = std::chrono::high_resolution_clock::now();
    an = n * n * n;
    a = vector<long long>(n + 1);
    lim = static_cast<long long>(pow((an - 1) / 2, 1.0 / 3));
 
    for (long long i = 1; i <= n; i++) a[i] = i * i * i;
 
    vector<thread> thr(threadsN);
    for (int i = 1; i <= threadsN; i++) thr[i-1] = thread(Func, i);
    for (int i = 1; i <= threadsN; i++) thr[i-1].join();
    
    //unsigned int end_time = clock(); // конечное время
    auto end_time = std::chrono::high_resolution_clock::now();
    //unsigned int search_time = end_time - start_time; // искомое время
    auto search_time = std::chrono::duration_cast<std::chrono::microseconds>(end_time - start_time).count(); // искомое время
    
    wcout << wstring(L"Time ") << endl;;
    cout << (search_time / 1000000.0) << endl;;
 
    system("pause");
    return 0;
    }


Добавлено через 2 минуты
Цитата Сообщение от Nosey Посмотреть сообщение
оптимизируйте шарповую версию
Что конкретно?
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
07.04.2017, 17:39
Цитата Сообщение от bedvit Посмотреть сообщение
Добавил и ваш код, результат в рамках погрешности измерения (т.е. не изменился)
Это очень странно.
Попробуйте следующий код :
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
// ConsoleApplication4.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <string>
#include <vector>
#include <iostream>
#include <thread>
#include <ctime>
#include <cmath>
 
using namespace std;
//поиск переменных для решения уравнения x^3 + y^3 = z^3 - 1
long long n = 0;
long long an = 0;
long long lim = 0;
long long k = 1;
string s;
vector<long long> a;
int threadsN; //задать количество потоков
 
void Func(long long start) {
    long long m = n;
    wstring s;
    for (long long x = start; x <= lim; x = x + threadsN) {
        long long ax = a[x];
        long long r = an - ax - 1;
        while (a[m] > r) {
            m--;
        }
        long long z = x * 12599 / 10000;
 
        for (long long y = x; y <= m; y++) {
            long long z3 = ax + a[y] + 1;
 
            for (long long az = a[z]; az <= z3; z++, az = a[z]) {
                if (az == z3) {
                    s = to_wstring(k++) + L"   " + to_wstring(x) + L"   "
                            + to_wstring(y) + L"   " + to_wstring(z) + L"\n";
//                  wcout << s;
                }
            }
        }
    }
 
}
 
void doIt(unsigned int threadCount) {
    threadsN = threadCount;
    unsigned int start_time_clock = clock(); // начальное время
    auto start_time = std::chrono::high_resolution_clock::now();
    an = n * n * n;
    a = vector<long long>(n + 1);
    lim = static_cast<long long>(pow((an - 1) / 2, 1.0 / 3));
 
    for (long long i = 1; i <= n; i++)
        a[i] = i * i * i;
 
    vector<thread> thr(threadsN);
    for (int i = 1; i <= threadsN; i++)
        thr[i - 1] = thread(Func, i);
    for (int i = 1; i <= threadsN; i++)
        thr[i - 1].join();
 
    unsigned int end_time_clock = clock(); // конечное время
    auto end_time = std::chrono::high_resolution_clock::now();
    double search_time_clock = end_time_clock - start_time_clock; // искомое время
    auto search_time = std::chrono::duration_cast<std::chrono::microseconds>(
            end_time - start_time).count(); // искомое время
 
    wcout << "thread count : " << threadCount << endl;
    wcout << "chrono time: " << search_time << endl;
    wcout << "clock time: " << search_time_clock / CLOCKS_PER_SEC * 1000000
            << std::endl;
}
 
int main() {
    wcout
            << wstring(
                    L"Enter the maximum value of the variables for equation (x ^ 3 + y ^ 3 = z ^ 3 - 1), followed by <Enter>:\n")
            << endl;
    getline(cin, s);
    n = stoll(s);
 
    doIt(1);
    doIt(thread::hardware_concurrency());
 
    system("pause");
 
    return 0;
}
Цитата Сообщение от bedvit Посмотреть сообщение
Что конкретно?
Я очень далёк от шарпа, извините.

Добавлено через 12 минут
bedvit, Пардоньте, в винде clock возвращает wall clock. Все мои предыдущие слова вас не должны волновать.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
07.04.2017, 18:56  [ТС]
Nosey, вот и хорошо, что все выяснилось
Вопрос знатокам солнцеликого АССЕМБЛЕРА: будет ли прирост производительности, если перевести числодробилку в ассемблерную вставку в функции Func (в Visual Studio через __asm (?)) И насколько сложно создать код. Далек от этого, как программист VBA от C#.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.04.2017, 21:06
Каких чудес ты ожидаешь от ассемблера? Компилятор C++ и так оптимизирует.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
10.04.2017, 11:01  [ТС]
Хочу понять, сколько еще можно будет отжать времени.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.04.2017, 12:03
Не смысла время тратить. Включи максимальную оптимизацию и всё. Тем более, что ты не знаешь ассемблер.
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
10.04.2017, 13:19
bedvit, какой алгоритм используешь, скинь ссылочку или объясни на пальцах.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
10.04.2017, 13:33  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Включи максимальную оптимизацию
студия 2017->в свойствах с/с++ ->Оптимизация? Или есть еще нюансы ?
Есть некоторое убеждение, что прямые руки в ассемблере быстрее компилятора.
Ассемблер я не знаю - это верно, надеюсь на помощь форума и знающего человека, которому будет интересно сравнить результаты (платформа x64).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2017, 13:33

Принцип работы цикла на конкретном примере
Приветствую, форумчане. Учу PHP. В процессе обучения наткнулся на пример использования данных из массива в цикле: &lt;?php ...

Оптимальная реализация построения БД на конкретном примере
Добрый день! Вопрос следующий: базу данных вроде как принято наполнять посредством добавления новых записей. А что если у меня...

Использование функции округления на конкретном примере
Как использовать функцию округления на конкретном примере: #include &lt;iostream&gt; #include &lt;Math.h&gt; using namespace std; int...

Как распарсить JSON на джаве на конкретном примере?
I have the following JSON text that I need to parse to get &quot;id&quot;: 176514, What is the required code? Help my please!!! ...

Написать математическое решение задачи на конкретном примере
Здравствуйте, помогите пожалуйста написать математическое решение на конкретном примере. Условия задачи: Пользователь вводит 10 записей...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru