С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/224: Рейтинг темы: голосов - 224, средняя оценка - 4.87
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913

Рекурсивный поиск максимального значения в List<>

15.10.2013, 12:04. Показов 44573. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 2 листа заполненных:
C#
1
2
List<double>X
List<double> Z
Надо определить Максимальное значение в X, при условии, что Z[i] !=0 i -индех максимального значения в X. Как бы это сделать красиво?
Начала так,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
x_max_temp = X.Max();
            int ind=-1;
            foreach(double temp in X)
            {
                ind = X.IndexOf(x_max_temp);
            }
            if (Z[ind] > 0)
            {
                x_max = x_max_temp;
            }
            else
            {
//????
            }
потом зависла... Спасибо
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.10.2013, 12:04
Ответы с готовыми решениями:

List поиск максимального значения
У меня есть лист List&lt;Point&gt; MyList; Как искать максимальное значение используя MyList.Min Что такое TSource

Рекурсивный поиск максимального пути по матрице с обходом препятствий
Есть поле 8x8, есть некая допустим змея длиннющая, на все 64 клетки. Она вылезает на точку 0;0 и ей нужно по максимуму проползти всё поле...

Рекурсивный поиск максимального элемента в массиве
Нужно написать функцию, в рекурсивном виде, для поиска максимального элемента в массиве. Gока что написал процедурку, создающую массив,...

27
54 / 50 / 16
Регистрация: 14.10.2013
Сообщений: 161
15.10.2013, 12:17
Одной строчки чуть-чуть не хватило)))

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
while (X.Count > 0)
{
    //
    // Находим индекс максимального элемента
    //
    int index_of_max = X.IndexOf(X.Max());
    //
    // Проверяем на нулевость список Z
    //
    if (Z[index_of_max] != 0)
    {
        return X.Max();
    }
    else
    {
        //
        // Приравниваем ТЕКУЩИЙ максимальный элемент к МИНИМАЛЬНОМУ и идем дальше по списку
        //
        X[index_of_max] = X.Min();
    }
}
Ну собственно на вход 2 списка X and Z. Дерзайте ;-)
0
 Аватар для buntar
543 / 544 / 181
Регистрация: 16.03.2012
Сообщений: 1,160
Записей в блоге: 2
15.10.2013, 12:18
C#
1
2
if(X.Max() & Z[X.IndexOf(X, X.Max())]!=0) Console.WriteLine("Xmax={0} Z[{1}]", X.Max(), X.IndexOf(X, X.Max()));
else Console.WriteLine("чёт не то...");
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
15.10.2013, 12:22
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleTest
{
    class Program
    {
        static void Main(string[] args)
        {
            List<double> x = new List<double> { 00, 12, 32, 99, 45, 65 };
            List<double> z = new List<double> { 12, 32, 54, 24, 78, 23 };
 
            Console.Write("значение эллемента Z по индексу максимального эллемента X: ");
            Console.WriteLine(z[x.IndexOf(x.Max())]);
            Console.ReadKey();
        }
    }
}
0
54 / 50 / 16
Регистрация: 14.10.2013
Сообщений: 161
15.10.2013, 12:24
Слегка исправил код, чтобы цикл не зацикливался:

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
while (true)
{
    //
    // Находим индекс максимального элемента
    //
    int index_of_max = X.IndexOf(X.Max());
    //
    // Проверяем на нулевость список Z
    //
    if (Z[index_of_max] != 0)
    {
        return X.Max();
    }
    else
    {
        //
        // Приравниваем ТЕКУЩИЙ максимальный элемент к МИНИМАЛЬНОМУ и идем дальше по списку
        //
        X[index_of_max] = X.Min();
    }
    //
    // Если максимальный и минимальный элементы равны, выходим из цикла
    //
    if (X.Max() == X.Min())
    {
        break;
    }
}
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
15.10.2013, 12:29
хм... а я рекурсии ввёл)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static void Main(string[] args)
        {
            List<double> X = new List<double> { 00, 12, 32, 99, 45, 65 };
            List<double> Z = new List<double> { 12, 32, 54, 00, 78, 23 };
 
            Console.Write("значение эллемента Z по индексу максимального эллемента X: ");
            Console.WriteLine(GetZ(X,Z));
 
            Console.ReadKey();
        }
 
        static double GetZ(List<double> X, List<double> Z)
        {
            if (Z[X.IndexOf(X.Max())] != 0)
                return Z[X.IndexOf(X.Max())];
            else
            {
                X[X.IndexOf(X.Max())] = -1;
                return GetZ(X, Z);
            }
        }
1
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
15.10.2013, 12:47  [ТС]
Ребята, что-то я запуталась . У меня, собственно, 2 задачи наити 2 координаты Xmax Xmin в X, если Z[imax]!=0 Z[imin]!=0 ОбЬясните, пожалуиста еще раз!!!

Добавлено через 13 минут
Т.е. в
C#
1
2
            List<double> X = new List<double> { 00, 12, 32, 99, 45, 65 };
            List<double> Z = new List<double> { 00, 32, 54, 00, 78, 23 };
мне надо получить
C#
1
2
Xmax = 65
Xmin= 12
0
54 / 50 / 16
Регистрация: 14.10.2013
Сообщений: 161
15.10.2013, 12:57
iva_a, вот весь код приложения, что надо закомментил:

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication2
{
    class Program
    {
        /// <summary>
        /// Поиск указанного значения
        /// </summary>
        /// <param name="find_of_max"> Флаг определяющий ищем ли мы максимум (true) или минимум (false) </param>
        static double Get_value(List<double> X, List<double> Z, bool find_of_max)
        {
            while (true)
            {
                //
                // Индекс МАКС / МИН элемента
                //
                int index = -1;
                //
                // Если флаг TRUE, возвращаем индекс максимального элемента
                //
                if (find_of_max == true)
                {
                    index = X.IndexOf(X.Max());
                }
                else
                {
                    index = X.IndexOf(X.Min());
                }
                //
                // Проверяем полученный индекс
                //
                if (Z[index] != 0)
                {
                    return X[index];
                }
                else
                {
                    //
                    // Если мы ищем максимум, то НЕПОДХОДЯЩИЙ элемент приравниваем к минимуму
                    //
                    X[index] = (find_of_max ? X.Min() : X.Max());
                }
                //
                // Если MAX и MIN стали равны, значит мы прошли весь список!
                //
                if (X.Max() == X.Min())
                {
                    return Double.NaN;
                }
            }
        }
 
        static void Main(string[] args)
        {
            //
            // Два списка, как их заполнять не важно!
            //
            List<double> X = new List<double> { 00, 12, 32, 99, 45, 65 };
            List<double> Z = new List<double> { 00, 32, 54, 00, 78, 23 };
            //
            // Отправляем новый список, чтобы не редактировался экземпляр текущего!
            //
            double x_max = Get_value(new List<double>(X), Z, true);
            double x_min = Get_value(new List<double>(X), Z, false);
            //
            Console.WriteLine("min = " + x_min + "\nmax = " + x_max);
            Console.Read();
        }
    }
}
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
15.10.2013, 13:52
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleTest
{
    class CloneableList<T> : List<T>, ICloneable
    {
        public object Clone()
        {
            CloneableList<T> temp=new CloneableList<T>();
            foreach (T item in this)
                temp.Add(item);
            return temp;
        }
    }
 
    class Program
    {
 
        static void Main(string[] args)
        {
            CloneableList<double> X = new CloneableList<double> { 00, 12, 32, 99, 45, 65 };
            CloneableList<double> Z = new CloneableList<double> { 00, 32, 54, 00, 78, 23 };
 
 
            Console.Write("значение эллемента Z по индексу максимального эллемента X: ");
            Console.WriteLine(GetMaxZ((CloneableList<double>)X.Clone(), Z));
 
            Console.Write("значение эллемента Z по индексу минимального эллемента X: ");
            Console.WriteLine(GetMinZ((CloneableList<double>)X.Clone(), Z));
 
            Console.ReadKey();
        }
 
        static double GetMaxZ(List<double> X, List<double> Z)
        {
            if (Z[X.IndexOf(X.Max())] != 0)
                return X[X.IndexOf(X.Max())];
            else
            {
                X[X.IndexOf(X.Max())] = Double.NegativeInfinity;
                return GetMaxZ(X, Z);
            }
        }
 
        static double GetMinZ(List<double> X, List<double> Z)
        {
            if (Z[X.IndexOf(X.Min())] != 0)
                return X[X.IndexOf(X.Min())];
            else
            {
                X[X.IndexOf(X.Min())] = Double.PositiveInfinity;
                return GetMinZ(X, Z);
            }
        }
    }
}
Добавлено через 49 минут
оу, очепятки, но ни на что не влияющие:
Цитата Сообщение от Spectral-Owl Посмотреть сообщение
"значение эллемента Z по индексу максимального эллемента X: "
нужно что-то наподобие такого: "значение максимального элемента X при не нулевом Z на том же индексе: "

Цитата Сообщение от Spectral-Owl Посмотреть сообщение
static double GetMaxZ(List<double> X, List<double> Z)
static double GetMaxWhenNotZerroZ(List<double> X, List<double> Z)

то-же с минимумом
0
54 / 50 / 16
Регистрация: 14.10.2013
Сообщений: 161
15.10.2013, 14:08
iva_a, чтобы в следующий раз не отвечали херь, вы формулируйте задание свое АДЕКВАТНО (не в плане психики, а в плане информатики). По теме "Рекурсия?" - не особо понятно что вам надо: именно РЕКУРСИЮ или просто решение поставленной задачи!
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
15.10.2013, 14:15  [ТС]
ок буду стараться формулировать правильно сразу.Spectral-Owl возникает ошибка
An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll -
C#
1
2
3
4
5
6
7
8
9
10
11
12
 static double GetXmin(List<double> X, List<double> Z)
        {
            
            if (Z[X.IndexOf(X.Min())] != 0) //ERROR
 
                return X[X.IndexOf(X.Min())];
            else
            {
                X[X.IndexOf(X.Min())] = -1;
                return GetXmin(X, Z);
            }
        }
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
15.10.2013, 15:11
хм.. просто нужно внимательнее посмотреть на последний из выложенных примеров, там не подходящий эллемент приравнивается к PositiveInfinity (если ищется минимальный) или к NegativeInfinity (если ищется максимальный).

правда возможен StackOverFlow если все эллементы не подходят, не проверял.
1
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
15.10.2013, 15:46  [ТС]
Spectral-OwlСпасибо большое! А что значит неподходящии элемент? В каком смысле неподходящий
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
15.10.2013, 16:15
iva_a, неподходящий в смысле удовлетворяющий одному условию, но проваливающий другое. и т.к. сначала проверяется первое условие, рекурсия будет скакать до исключения. Выход - изменить этот элемент, чтоб была возможность проверить уже следующий удовлетворяющий условию элемент.
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
15.10.2013, 16:25  [ТС]
Упс, у меня , видимо , именно такой вариант. Изменить листы я не могу, т.к. заполняю их их из brs файла (3D модель) Вообщем, все висит, потом опять получаю An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dllЧто делать?
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
15.10.2013, 17:08
эм... по правде говоря не понял почему опять ексепшн... хотя... передовать в метод нужно не тот же список X, а его клон, оригинал списка должен остаться неизменным (я опять же выше (сообщение #9) расписывал клонирование списка, путём создания нового класса с поддержкой ICloneable, но rpsv показал способ куда короче, вызов конструктора нового объекта List<> с передачей в качестве параметра другого объекта типа List<>)

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

Добавлено через 3 минуты
на всякий случай дописанный код, я не знаю что должно случиться что-бы в нём возникло исключение OverFlow:
Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleTest
{
    class CloneableList<T> : List<T>, ICloneable
    {
        public object Clone()
        {
            CloneableList<T> temp = new CloneableList<T>();
            foreach (T item in this)
                temp.Add(item);
            return temp;
        }
    }
 
    class Program
    {
 
        static void Main(string[] args)
        {
            CloneableList<double> X = new CloneableList<double> { 00, 12, 32, 99, 45, 65 };
            CloneableList<double> Z = new CloneableList<double> { 00, 01, 00, 00, 01, 00 };
 
 
            Console.Write("maxX: ");
            Console.WriteLine(GetMaxX((CloneableList<double>)X.Clone(), Z));
 
            Console.Write("minX: ");
            Console.WriteLine(GetMinX((CloneableList<double>)X.Clone(), Z));
 
            Console.ReadKey();
        }
 
        static double GetMaxX(List<double> X, List<double> Z)
        {
            if (X.Max() == Double.NegativeInfinity) return Double.NaN;
 
            if (Z[X.IndexOf(X.Max())] != 0)
                return X[X.IndexOf(X.Max())];
            else
            {
                X[X.IndexOf(X.Max())] = Double.NegativeInfinity;
                return GetMaxX(X, Z);
            }
        }
 
        static double GetMinX(List<double> X, List<double> Z)
        {
            if (X.Min() == Double.PositiveInfinity) return Double.NaN;
 
            if (Z[X.IndexOf(X.Min())] != 0)
                return X[X.IndexOf(X.Min())];
            else
            {
                X[X.IndexOf(X.Min())] = Double.PositiveInfinity;
                return GetMinX(X, Z);
            }
        }
    }
}
1
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
15.10.2013, 23:08  [ТС]
Spectral-Owl, извини, что достаю. Посмотри, пожалуйста. Взяла прямиком твои код. Изменила лишь заполнение листов - из реального файла(см. attach, надо разархивировать). Запускаю, получаю опять OverflowException
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace Check_new
{
 
    class CloneableList<T> : List<T>, ICloneable
    {
        public object Clone()
        {
            CloneableList<T> temp = new CloneableList<T>();
            foreach (T item in this)
                temp.Add(item);
            return temp;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            //CloneableList<double> X = new CloneableList<double> { 00, 12, 32, 99, 45, 65 };
           // CloneableList<double> Z = new CloneableList<double> { 00, 01, 00, 00, 01, 00 };
 
            CloneableList<double> X = new CloneableList<double>();
            CloneableList<double> Z = new CloneableList<double>();
            //--------------------------
            using (StreamReader reader = new StreamReader(@"C:\Documents and Settings\Vadim\Desktop\final.brs"))
            {
                string row;
 
                while ((row = reader.ReadLine()) != null)
                {
 
                    string s_comma = ",";
                    if (row.IndexOf(s_comma) > -1)
                    {
                        X.Add(Convert.ToDouble(row.Split(',')[0]));
                        //Y.Add(Convert.ToDouble(row.Split(',')[1]));
                        Z.Add(Convert.ToDouble(row.Split(',')[2]));
                       // Number++;
                    }
                }
            }
 
 
 
            //-----------------------------
 
            Console.Write("maxX: ");
            Console.WriteLine(GetMaxX((CloneableList<double>)X.Clone(), Z));
 
            Console.Write("minX: ");
            Console.WriteLine(GetMinX((CloneableList<double>)X.Clone(), Z));
 
            Console.ReadKey();
        }
        static double GetMaxX(List<double> X, List<double> Z)
        {
            if (X.Max() == Double.NegativeInfinity) return Double.NaN;
 
            if (Z[X.IndexOf(X.Max())] != 0)
                return X[X.IndexOf(X.Max())];
            else
            {
                X[X.IndexOf(X.Max())] = Double.NegativeInfinity;
                return GetMaxX(X, Z);
            }
        }
 
        static double GetMinX(List<double> X, List<double> Z)
        {
            if (X.Min() == Double.PositiveInfinity) return Double.NaN;
 
            if (Z[X.IndexOf(X.Min())] != 0)
                return X[X.IndexOf(X.Min())];
            else
            {
                X[X.IndexOf(X.Min())] = Double.PositiveInfinity;
                return GetMinX(X, Z);
            }
        }
    }
}
Вложения
Тип файла: rar final.rar (363.1 Кб, 2 просмотров)
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
18.10.2013, 10:06
прошу прощения из-за отсутствия ответа, с военкоматом разбирался... итак:
признаться, не предполагал что поиск будет производится в списке из 190к эллементов, рекурсия тут не подходит. дело в том что количество вызовов рекурсий (а точнее общее количество выполняемых в данный момент методов) ограничено. В литературе подробного описания этого механизма не встречал, но гугл подсказывает что глубина стека вызовов задаётся при создании потока. (стандартная глубина, у меня, ближе к 16к, в гугле результаты аналогичные)

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

Хотя с другой стороны ранее в этой же теме rpsv'ом выкладывался код, который хоть и медленно (а как ещё когда столько элементов то?)), но выполнял все необходимые действия.

ах, да, ещё один совет: при таких списках просто необходимо все результаты (X.Max(), X.IndexOf(..) и пр.) хранить в отдельных локальных переменных, что-бы не вызывать данные функции по два раза за 1 метод.

Добавлено через 23 минуты
кое-что потестил: не знаю с чем это связанно, но для данного случая количество вызовов метода до переполнения стека всего-лишь 7к+, возможно это связано с возвращаемым типом double, не суть. управление потоками не помогает, т.к. первоначальный размер максимален. От рекурсии необходимо отказываться)
0
18.10.2013, 13:10

Не по теме:

можно же за один проход сделать это, зачем тут рекурсия?

0
54 / 50 / 16
Регистрация: 14.10.2013
Сообщений: 161
18.10.2013, 14:57
Цитата Сообщение от da1z Посмотреть сообщение
Не по теме:
можно же за один проход сделать это, зачем тут рекурсия?
А как за один? Если найденный максимальный элемент не удовлетворяет условию (Z[index] != 0), то придется уже другой элемент искать! Либо дальше по циклу, либо рекурсия...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2013, 14:57
Помогаю со студенческими работами здесь

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

Как найти индекс максимального значения в List<double>
Как найти индекс максимального значения в листе? Есть List&lt;double&gt;X = new List&lt;double&gt;() double x_max=X.Max(); Нужно узнать int i ; ...

Поиск максимального значения в стобце умной таблице, и генерация значения+1
Всем привет! Кто может подсказать, как писать код в VBA в таком случае. Имеется умная таблица. Один из столбцов таблицы должен...

Поиск максимального значения
Дана функция y=tg(x)+1. Написать программу для поиска максимального значения y в промежутке x= с шагом 0,1.

Поиск максимального значения
#include &lt;stdio.h&gt; int main () { int a,sum=0,i,n,max; printf (&quot;Skolko chisel vi vvedete? &quot;); scanf (&quot;%d&quot;,&amp;n); ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru