Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/35: Рейтинг темы: голосов - 35, средняя оценка - 4.80
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441

Теряется точность при вычислении с double

21.08.2015, 08:17. Показов 7790. Ответов 77
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
В процессе решения кубического уравнения, у меня теряется точность переменной типа double. Пробовал использовать TTmath.h результата не прибавило (возможно я её криво использовал).

Короче говоря вещественный корень получается равный:
z0 = 880256255399783.00

В matlab тот же самый алгоритм, так же даёт 880256255399783.00

А должен быть:
z0 = 880256255399784.42497741663615572; - Этот корень получился в matlab с помощью функции solve()

Я так понимаю это произошло из-за переполнение мантиссы double ? Которая для double не может превышать 2^53 - 1;
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.08.2015, 08:17
Ответы с готовыми решениями:

При переводе string в long double теряется дробная часть
Помогите с программой. При переводе string в long double дробная часть становится равной нулю(не зависит от длины числа). #include...

Теряется точность
Видимо в этой проге теряетмя точность. Не проходит только 1 тест. #include <iostream> #include <iomanip> using...

Куда теряется точность?
Для примера, есть формула (a+b)3 - a3. В расчетах с хранением промежуточных результатов и без него получаются разные ответы. #include...

77
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.08.2015, 12:53
Студворк — интернет-сервис помощи студентам
Abraziv__, ну это ни рыба, ни мясо. Дай хотя бы начальные значения, в результате вычисления которых получается результат 880256255399783.00.
0
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
21.08.2015, 13:04  [ТС]
Решение куб уравнения, это промежуточный этап аналитического решения систему нелинейных уравнений.

А практический смысл какой? Если порядок числа переваливает за 10^10, зачем нужна 15я (условно) цифра после запятой?

Такова математика. Вот к примеру:
для точности 880256255399783
получаю значение одной из переменных: -15734422.4491056

для точности 880256255399784
получаю значение одной из переменных: -9084272.68745487


для точности 880256255399784.424
получаю значение одной из переменных: 0.674031173230142

для точности 880256255399784.4
получаю значение одной из переменных: 0.674031173230142

А должно быть 0.

castaway

a3 = 1
b3 = -880256255399764
c3 = -1.79792141373932e+016
d3 = -9.24139523145728e+016

При заданных выше нач условиях, матлаб вычислил: 880256255399784.42497741663615572;
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
21.08.2015, 13:10
Abraziv__, нам нужен код,который можно запустить.Заодно и matlab код приведите.
0
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
21.08.2015, 13:15  [ТС]
Извините ребята, не посчитайте за предубеждение, но код целиком дать не могу. Мне контора не простит, если всплывёт.

Добавлено через 1 минуту
Хотя вот матлбовский код:
Matlab M
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
x1 = 3291825.45;
y1 = -7473079.35;
z1 = 1;
 
x2 = 0;
y2 = -8000000+1;
z2 = 1;
 
x3 = -2127126.49;
y3 = -7519740.99+1;
z3 = 1;
 
R11 = 0;
R21 = -1847288.7;
R31 = -1055041.77;
L   = 6378137;
 
 
 
% syms x y R z ;
 
 
S = solve('x^2+y^2+z^2 = 6378137^2',...
          '(x-(3291825.45))^2+(y-(-7473079.35+1))^2+(z-(0+1))^2=(R)^2',...
          '(x-(0))^2+(y-(-8000000+1))^2+(z-(0+1))^2=(R+(-1847288.7))^2',...
          '(x-(-2127126.49))^2+(y-(-7519740.99+1))^2+(z-(0+1))^2=(R+(-1055041.77))^2');
 
 S.R
 
 
 for i=1:4
 S.x(i) =   S.x(i) - 1;
 S.y(i) =   S.y(i) - 1;
 S.z(i) =   S.z(i) - 1;
 end
 
 
A1 = 2*(x2-x1);
B1 = 2*(y2-y1);
C1 = 2*(z2-z1);
f1 = x2^2+y2^2+z2^2 - (x1^2+y1^2+z1^2) - R21^2;
g1 = -2*R21;
 
A2 = 2*(x3-x1);
B2 = 2*(y3-y1);
C2 = 2*(z3-z1);
f2 = x3^2+y3^2+z3^2 - (x1^2+y1^2+z1^2) - R31^2;
g2 = -2*R31;
 
A3 = 2*x1;
B3 = 2*y1;
C3 = 2*z1;
f3 = (x1^2+y1^2+z1^2) + L^2;
g3 = -1;
 
D1 = (A1*(B2*C3 - B3*C2) + A2*(B3*C1 - B1*C3) + A3*(B1*C2 - B2*C1));
D2 = D1^2;
 
m4_1 = (A1*B2*g3-A2*B1*g3)^2;
m4_2 = (A1*C2*g3-A2*C1*g3)^2;
m4_3 = (B1*C2*g3-B2*C1*g3)^2;
 
m3_1 = 2*(A1*B2*g3-A2*B1*g3)*(A1*B3*g2-A2*B3*g1-A3*B1*g2+A3*B2*g1);
m3_2 = 2*(A1*C2*g3-A2*C1*g3)*(A1*C3*g2-A2*C3*g1-A3*C1*g2+A3*C2*g1);
m3_3 = 2*(B1*C2*g3-B2*C1*g3)*(B1*C3*g2-B2*C3*g1-B3*C1*g2+B3*C2*g1);
 
m2_1 = (B1*C3*g2-B2*C3*g1-B3*C1*g2+B3*C2*g1)^2;
m2_2 = 2*(B1*C2*g3-B2*C1*g3)*(B1*C2*f3-B1*C3*f2-B2*C1*f3+B2*C3*f1+B3*C1*f2-...
        B3*C2*f1);
m2_3 = (A1*C3*g2-A2*C3*g1-A3*C1*g2+A3*C2*g1)^2;
m2_4 = 2*(A1*C2*g3-A2*C1*g3)*(A1*C2*f3-A1*C3*f2-A2*C1*f3+A2*C3*f1+A3*C1*f2-...
        A3*C2*f1);
m2_5 = (A1*B3*g2-A2*B3*g1-A3*B1*g2+A3*B2*g1)^2;
m2_6 = 2*(A1*B2*g3-A2*B1*g3)*(A1*B2*f3-A1*B3*f2-A2*B1*f3+A2*B3*f1+...
        A3*B1*f2-A3*B2*f1);
    
m1_1 = 2*(A1*C3*g2-A2*C3*g1-A3*C1*g2+A3*C2*g1)*(A1*C2*f3-A1*C3*f2-A2*C1*f3+...
        A2*C3*f1+A3*C1*f2-A3*C2*f1);
m1_2 = 2*(B1*C3*g2-B2*C3*g1-B3*C1*g2+B3*C2*g1)*(B1*C2*f3-B1*C3*f2-B2*C1*f3+...
        B2*C3*f1+B3*C1*f2-B3*C2*f1);
m1_3 = 2*(A1*B3*g2-A2*B3*g1-A3*B1*g2+A3*B2*g1)*(A1*B2*f3-A1*B3*f2-A2*B1*f3+...
        A2*B3*f1+A3*B1*f2-A3*B2*f1);
 
m0_1 = (A1*B2*f3-A1*B3*f2-A2*B1*f3+A2*B3*f1+A3*B1*f2-A3*B2*f1)^2;
m0_2 = (A1*C2*f3-A1*C3*f2-A2*C1*f3+A2*C3*f1+A3*C1*f2-A3*C2*f1)^2;
m0_3 = (B1*C2*f3-B1*C3*f2-B2*C1*f3+B2*C3*f1+B3*C1*f2-B3*C2*f1)^2;
m0_4 = L^2;
 
a = (m4_1 + m4_2 + m4_3)/D2;
b = (-m3_1 - m3_2 - m3_3)/D2;
c = (m2_6 + m2_5 + m2_4 + m2_3 + m2_2 + m2_1)/D2;
d = (-m1_1 - m1_2 - m1_3)/D2;
e = (m0_1 + m0_2 + m0_3)/D2 - m0_4;
 
p = (8*a*c - 3*b^2)/(8*a^2);
q = (8*a^2*d+b^3-4*a*b*c)/(8*a^3);
r = (16*a*b^2*c-64*a^2*b*d-3*b^4+256*a^3*e)/(256*a^4);
 
 
if q ~= 0
    
       
    a33 = 1
    b33 = p
    c33 = (p^2-4*r)/4
    d33 = - q^2/8
    
    T = solve('t^3 -880256255399764*t^2 -1.79792141373932e+016*t -9.24139523145728e+016 = 0')
    ff = double(T(1))
    p33 = (3*a33*c33-b33^2)/(3*a33^2);
    q33 = (2*b33^3-9*a33*b33*c33+27*a33^2*d33)/(27*a33^3)
        
    delta = (q33/2)^2 + (p33/3)^3
     
    if delta > 0                   
       y0 = (-q33/2 + sqrt(delta))^(1/3) + (-q33/2 - sqrt(delta))^(1/3);
    
    else        
        
        if delta < 0
            
            if q33 < 0
                fi = atan2(-sqrt(delta),-q33/2);
            else
                if q33 > 0
                    fi = atan2(-sqrt(delta),-q33/2) + pi;
                else
                    fi = pi / 2;
                end
            y0 = 2*sqrt(-p33/2)*cos(fi/3);
            end
             
        else
            y0 = 2*(-q33/2)^(1/3);
        end
 
    end
   
    z0 =  y0 - b33 / (3.0*a33)
    z0 = 880256255399784.4;
    
    
    y_1 = (sqrt(2*z0) - sqrt(2*z0-4*(p/2+z0 + q / (2*sqrt(2*z0)) ) ) )/2;    
    
    y_2 = (sqrt(2*z0) + sqrt(2*z0-4*(p/2+z0 + q / (2*sqrt(2*z0)) ) ) )/2;    
    
    y_3 = (-sqrt(2*z0) - sqrt(2*z0-4*(p/2+z0 - q / (2*sqrt(2*z0)) ) ) )/2;    
    
    y_4 = (-sqrt(2*z0) + sqrt(2*z0-4*(p/2+z0 - q / (2*sqrt(2*z0)) ) ) )/2;
            
else
    
    y_1 =  sqrt((-p-sqrt(p^2-4*r))/2);
    y_2 = -sqrt((-p-sqrt(p^2-4*r))/2);
    y_3 =  sqrt((-p+sqrt(p^2-4*r))/2);
    y_4 = -sqrt((-p+sqrt(p^2-4*r))/2);
    
end
 
R1 = y_1 - b/(4*a);
R2 = y_2 - b/(4*a);
R3 = y_3 - b/(4*a);
R4 = y_4 - b/(4*a);
R = [R1 R2 R3 R4];
 
 
for i = 1:4
    
    if R(i)  > 0
        
        R(i) 
    
        x = ((B1*C2*g3-B2*C1*g3)*R(i)^2 - (B1*C3*g2-B2*C3*g1-B3*C1*g2+B3*C2*g1)*R(i) +...
             (B1*C2*f3-B1*C3*f2-B2*C1*f3+B2*C3*f1+B3*C1*f2-B3*C2*f1))/D1
 
        y = (-(A1*C2*g3-A2*C1*g3)*R(i)^2 + (A1*C3*g2-A2*C3*g1-A3*C1*g2+A3*C2*g1)*R(i) -...
            (A1*C2*f3-A1*C3*f2-A2*C1*f3+A2*C3*f1+A3*C1*f2-A3*C2*f1))/D1
 
        z = ((A1*B2*g3-A2*B1*g3)*R(i)^2+(-A1*B3*g2+A2*B3*g1+A3*B1*g2-A3*B2*g1)*R(i)+...
            (A1*B2*f3-A1*B3*f2-A2*B1*f3+A2*B3*f1+A3*B1*f2-A3*B2*f1))/D1
    end
    
end
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
21.08.2015, 13:24
Abraziv__, нам не нужен код целиком.Просто маленький кусок,демонстрирующий проблему.
Хорошо,запустил matlab код.Получил ряд значений,какое из них соответствует(не соответствует) C++-аналогу(требуемому значению).
0
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
21.08.2015, 13:31  [ТС]
Я вас уверяю, на полюсах тоже самое, я проверял там везде дабл. Можете сампосмотреть в матлабе и в режиме отладки посмотреть
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.08.2015, 13:34
Цитата Сообщение от S_el Посмотреть сообщение
Abraziv__, нам не нужен код целиком.Просто маленький кусок,демонстрирующий проблему.
Вот простой код.
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <iomanip>
#include <limits>
#include <cmath>
 
int main() {
    const double pi = 3.1415926535897932384626433832795;
 
    double a3 = 1.0;
    double b3 = -880256255399764;
    double c3 = -1.79792141373932e+016;
    double d3 = -9.24139523145728e+016;
 
    double p3 = (3.0 * a3 * c3 - b3 * b3) / (3 * a3 * a3);
    double q3 = (2.0 * b3 * b3 * b3 - 9 * a3 * b3 * c3 + 27 * a3 * a3 * d3) / (27 * a3 * a3 * a3);
    double delta = pow( q3 / 2, 2 ) + pow( p3 / 3, 3 );
 
    double fi, y0;
    if ( delta > 0 ) {
        y0 = pow( -q3 / 2 + sqrt( delta ), 1 / 3. ) +
             pow( -q3 / 2 - sqrt( delta ), 1 / 3. );
    } else {
        if ( delta < 0 ) {
            if ( q3 < 0 ) {
                fi = atan2( -sqrt( delta ), -q3 / 2 );
            } else {
                if ( q3 > 0 ) {
                    fi = atan2( -sqrt( delta ), -q3 / 2 ) + pi;
                } else {
                    fi = pi / 2;
                }
            }
            y0 = 2 * sqrt( -p3 / 2 ) * cos( fi / 3 );
        } else {
            y0 = 2 * pow( -q3 / 2, 1 / 3. );
        }
    }
 
    std::cout << std::setprecision( std::numeric_limits<double>::digits10 + 1 );
    std::cout << y0 - b3 / 3 << std::endl;
    std::cout << "880256255399783.00\n";
    std::cout << "880256255399784.42497741663615572\n";
}
Я предполагал что проблема может быть при выводе, оказалось что нет.
0
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
21.08.2015, 13:36  [ТС]
Да я про тоже, надо библиотеку длин арифметики подымать.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
21.08.2015, 13:37
Abraziv__, ...
я вас не об этом спрашиваю.Вы говорите,что расчетное значение одно,хотя требуется получить другое и что решатель matlab solve - подходит.
Вы привели один код,но не прокомментировали его .Я так понимаю, приведенный код - полный аналог C++ кода,хорошо. Нужен другой,правильный код с solve.Чтобы форумчане могли запустить,сравнить и понять в чем именно проблема.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.08.2015, 13:44
Надо попробовать прикрутить GMP. Если получится - чуть позже выложу код.
0
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
21.08.2015, 13:47  [ТС]
В приведенном выше коде есть функция solve решения куб уравнения. Интересующий код дублирует код на c++, точнее наоборот. Я повторюсь, матлаб код работает аналогично плюсовому, я проверял все. В матлабе легче разобраться, но я знаю что не так. Инициал данные слишком длинные, так получается просто, так надо.

Добавлено через 1 минуту
castaway, если получится сможете поделиться либами?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.08.2015, 13:55
Цитата Сообщение от Abraziv__ Посмотреть сообщение
castaway, если получится сможете поделиться либами?
Не вопрос.
Но придётся подождать часок-другой.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
21.08.2015, 13:55
Abraziv__,все понял.
Вот это - решение вашего уравнения:
Matlab M
1
T = solve('t^3 -880256255399764*t^2 -1.79792141373932e+016*t -9.24139523145728e+016 = 0')
Сейчас тоже попробую что-то поискать.
0
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
21.08.2015, 13:59  [ТС]
Спасибо всем. Я весь день сегодня кодил, температура снизилась, пойду 11 км пробегу.
0
21.08.2015, 14:02

Не по теме:

Цитата Сообщение от Abraziv__ Посмотреть сообщение
Мне контора не простит, если всплывёт.
Хм.. А контора выдаст премию если ты решишь эту проблему?)

0
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
21.08.2015, 14:03  [ТС]
castaway, эмм. Лучше не стоит тогда тратить время. Я сам справлюсь, просто посидеть надо ещё. Извините если что не так.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.08.2015, 14:56

Не по теме:

Abraziv__, это была шутка. Не зря я смайлик в конце поставил.



Добавлено через 50 минут
Эмм.. Кто-нибудь знает как возвести в вещественную степень переменную в GMP?
0
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
21.08.2015, 15:45  [ТС]
Эммм. Ща буду гуглить.

Добавлено через 15 минут
Хм..
Можно схитрить:
x = a^b;
тогда справедливо:
x=exp(b*ln(a), где a > 0
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.08.2015, 15:58
Хм...
880256255399783.33978459940285716
880256255399784.42497741663615572
Результат работы GMP + MPFR + MPFR C++ (Pavel Holoborodko, homepage) сильно отличается от эталонного...
Abraziv__, у тебя точно одинаковы методы вычисления в C++ и Mathlab?

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <iomanip>
#include "mpreal.h"
 
int main() {
    mpfr::mpreal::set_default_prec( mpfr::digits2bits( 100 ) );
 
    mpfr::mpreal pi = 3.1415926535897932384626433832795;
    mpfr::mpreal a3 = 1.0;
    mpfr::mpreal b3 = -880256255399764;
    mpfr::mpreal c3 = -1.79792141373932e+016;
    mpfr::mpreal d3 = -9.24139523145728e+016;
 
    mpfr::mpreal p3 = (3. * a3 * c3 - b3 * b3) / (3. * a3 * a3);
    mpfr::mpreal q3 = (2. * b3 * b3 * b3 - 9 * a3 * b3 * c3 + 27 * a3 * a3 * d3) / (27. * a3 * a3 * a3);
    mpfr::mpreal delta = pow( q3 / 2., 2. ) + pow( p3 / 3., 3. );
 
    mpfr::mpreal fi, y0;
    if ( delta > 0 ) {
        y0 = mpfr::pow( -q3 / 2. + mpfr::sqrt( delta ), 1 / 3. ) +
             mpfr::pow( -q3 / 2. - mpfr::sqrt( delta ), 1 / 3. );
    } else {
        if ( delta < 0 ) {
            if ( q3 < 0 ) {
                fi = mpfr::atan2( -mpfr::sqrt( delta ), -q3 / 2. );
            } else {
                if ( q3 > 0 ) {
                    fi = mpfr::atan2( -mpfr::sqrt( delta ), -q3 / 2. ) + pi;
                } else {
                    fi = pi / 2.;
                }
            }
            y0 = 2 * mpfr::sqrt( -p3 / 2. ) * mpfr::cos( fi / 3. );
        } else {
            y0 = 2 * mpfr::pow( -q3 / 2., 1 / 3. );
        }
    }
 
    std::cout << std::setprecision( 32 );
    std::cout << y0 - b3 / 3 << std::endl;
    std::cout << "880256255399784.42497741663615572\n";
}

Не по теме:

Abraziv__, за сколько 11 км пробегаешь?

1
4 / 4 / 2
Регистрация: 05.02.2013
Сообщений: 441
21.08.2015, 16:02  [ТС]
castaway, Спасибо за то что помогаете, глядишь, как нибудь и я вам помогу.
Код "идентичен", сейчас ещё раз всё проверю, возможно исходные данные не те.
11 км, сильно не перенапрягаясь примерно за 50 минут (+-).
Спасибо за ссылку, сейчас всё проверю и отпишусь.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.08.2015, 16:02

Теряется точность в сравнении с exel
Точность измерений на С++ меньше чем на exel. Нужно это исправить. Код проги #include &lt;iostream&gt; #include &lt;cmath&gt; ...

Точность в double
Добрый день Мне задали сделать проект в универе - Калькулятор с великой точностю. Я уже почти его сделал, но у меня возникла...

Точность вычислений у double
Дана задача: &quot;Определить, на сколько нулей заканчивается факториал числа n&quot;. Пример: вводим &quot;25&quot;, на выходе должны получить...

Точность.Тип double
Вопрос такой. Пишу программу, в которой имеется цикл: double t=0, dt = 0.000001; t = t + dt; cout &lt;&lt; &quot;t --&gt;...

Точность типа double
Всем привет! У меня такой код,точность как видите страдает,так как мне нужно с точностью до 20 знака #include&lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru