С Новым годом! Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.98/92: Рейтинг темы: голосов - 92, средняя оценка - 4.98
3 / 3 / 0
Регистрация: 10.11.2011
Сообщений: 126

На сколько частей делят плоскость прямые

26.04.2014, 18:22. Показов 17848. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане. Задали задачку, идеи есть, но проблема с реализацией. Помогите решить пожалуйста, если не трудно. Условие:
Даны N точек на плоскости. Проведем прямые через каждую пару точек. На сколько частей ненулевой площади эти прямые делят плоскость?
Формат входных данных:
В первой строке входного файла задано число N - количество точек (2 <= N <= 10). Следующие N строк содержат по два числа X[i] Y[i] - каждая через пробел, координаты i-ой точки (-100 <= X[i], Y[i] <= 100). Никакие две точки не совпадают, никакие три не лежат на одной прямой. Все числа во входном файле целые.
Формат выходных данных:
В первой строке выходного файла выведите P - количество частей, на которые полученные прямые делят плоскость.
Пример:
Ввод:
4
0 0
0 1
1 0
1 1
Вывод:
16
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.04.2014, 18:22
Ответы с готовыми решениями:

На сколько на сколько частей делят треугольник...
На одной из боковых сторон треугольника взято n точек, на второй - m точек. Каждая вершина при основе треугольника соединена прямыми с...

На сколько частей делится плоскость?
На сколько частей делить площадь 7ми прямых общего пложения?

Две прямые и плоскость
Всем доброго времени. Такая беда. Нужно построить плоскость, проходящею через прямые L(1): (x/1)=((y-1)/1)=(z/1) and L(2):...

36
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
30.04.2014, 20:56
Студворк — интернет-сервис помощи студентам
Немного поспешил. Сейчас начертил, вполне укладывается.

freewrestler, я уже увидел свою ошибку
0
3 / 3 / 0
Регистрация: 10.11.2011
Сообщений: 126
30.04.2014, 20:57  [ТС]
Ничего страшного буду очень благодарен, если будет какой-то прогресс в решении этой задачки
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
01.05.2014, 00:21
Цитата Сообщение от freewrestler Посмотреть сообщение
Итого: 1 + 6 + 5 = 12
А разделено на 16 частей.
а если так
считаем количество пересечений таким способом если две линии то пересечение 1 если 3 линии то пересечений 2
а если 4 линии то 3
т.е количество пересечений(ну или по другому обозвать) в одной точке, равно количеству линий проходящих через точку-1
тогда
1+6(линии)+1+2+2+2+2(пересечения)=16
это даже можно обосновать так что пресечение это "зарубка" которую оставляет другая линия,т.е две пересекающие третью,оставят на третьей 2 "зарубки" и не важно совпадают ли их координаты или нет
но это нужно проверять, я опять же по твоему чертежу вывел

Добавлено через 23 минуты
алгоритм вижу примерно так
для простоты три линии пресекаются в одной точке 6 плоскостей
считаем пресечения у первой линии пересекает вторую Л1++ Л2--
пересекает третью Л1++ Л3--
считаем вторую пересекает первую Л2++ Л1--, её уже считали, пересекает третью Л2++ Л3--
третью как последнюю пропускаем
итого имеем Л1=1 Л2=1 Л3=-2
здесь два пути или складываем Л1+Л2=2 или берем модуль от Л3=2, сколько линий её пересекло

и складываем 1 +3(количество линий) +2 (количество пересечений)=6

но это так, мысли вслух, придется конечно еще доработать
1
3 / 3 / 0
Регистрация: 10.11.2011
Сообщений: 126
01.05.2014, 01:41  [ТС]
ValeryS, оо очень хорошо объяснили. Спасибо большое) Это именно то, что хотел узнать (получить).

Добавлено через 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
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <cstdlib>
using namespace std;
int a[1001], b[1001], k1[46];
int main ()
{
 
    int n, x[12], y[12], i, j, k = 0, s = 1, kol = 0;
    cin >> n;
    for(i = 1; i <= n; i++)
        cin >> x[i] >> y[i];
    if(n == 2) {
        cout << 2 << endl;
        return 0;
    }
    if(n % 2 == 0)
        s += (n / 2) * (n - 1);
    else
        s += ((n - 1) / 2) * n;
    for(i = 1; i < n; i++)
        for(j = i + 1; j <= n; j++) {
            k++;
            a[k] = y[j] - y[i];
            b[k] = x[i] - x[j];
        }
    for(i = 1; i < k; i++)
        for(j = i + 1; j <= k; j++) {
            if(a[i] * b[j] != a[j] * b[i]) {
                k1[i]++;
                k1[i+1]--;
            }
        }
    for(i = 1; i <= k; i++) {
       // cout << k1[i] << ' ';
        s += abs(k1[i]);
    }
    cout << s << endl;
return 0;
}
a, b - нахожу коэффициенты для каждой прямой. Затем
C++
1
a[i] * b[j] != a[j] * b[i]
- смотрю, пересекаются ли они или нет. k - количество прямых. k1 - массив, который содержит количество пересечений для каждой прямой.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
09.05.2014, 06:53
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
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
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
/////////////////////////////////////////////////////////////////////////////////////////
//Даны N точек на плоскости. Проведем прямые через каждую пару точек. На сколько частей ненулевой площади эти прямые делят плоскость?
//Формат входных данных:
//В первой строке входного файла задано число N - количество точек (2 <= N <= 10). Следующие N строк содержат по два числа X[i] Y[i] - каждая через пробел, координаты i-ой точки (-100 <= X[i], Y[i] <= 100). Никакие две точки не совпадают, никакие три не лежат на одной прямой. Все числа во входном файле целые.
//Формат выходных данных:
//В первой строке выходного файла выведите P - количество частей, на которые полученные прямые делят плоскость.
//Пример:
//Ввод:
//4
//0 0
//0 1
//1 0
//1 1
//Вывод:
//16
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cmath>
#include <conio.h>
#include <iostream>
#include <limits>
#include <map>
#include <set>
#include <utility>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
typedef double  T_real;
/////////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  equal_for_real(T a, T b)
{
    const int   coef                    =   16;
 
    const T     epsilon_for_coef        =       coef
                                            *   std::numeric_limits<T>::epsilon();
 
    T           max_abs                 =   std::max
                                            (
                                                abs(a),
                                                abs(b)
                                            );
 
    max_abs                             =   std::max
                                            (
                                                max_abs,
                                                T(1.0)
                                            );
 
    T           epsilon_for_arguments   =       epsilon_for_coef
                                            *   max_abs;
 
    return      abs(a - b) < epsilon_for_arguments;
}
/////////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  less_for_real(T a, T b)
{
    return      a < b
            &&  !equal_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  greater_for_real(T a, T b) 
{
    return  less_for_real(b, a);
}
/////////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  less_equal_for_real(T a, T b) 
{
    return !greater_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  greater_equal_for_real(T a, T b) 
{
    return !less_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////////
class  T_point
{
    //-----------------------------------------------------------------------------------
    T_real  x_;
    T_real  y_;
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    T_point
        (
            T_real  x = 0,
            T_real  y = 0
        )
        :
        x_(x),
        y_(y)
    {}
    //-----------------------------------------------------------------------------------
    void  assign( const T_point&  point )
    {
        *this   =   point;
    }
    //-----------------------------------------------------------------------------------
    T_point  operator- (const T_point&  point)  const
    {
        return  T_point
                    (
                        x_ - point.x_,
                        y_ - point.y_
                    );
    }
    //-----------------------------------------------------------------------------------
    T_point  operator+ (const T_point&  point)  const
    {
        return  T_point
                    (
                        x_ + point.x_,
                        y_ + point.y_
                    );
    }
    //-----------------------------------------------------------------------------------
    bool    operator< (const T_point&  point)   const
    {
        return      less_for_real       (x_, point.x_)
                ||      equal_for_real  (x_, point.x_)
                    &&  less_for_real   (y_, point.y_);
    }
    //-----------------------------------------------------------------------------------
    T_point  operator* (T_real  t)              const
    {
        return  T_point
                    (
                        x_ * t,
                        y_ * t
                    );
    }
    //-----------------------------------------------------------------------------------
    T_real  x()                                 const
    {
        return  x_;
    }
    //-----------------------------------------------------------------------------------
    T_real  y()                                 const
    {
        return  y_;
    }
    //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::set<T_point>   T_points;
/////////////////////////////////////////////////////////////////////////////////////////
class   T_line
{
    T_point     point_A_;
    T_point     point_B_;
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    T_line
        (
            const T_point&  point_A,
            const T_point&  point_B
        )
        :
        point_A_( point_A ),
        point_B_( point_B )
    {
        if  (
                point_B_ < point_A_
            )
        {
            std::swap
                (
                    point_A_,
                    point_B_
                );
        }//if
    }
    //-----------------------------------------------------------------------------------
    bool  operator<(const T_line&  line)    const
    {
        return      std::make_pair
                        (
                            point_A_,
                            point_B_
                        )
 
                <   std::make_pair
                        (
                            line.point_A_,
                            line.point_B_
                        );
    }
    //-----------------------------------------------------------------------------------
    T_point  get_vector()                   const
    {
        return  point_B_ - point_A_;
    }
    //-----------------------------------------------------------------------------------
    T_point  point_A()                      const
    {
        return  point_A_;
    }
    //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
class  T_intersection_point: public  T_point
{
    //-----------------------------------------------------------------------------------
    const T_line    line_A_;
    const T_line    line_B_;
    bool            empty_;
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    T_intersection_point
        (
            const  T_line&  line_A,
            const  T_line&  line_B
        )
        :
        line_A_( line_A ),
        line_B_( line_B )
    {
        calc_lines_intersection();
    }
    //-----------------------------------------------------------------------------------
    bool  empty()   const
    {
        return  empty_;
    }
    //-----------------------------------------------------------------------------------
private:
    //-----------------------------------------------------------------------------------
    void  calc_lines_intersection()
    {
        //Найдем точку K пересечения прямых AB и CD.
        //Пусть     AK = AB * p                         (1)
        //и         CK = CD * r.
        //Тогда из уравнения    AK + KC = AC
        //получим:              AB * p + DC * r = AC
        //т.е.                  (B - A) * p + (C - D) * r = C - A.
        //Находим из этого уравнения p по правилу Крамера, тогда из (1) получим:
        //                      K = A + AB * p
        //т.е.                  K = A + (B - A) * p.
 
        T_point     col_1
                        (
                            line_A_.get_vector()
                        );
 
        T_point     col_2
                        (
                            line_B_.get_vector()
                        );
 
        T_point     col_3
                        (
                                line_B_.point_A()
                            -   line_A_.point_A()
                        );
 
        T_real  det     =   calc_det
                                (
                                    col_1,
                                    col_2
                                );
 
        empty_          =   equal_for_real
                                (
                                    det,
                                    T_real()
                                );
 
        if( !empty_ )
        {
            T_real  det_1           =   calc_det
                                            (
                                                col_3,
                                                col_2
                                            );
 
            T_real  factor          =   det_1 / det;
 
            T_point     res_point   =       line_A_.point_A()
                                        +       line_A_.get_vector()
                                            *   factor;
 
            assign( res_point );
        }
    }
    //-----------------------------------------------------------------------------------
    static T_real  calc_det
        (
            const T_point   point_A,
            const T_point   point_B
        )
    {
        return      point_A.x() * point_B.y()
                -   point_B.x() * point_A.y();
    }
    //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
typedef     std::set<T_line>            T_lines;
typedef     std::map<T_point, T_lines>  T_lines_of_point;
/////////////////////////////////////////////////////////////////////////////////////////
class  T_plane_with_lines
{
    const T_points      given_points_;
    T_lines             lines_;
    T_lines_of_point    lines_of_point_;
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    T_plane_with_lines(const T_points&  points)
        :
        given_points_( points )
    {
        make_lines              ();
        add_intersection_points ();
    }
    //-----------------------------------------------------------------------------------
    int  get_parts_counter()    const
    {
        int res =   1 + lines_.size();
 
        for (
                auto
                it_point_and_lines  =   lines_of_point_.begin   ();
                it_point_and_lines  !=  lines_of_point_.end     ();
                ++it_point_and_lines
            )
        {
            res +=  it_point_and_lines->second.size() - 1;
        }//for
 
        return  res;
    }
    //-----------------------------------------------------------------------------------
private:
    //-----------------------------------------------------------------------------------
    void  make_lines()
    {
        for (
                auto
                it_point_A    =   given_points_.begin ();
                it_point_A    !=  given_points_.end   ();
                ++it_point_A
            )
        {
            auto    B_begin     =   it_point_A;
            ++B_begin;
 
            for (
                    auto
                    it_point_B    =   B_begin;
                    it_point_B    !=  given_points_.end();
                    ++it_point_B
                )
            {
                T_line  cur_line
                            (
                                *it_point_A,
                                *it_point_B
                            );
 
                lines_                          .insert( cur_line );
                lines_of_point_[ *it_point_A ]  .insert( cur_line );
                lines_of_point_[ *it_point_B ]  .insert( cur_line );
            }//for
        }//for
    }
    //-----------------------------------------------------------------------------------
    void  add_intersection_points()
    {
        for (
                auto
                it_line_A   =   lines_.begin    ();
                it_line_A   !=  lines_.end      ();
                ++it_line_A
            )
        {
            auto    line_B_begin    =   it_line_A;
            ++line_B_begin;
 
            for (
                    auto
                    it_line_B   =   line_B_begin;
                    it_line_B   !=  lines_.end();
                    ++it_line_B
                )
            {
                T_intersection_point    intersection_point
                                            (
                                                *it_line_A,
                                                *it_line_B
                                            );
 
                if  (
                        !intersection_point.empty()
                    )
                {
                    lines_of_point_[ intersection_point ].insert( *it_line_A );
                    lines_of_point_[ intersection_point ].insert( *it_line_B );
                }
            }//for
        }//for
    }
    //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    int     points_count    =   0;
    std::cout   <<  "Введите количество точек: ";
 
    std::cin    >>  points_count;
 
    std::cout   <<  "Введите "
                <<  points_count
                <<  " точек:"
                <<  std::endl;
 
    T_points    points;
 
    for(int i = 0; i < points_count; ++i)
    {
        T_real  x = 0;
 
        std::cout   <<  "x"
                    <<  i + 1
                    <<  " = ";
 
        std::cin    >>  x;
 
        T_real  y = 0;
 
        std::cout   <<  "y"
                    <<  i + 1
                    <<  " = ";
 
        std::cin    >>  y;
 
        points.insert
            (
                T_point(x, y)
            );
 
        std::cout   <<  std::endl;
    }//for
 
    T_plane_with_lines  plane_with_lines( points );
 
    std::cout   <<  "Прямые делят плоскость на "
                <<  plane_with_lines.get_parts_counter()
                <<  " частей."
                <<  std::endl;
 
    getch();
}
1
3 / 3 / 0
Регистрация: 10.11.2011
Сообщений: 126
12.05.2014, 03:42  [ТС]
Вообще не компилируется, много ошибок выдает((

Добавлено через 5 минут
http://sc.uploads.ru/JjuIc.jpg - вот ссылка на скрин всех ошибок, которые появляются при попытке компилирования.
0
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
12.05.2014, 03:50
Mr.X, скажите пожалуйста, а откуда и для чего такое странное форматирование кода?
0
3 / 3 / 0
Регистрация: 10.11.2011
Сообщений: 126
12.05.2014, 03:53  [ТС]
tegauss, вот я тоже удивился. Но он во всех темах отвечал такими страшными кодами, просмотри))
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
12.05.2014, 10:58
Цитата Сообщение от freewrestler Посмотреть сообщение
Вообще не компилируется, много ошибок выдает((
А на чем компилируете?

Добавлено через 3 минуты
Цитата Сообщение от tegauss Посмотреть сообщение
Mr.X, скажите пожалуйста, а откуда и для чего такое странное форматирование кода?
А в чем вы видите странность?
0
3 / 3 / 0
Регистрация: 10.11.2011
Сообщений: 126
12.05.2014, 14:32  [ТС]
Codeblocks 12.11
Компилятор MinGW.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
12.05.2014, 20:54
Цитата Сообщение от freewrestler Посмотреть сообщение
Codeblocks 12.11
Компилятор MinGW.
Не знаю, у меня на 10-й студии нормально работает.
0
3 / 3 / 0
Регистрация: 10.11.2011
Сообщений: 126
12.05.2014, 23:09  [ТС]
извините, а в visual studio как пишется freopen ? подскажите в какой строке мне ее подставить?
Имя входного файла: parts.in
Имя выходного файла: parts.out
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,925
Записей в блоге: 5
13.05.2014, 13:08
Теорему Эйлера о планарных графах так никто и не вспомнил. Пересечение двух прямых дает вершину графа. В общем случае степень этой вершины 4, но может быть и 6, если в данной точке пересекаются сразу три прямых, 8 для четырех прямых и т. д. Нужно перебрать все пары прямых и вычислить все точки пересечения - вершины. После чего нетрудно подсчитать степени всех вершин по совпадению координат, число отрезков, а затем по формуле Эйлера число граней.
2
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
14.05.2014, 00:54
Цитата Сообщение от palva Посмотреть сообщение
Пересечение двух прямых дает вершину графа. В общем случае степень этой вершины 4, но может быть и 6, если в данной точке пересекаются сразу три прямых, 8 для четырех прямых
Эт я че такую умную штуку перепридумал
Цитата Сообщение от ValeryS Посмотреть сообщение
считаем количество пересечений таким способом если две линии то пересечение 1 если 3 линии то пересечений 2
а если 4 линии то 3
т.е 3 прямых это 4 части + 2 пересечения =6

серьезно, не знал об этой формуле
на коленке придумал
а как по той формуле рассчитать если прямые параллельны?
0
2892 / 1927 / 208
Регистрация: 05.06.2011
Сообщений: 5,648
14.05.2014, 06:21
Цитата Сообщение от ValeryS Посмотреть сообщение
а как по той формуле рассчитать если прямые параллельны?
Судя по вопросу, благородный дон счёл ненужным глянуть предложенную формулу. Имхо, зря.
Да, ещё одну тонкость не заметил сразу: нужно будет добавить к изначально имеющемуся множеству точек дополнительные точки пересечения прямых. Это, конечно, усложняет расчёты, но без этого, подозреваю, в любом случае не обойтись.

Добавлено через 6 минут
Хм. Ещё подумал. А получится? Берём три точки не на одной прямой. Частей получится 7. Формула Эйлера для треугольника даст 1 часть — внутреннюю. Разбиения внешней части она не даст, поскольку ребро — это отрезок кривой.
В принципе, можно нарисовать вокруг всех наших точек достаточно большую окружность (чтоб туда поместились не только изначальные точки, но и точки дополнительных пересечений) и добавить точки пересечения прямых с оной. Как-то так.
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,925
Записей в блоге: 5
14.05.2014, 10:25
iifat, ну так, теорема сначала доказывалась для многогранников, даже в школьном Атанасяне она излагается. То есть, другими словами, для графов, расположенных на сфере. А для случая плоскости, везде оговаривается, что учитывается внешняя часть чертежа, которая тоже считается гранью.
1
2892 / 1927 / 208
Регистрация: 05.06.2011
Сообщений: 5,648
14.05.2014, 13:24
А, точно, сам поленился формулу посмотреть.
Пожалуй, такой вариант тоже пойдёт — спроектировать на сферу, добавить вершину в бесконечной точке и счтать по Эйлеру.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.05.2014, 13:24
Помогаю со студенческими работами здесь

Прямые разбивают плоскость на полосы
Прямые разбивают плоскость на полосы ширины 7. Определить вероятность того, что отрезок длины 1, наугад брошенный на плоскость, не...

Построить плоскость, проходящую через прямые
Всем привет Задание: построить плоскость, проходящею через прямые l1= (x/1)=((y-1)/1)=(z/1) and l2= ((x-2)/3)=((y-3)3)=((z-2)/3). ...

На сколько частей и как нужно разделить отрезок, чтобы произведение длин частей было максимальным
Помогите написать вот такую программу. Не могу ничего придумать. Может методом перебора или еще как-нибудь. На сколько частей и как...

Изобразить все используемые в задании объекты (прямые, плоскость, нормаль к плоскости)
Задание: Даны канонические уравнения двух прямых в пространстве. \frac{x-3}{2}=\frac{y-1}{3}=\frac{z-1}{4} и ...

Вычислить, на какое наибольшее количество частей могут разбить плоскость N окружностей
Окружности - 2 2 окружности разбивают плоскость максимум на 4 части. А на какое наибольшее количество частей могут разбить плоскость N...


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru