Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 14 kết quả

Đề tài: Cùng Tham Gia Thảo Luận !!! [Bài Toàn Khó]

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    0

    Mặc định Cùng Tham Gia Thảo Luận !!! [Bài Toàn Khó]

    Đề Olympic của trường em:

    Bài 1:

    Nhập 2 số nguyên dương (mỗi số có 30 -> 100 chữ số) thực hiện phép tính + và nhân 2 số đó .

    Bài 2:
    Tính Ma trận nghịch đảo A[m][n]

    Bài 3: Cho ma trận A[m][n]
    a) Sắp xếp ma trận theo hình xoắn ốc ?
    b) Tính tổng các giá trị của các hàng, các cột trước và sau khi sắp xếp.
    c) Tìm phần tử nhỏ nhất của hàng i và nhỏ nhất của cột j.

    Bài 4: cho ma trận A[m][n], tìm các số lớn nhất (lớn hơn các phần tử xung quanh nó) và tìm ma trận con 3x3 có tổng lớn nhất.

    Dài kinh khủng !! Ai có code thì post lên cho anh em cùng thảo luận

  2. #2
    Ngày gia nhập
    03 2008
    Bài viết
    78

    @@: Bạn học trường nào thế?Có thể cho mình biết hok?
    - Bài 1: Code thì ko có nhưng bài này ko khó lắm
    + Dùng mảng một chiều và cộng như cộng tay...

    - Bài 2: có code nhưng dài lắm nha: dùng phương pháp khử Gauss - Jordan
    C Code:
    1. /* Tinh ma tran dao bang phep khu GAUSS - JORDAN */
    2. #include <stdio.h>
    3. #include <math.h>
    4.  
    5. #define MAX 10
    6. double A[MAX][MAX], B[MAX][MAX], X[MAX][MAX];
    7.  
    8. void gauss_jordan(int n)
    9. {
    10.   int i=0, j, done=0, m, k;
    11.   double max, c;
    12.   printf("\nTinh nghiem cua he phuong trinh");
    13.   while (!done)
    14.   {
    15.     if (A[i][i] == 0)
    16.     {
    17.       max = 0;
    18.       m = i;
    19.       for (k=i+1; k<n; k++)
    20.         if (max < fabs(A[k][i]))
    21.         {
    22.           m = k;
    23.           max = fabs(A[k][i]);
    24.         }
    25.       if (m != i)
    26.       {
    27.         for (j=i; j<n; j++)
    28.         {
    29.           c = A[i][j];
    30.           A[i][j] = A[m][j];
    31.           A[m][j] = c;
    32.         }
    33.         for (j=0; j<n; j++)
    34.         {
    35.           c = B[i][j];
    36.           B[i][j] = B[m][j];
    37.           B[m][j] = c;
    38.         }
    39.       }
    40.       if (m == i)
    41.         done = 1;
    42.     }
    43.     if (A[i][i] != 0)
    44.     {
    45.       c = 1/A[i][i];
    46.       for (j=i; j<n; j++)
    47.         A[i][j] = A[i][j] * c;
    48.       for (j=0; j<n; j++)
    49.         B[i][j] = B[i][j] * c;
    50.       for (k=0; k<n; k++)
    51.         if (k != i)
    52.         {
    53.           c= A[k][i];
    54.           for (j=i; j<n; j++)
    55.             A[k][j] = A[k][j] - A[i][j]*c;
    56.           for (j=0; j<n; j++)
    57.             B[k][j] = B[k][j] - B[i][j] * c;
    58.         }
    59.     }
    60.     printf("\nLan khu hang %d", i);
    61.     for (k=0; k<n; k++)
    62.     {
    63.       printf("\n");
    64.       for (j=0; j<n; j++)
    65.         printf("%10.5lf", A[k][j]);
    66.       for (j=0; j<n; j++)
    67.         printf(" = %10.5lf", B[k][j]);
    68.     }
    69.     i++;
    70.     if (i>=n)
    71.       done = 1;
    72.   }
    73.   if (i >= n)
    74.     for (j=0; j<n; j++)
    75.       for (k=0; k<n; k++)
    76.         X[j][k] = B[j][k];
    77. }
    78.  
    79. void in_A(int n)
    80. {
    81.   int i, j;
    82.   printf("\nMa tran A :");
    83.   for (i=0; i<n; i++)
    84.   {
    85.     printf("\n");
    86.     for (j=0; j<n; j++)
    87.       printf("%10.5lf", A[i][j]);
    88.   }
    89. }
    90.  
    91. void in_B(int n)
    92. {
    93.   int i, j;
    94.   printf("\nMa tran B :\n");
    95.   for (i=0; i<n; i++)
    96.   {
    97.     printf("\n");
    98.     for (j=0; j<n; j++)
    99.       printf("%10.5lf", B[i][j]);
    100.   }
    101. }
    102.  
    103. void in_X(int n)
    104. {
    105.   int i, j;
    106.   printf("\nMa tran dao :\n");
    107.   for (i=0; i<n; i++)
    108.   {
    109.     printf("\n");
    110.     for (j=0; j<n; j++)
    111.       printf("%10.5lf", X[i][j]);
    112.   }
    113. }
    114.  
    115. void main()
    116. {
    117.   int n, i, j, p;
    118.  
    119.   printf("Giai he phuong trinh tuyen tinh AX = B.");
    120.   printf("\nbang phuong phap khu GAUSS.");
    121.   printf("\nCho biet cap ma tran : ");
    122.   scanf("%d%*c", &n);
    123.   printf("\nNhap ma tran A :\n");
    124.   for (i=0; i<n; i++)
    125.     for (j=0; j<n; j++)
    126.     {
    127.       printf("A[%d][%d] = ", i, j);
    128.       scanf("%lf", &A[i][j]);
    129.     }
    130.   printf("\nMa tran B la ma tran don vi :\n");
    131.   for (i=0; i<n; i++)
    132.     for (j=0; j<n; j++)
    133.       if (i==j)
    134.         B[i][j]= 1;
    135.       else
    136.         B[i][j]= 0;
    137.   in_A(n);
    138.   in_B(n);
    139.   gauss_jordan(n);
    140.  
    141.   in_X(n);
    142. }

    - Bài 3:Khá dễ nhưng cẩn thận bài xoắn ốc
    - Bài 4:bài này mình sẽ code thử và post lên sau nhé!

    Cuối cùng mình muốn nói những bài này là loại bài ở mức độ semi-pro và rất hay + có nhiều cách giải.Trên đây là những đề xuất thôi...còn sẽ nói về nó nhiều nữa.
    No way, No success..

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    0

    Biết thế !!! Nhưng bài xoắn ốc chỉ có 1 hướng giải quyết là sắp xếp ma trận tăng dần và đi theo đường xoắn ốc .. Nhưng cái này khó quá bó phép .. Tớ mới viết được chương trình chạy ma trận xoắn ốc máy tự nhập, mình nhập vào chạy thì chưa làm được

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Tớ mới viết được chương trình chạy ma trận xoắn ốc máy tự nhập, mình nhập vào chạy thì chưa làm được
    Post lên cho tui coi tui sẽ giúp !

  5. #5
    Ngày gia nhập
    03 2008
    Bài viết
    78

    @@VICENT: Không tìm ra qui luật thì sao bạn ko đổ ma trận ra mảng 1 chiều .Sau đó sắp mảng một chiều rồi lại đổ vào ma trận như cũ...
    No way, No success..

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mặc định Cùng Tham Gia Thảo Luận !!! [Bài Toàn Khó]

    bài số 4 tớ nghĩ là R2 dư sức giải quyết!

    PHP Code:
    a> : A[m,n] -> [m+1,n+1] ( Dùng lính canh )
         for(
    i:1->m)
            for(
    j:1->n)
               if(
    A[i][jis max )
                  
    push.A[i,j
    b:
    PHP Code:
    int x=y=max=-1;
     for(
    i:0->n-3)
       for(
    j:0->m-3)
          if(
    sumChildMatrix(A[i,j],3) > max)
             
    x=i y=j max 

  7. #7
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Hầu như những bài này đều có trong diễn đàn, bạn hãy search đi?
    Chưa tìm, chưa tự làm, post bài như vậy không có lợi lắm cho bản thân bạn
    Không biết ghi gì luôn ...

  8. #8
    Ngày gia nhập
    03 2008
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi Forlorn_hope Xem bài viết
    Hầu như những bài này đều có trong diễn đàn, bạn hãy search đi?
    Chưa tìm, chưa tự làm, post bài như vậy không có lợi lắm cho bản thân bạn
    Oài sao tớ lại chưa bao giờ đi search mà post lên cho mọi người !!! Mình đã nói là những bài này tớ post lên chỉ ở mức tham khảo cách làm tối ưu nhất, chứ tớ có cần các cậu làm giùm đâu.... Thảo luận đưa ra ý kiến thôi mà

  9. #9
    Ngày gia nhập
    03 2008
    Bài viết
    0

    Bài đó nè : Xoắn ốc ....

    Code:
    #include <stdio.h>
    #include <conio.h>
    int n;
    int a[50][50];
    //============================================//
    void Nhap_mtchuaxep(int i,int j)
    {
    		for (i=1;i<=n;i++)
    			for (j=1;j<=n;j++)
    				{
    					printf ("a[%d][%d]= ",i,j);
    					scanf ("%d",&a[i][j]);
    				}
    		getch();
    }
    //============================================//
    void Xuat_mt(int i,int j)
    {
    		for(i=1;i<=n;i++)
    		{
    		  for(j=1;j<=n;j++)
    					 printf("%4d",a[i][j]);
    
    		  printf("\n");
    		}
    getch();
    }
    //============================================//
    main()
    {
    		clrscr();
    		int i,j;
    		printf("Nhap kich thuoc ma tran");
    		scanf("%d", &n);
    		Nhap_mtchuaxep(i,j);
    		printf("ma tran chua sap xep:\n");
    		Xuat_mt(i,j);
    		printf("\n");
    		int Min=1;
    		int Max=n;
    		int k=1;
    		// Dien so theo vong tron , giam dan toa do hinh vuong can dien
    		while (Min < Max)
    		{
    				for(i=Min;i<=(Max-1);i++) {a[Min][i]=k;k++;} //dien so tu trai sang phai o dong dau tien
    				for(i=Min;i<=(Max-1);i++) {a[i][Max]=k;k++;} //tren xuong duoi o cot cuoi cung
    				for(i=Min;i<=(Max-1);i++) {a[Max][Max-i+Min]=k;k++;} // phai sang trai o dong duoi cung
    				for(i=Min;i<=(Max-1);i++) {a[Max-i+Min][Min]=k;k++;} //duoi len tren o cot dau tien
    				//Sau do cho toa do cua hinh vuong can dien thu nho lai 1 don vi
    				Min++;
    				Max--;
    		}
    		printf("xuat ma tran vua sap xep:\n");
    		Xuat_mt(i,j);
    		//Viet chuong trinh tinh tong cac hang matran,va cac cot , truoc ma sau khi sap xep //
    
    getch();
    return 0;
    }

  10. #10
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Oài sao tớ lại chưa bao giờ đi search mà post lên cho mọi người !!! Mình đã nói là những bài này tớ post lên chỉ ở mức tham khảo cách làm tối ưu nhất, chứ tớ có cần các cậu làm giùm đâu.... Thảo luận đưa ra ý kiến thôi mà
    Đã có rất nhiều thảo luận rùi đó, cậu cũng nên cho 1 số ý kiến đi chứ. Tại có rất nhiều người post bài lên với mục đích nhờ giải dùm, nên phản ứng của các mod có hơi chủ quan thì cậu cũng nên thông cảm.
    -Anyway vàng thật thì làm gì sợ lửa nào, muốn thảo luận thì rất tốt

Các đề tài tương tự

  1. Bài toán phân cụm đa giác ảnh trong C#, mọi người cùng thảo luận!
    Gửi bởi nuoclocz trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 07-01-2013, 09:27 AM
  2. Tìm hiểu về .Net Remotting, cùng nhau thảo luận
    Gửi bởi tanaka trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 7
    Bài viết cuối: 04-03-2012, 07:37 PM
  3. Kỹ thuật C Tổng hợp những bài tập C khá thú vị. Anh em tham gia giải và thảo luận nào!
    Gửi bởi anhtran trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 76
    Bài viết cuối: 02-07-2011, 07:45 PM
  4. Xử lý SMS trong ASP.NET, C#. Cùng nhau thảo luận nhé!
    Gửi bởi davidhuynhvan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 16-02-2011, 09:22 PM
  5. Tham gia thảo luận để nhận vé thử nghiệm Thời Đại Văn Minh
    Gửi bởi qttv1987 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 29-06-2010, 11:14 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn