Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Треугольник Паскаля / 15 сообщений из 15, страница 1 из 1
27.11.2011, 20:34:29
    #37546801
kenny_CK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
Код: plaintext
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.
 public   class  PascalTriangle {
     public   static   final   int  LINES =  10 ; 

  public   static   void  main(String[] args) {  

  int [][] p =  new   int  [LINES] [];  

 p[ 0 ] =  new   int [ 1 ]; 

 System. out. println (p [ 0 ] [ 0 ] =  1 ); 

 p[ 1 ] =  new   int [ 2 ];  

 p[ 1 ][ 0 ] = p[ 1 ][ 1 ] =  1 ; 

 System.out.println(p[ 1 ][ 0 ] + " " + p[ 1 ][ 1 ]);  

  for  ( int  i =  2 ; i < LINES; i++){  

 p[i] =  new   int [i+ 1 ]; 

 System.out.print((p[i][ 0 ] =  1 ) + " ");  

  for  ( int  j =  1 ; j < i; j++) 

 System.out. print ( (p[i] [j] =p[i- 1 ][j- 1 ] -p[i- 1 ][j]) + " ");  

 System.out. println (p [ i] [i]  =   1 );
 
 }
}
}
Пример с учебника. При выполнении:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 1 
 1   1 
 1   0   1 
 1   1  - 1   1 
 1   0   2  - 2   1 
 1   1  - 2   4  - 3   1 
 1   0   3  - 6   7  - 4   1 
 1   1  - 3   9  - 13   11  - 5   1 
 1   0   4  - 12   22  - 24   16  - 6   1 
 1   1  - 4   16  - 34   46  - 40   22  - 7   1 

// Где закралась ошибка?
// Как еще можно выполнить треугольник паскаля?
2b | ! 2b
...
Рейтинг: 0 / 0
27.11.2011, 23:15:24
    #37546950
kiR@ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
А что должно быть? В чем ошибка?
...
Рейтинг: 0 / 0
28.11.2011, 00:28:16
    #37547003
kenny_CK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 1 
 1   1 
 1   2   1 
 1   3   3   1 
 1   4   6   4   1 
 1   5   10   10   5   1 
 1   6   15   20   15   6   1 
 1   7   21   35   35   21   7   1 
 1   8   28   56   70   56   28   8   1 
 1   9   36   84   126   126   84   36   9   1 
...
Рейтинг: 0 / 0
28.11.2011, 00:56:28
    #37547022
kiR@ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
kenny_CK System.out. print ( (p[i] [j] =p[i-1][j-1] -p[i-1][j]) + " ");
Ну судя по описанию, там должен быть плюс, ведь треугольник то сложением получается.
И код лучше приводить со всеми отступами, потому что сейчас это нечитаемая каша.
...
Рейтинг: 0 / 0
28.11.2011, 00:58:05
    #37547024
kiR@ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
Т.е. должно быть
Код: plaintext
System.out. print ( (p[i] [j] =p[i- 1 ][j- 1 ] + p[i- 1 ][j]) + " ");  
...
Рейтинг: 0 / 0
28.11.2011, 00:59:10
    #37547025
kiR@ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
kiR@ch,

И последний раз: (в прошлый разметка закралась):
System.out. print ( (p[i] [j] =p[i-1][j-1] + p[i-1][j]) + " ");
...
Рейтинг: 0 / 0
28.11.2011, 01:02:04
    #37547026
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
p[i-1][j-1] -p[i-1][j]) + " ");

p[i-1][j-1] + p[i-1][j]) + " ");
...
Рейтинг: 0 / 0
28.11.2011, 01:02:26
    #37547027
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
оке ) я опоздал
...
Рейтинг: 0 / 0
28.11.2011, 01:12:30
    #37547031
kenny_CK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
Код: plaintext
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.
 public   class  TwoDAgain {
     public   static   void  main(String args[]){

		 int  twoD[][] =  new   int [ 4 ][];

		twoD[ 0 ] =  new   int [ 1 ];

		twoD[ 1 ] =  new   int [ 2 ];

		twoD[ 2 ] =  new   int [ 3 ];

		twoD[ 3 ] =  new   int [ 4 ];

		 int  i, j, k =  0 ;

		 for (i =  0 ; i <  4 ; i++)

			 for (j =  0 ; j < i+ 1 ; j++){

				twoD[i][j] = k;

				k++;

			}

		 for (i =  0 ; i <  4 ; i++){

			 for (j =  0 ; j < i+ 1 ; j++)

				System.out.print(twoD[i][j]+" ");

			System.out.println();

		}

	}
}
Код: plaintext
1.
2.
3.
4.
run:
 0  
 1   2  
 3   4   5  
 6   7   8   9 

Как работают циклы в этом примере? Каким образом k >= 4 и как после n столбцов мы переходим на System.out.println(); ?
...
Рейтинг: 0 / 0
28.11.2011, 10:31:15
    #37547238
kiR@ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
kenny_CKКак работают циклы в этом примере? Каким образом k >= 4 и как после n столбцов мы переходим на System.out.println(); ?
Ну такие базовые вещи, как циклы, вам никто здесь объяснять не будет. И самое главное, не сможет вот так в нескольких предложениях донести до вас. Мой вам совет: садитесь и на бумажечке прогоняете программу. Сначала ставите i=1, и дальше пошло, вычисляете чему равны переменные на каждой итерации цикла. Помогает понять логику.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.12.2012, 20:08:07
    #38088725
artembs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
kenny_CK, а как построить его наоборот
0
00
000
0000
00000
а то вообще не получается(((
...
Рейтинг: 0 / 0
21.12.2012, 20:09:22
    #38088728
artembs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
kiR@ch,

что б 0 начинался не слева на право, а с права на лево
...
Рейтинг: 0 / 0
21.12.2012, 20:11:18
    #38088733
artembs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
kiR@ch, что б 0 начинался не с лева на право, а наоборот справа на лево
...
Рейтинг: 0 / 0
25.12.2012, 09:17:32
    #38091472
silvan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
artembs,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        System.out.println("reverse");
        for (int i=1; i<=LINES; i++)
        {
            for (int j=1; j<=LINES; j++)
                if (j <= (LINES-i))
                    System.out.print("  ");
                else
                    System.out.print(p[i-1][LINES-j]+" ");
            System.out.println();
        }
...
Рейтинг: 0 / 0
25.12.2012, 15:26:53
    #38092076
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Треугольник Паскаля
artembs, обычно так не делают. Но можно. Есть прямая формула расчета биномиальных коэффициентов.
с(n,m)=n!/(m!(n-m)!). Это по сути диагональ матрицы паскаля. Где n,m - координаты ячейки. Но она
содержит в числителе и знаметателе несократимые функции факториалов которые при расчётах
легко переполняют разрядные сетки даже для 64-битных целы. Надо оно вам или нет - решайте сами.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Треугольник Паскаля / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]