Hiển thị kết quả từ 1 đến 6 / 6
  1. #1
    Tham gia
    16-10-2011
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts

    Buồn quá đi ! Giai hệ phương trình

    Các bác chỉ hướng dùm em với. Em muốn viết chương trình tìm nghiệm nguyên dương của hệ phương trình sau:
    X+Y+Z=100
    5X+3Y+z/3=100
    em ko nghĩ ra cách nào nên em sử dụng vòng for để lặp tất cả giá trị của x,y,z thỏa mãn hệ trên

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    void main(void)
    {
    int x,y,z;
    for(x=0;x<100;x++){
    for(y=0;y<100;y++)
    {
    for(z=0;z<100;z++){
    if((x+y+z==100)&&(5x+3y+z/3==100)){

    printf("x=%d",x);
    printf("y=%d",y);
    printf("z=%d",z);
    }

    }
    }
    }
    }
    Em thấy nó báo lỗi thiếu dấu ngoặc mà em ko hiểu thiếu chỗ nào. Em muốn hỏi là ngoài cách này thì còn có cách nào để giải ko ạ
    Quote Quote

  2. #2
    Tham gia
    15-03-2010
    Bài viết
    1,572
    Like
    84
    Thanked 1,573 Times in 861 Posts
    Đếm số dấu ngoặc trái và số dấu ngoặc phải.
    Bất cứ thời điểm nào số dấu ngoặc trái cũng phải lớn hơn hay bằng số dấu ngoặc phải.
    Kết bài, số ngoặc trái và ngoặc phải phải bằng nhau.

  3. #3
    Tham gia
    05-03-2010
    Bài viết
    129
    Like
    2
    Thanked 16 Times in 16 Posts
    Hệ gì vậy trời? 2 phương trình 3 ẩn thì chỉ có nước mò thôi nhá

  4. #4
    Tham gia
    15-06-2013
    Bài viết
    10
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi khangphamngoc90 View Post
    Hệ gì vậy trời? 2 phương trình 3 ẩn thì chỉ có nước mò thôi nhá
    Đúng như bạn ngoc nói đấy! hệ 2 pt với 3 ẩn thì chỉ có giải mò thôi! Mà máy tính với tốc độ xử lý 500 ngàn phép tính / 1 sec sẽ mò cho bạn bài này nhanh lắm đấy. Bạn lập trình cho máy mò ra nghiệm đi!

  5. #5
    Tham gia
    09-08-2009
    Location
    localhost
    Bài viết
    21
    Like
    1
    Thanked 3 Times in 3 Posts

    Không đến mức mò nhiều đâu

    Quote Được gửi bởi bandari View Post
    Các bác chỉ hướng dùm em với. Em muốn viết chương trình tìm nghiệm nguyên dương của hệ phương trình sau:
    X+Y+Z=100
    5X+3Y+z/3=100
    em ko nghĩ ra cách nào nên em sử dụng vòng for để lặp tất cả giá trị của x,y,z thỏa mãn hệ trên

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    void main(void)
    {
    int x,y,z;
    for(x=0;x<100;x++){
    for(y=0;y<100;y++)
    {
    for(z=0;z<100;z++){
    if((x+y+z==100)&&(5x+3y+z/3==100)){

    printf("x=%d",x);
    printf("y=%d",y);
    printf("z=%d",z);
    }

    }
    }
    }
    }
    Em thấy nó báo lỗi thiếu dấu ngoặc mà em ko hiểu thiếu chỗ nào. Em muốn hỏi là ngoài cách này thì còn có cách nào để giải ko ạ
    Thế này nhé

    X+Y+Z=100 (1)
    5X+3Y+z/3=100 (2)

    Từ 2 => 15X + 9Y + Z = 300
    <=> 14X + 8Y + (X + Y + Z) = 300
    <=> 14X + 8Y = 200
    <=> 7X + 4Y = 100 = 4*25
    Vì (7, 4) = 1 => X chia hết cho 4: X = 4A
    => 7A + Y = 25 => A = 0, 1, 2, 3 => X = 0, 4, 8, 12

    Đến đây bạn giải tiếp nhé...

  6. #6
    Tham gia
    09-08-2009
    Location
    /dev/zero
    Bài viết
    1,407
    Like
    186
    Thanked 84 Times in 78 Posts
    Thuật toán ổn rồi mà, chạy ngon lành khi viết bằng PHP

    PHP Code:
    <?php
    for ($x=0$x<100$x++) {
        for (
    $y=0$y<100$y++) {
            for (
    $z=0$z<100$z++) {
                
    $a $x $y $z;
                
    $b $x*$y*$z/3;
                if (
    $a == 100 && $b == 100) {
                    echo 
    "<ul>\n";
                    echo 
    "\t<li>x = ".$x."</li>\n";
                    echo 
    "\t<li>y = ".$y."</li>\n";
                    echo 
    "\t<li>z = ".$z."</li>\n";
                    echo 
    "</ul>\n";
                }
            }
        }
    }
    ?>
    test link:

    http://vn.maychu.net/math/pt.php

    result:


    x = 0
    y = 25
    z = 75

    x = 4
    y = 18
    z = 78

    x = 8
    y = 11
    z = 81

    x = 12
    y = 4
    z = 84

Bookmarks

Quy định

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