Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Reviews hay rinh note 4, galaxy V được vi vu Hàn Quốc

Gameshow “Ai Là Triệu Phú” trên VTV đang chờ đón bạn – Tải ngay!

Lời mời tham dự chương trình từ thiện "Giáng Sinh Trong Mắt Em"

Mời anh em tham gia Vn-zoom support team

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Vn-Zoom.com tặng các bạn thành viên may mắn một chiếc Note 4
kết quả từ 1 tới 4 trên 4

Đề tài: Bài toán Cái Túi

  1. #1
    KHH's Avatar
    KHH
    KHH vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    May 2009
    Đến từ
    Ha Noi, Vietnam, Vietnam
    Bài
    253
    Cảm ơn
    153
    Điểm
    311/52 bài viết

    Default Bài toán Cái Túi

    Có ít code chia sẻ cho ae nào cần thì dễ dang tìm kiếm và tham khảo.
    Ai không cần đừng chém nha

    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    #define MAX 256
    #define maxk 50
    int n,W,k;
    int Tongtrongluong;
    int Tonggiatri;
    float Giatamthoi;
    int xtemp[MAX];
    typedef struct{
    char Ten[50];
    int Trong_luong,Gia_tri;
    float Don_gia// dung de sap xep gia tri cac do vat theo thu tu khong tang
               // cua c[i]/a[i]
    float Phuong_an;
    float Gia_tri_vat;
    }
    Do_vat;
    Do_vat Ds_vat[MAX];

    //Lay du lieu tu file INPUT.txt :

    int Lay_dulieu(char *duongdan)
    {
    FILE *f;
    f=fopen("input.txt","r+");
    if(
    f==NULL)
    {
    printf("\n  Khong tim duoc file \n");

    return 
    1; }
    else{
    char s[100];
    fgets(s,100,f);
    fscanf(f,"%d",&W);
    printf("\t\t Trong luong toi da cua cai tui la W=%d\n",W);
    printf("\n Danh sach do vat khi nhap vao\n\n");
    while(!
    feof(f)&&k<=maxk){
    fscanf(f,"%s%d%d",&(Ds_vat[k].Ten),&(Ds_vat[k].Trong_luong),&(Ds_vat[k].Gia_tri));
    if(
    Ds_vat[k].Trong_luong){
    Ds_vat[k].Don_gia=float(Ds_vat[k].Gia_tri)/float(Ds_vat[k].Trong_luong);
    printf("\n- Do Vat %s co trong luong g= %d, gia tri v= %d, don gia= %.1f\n",Ds_vat[k].Ten,Ds_vat[k].Trong_luong,Ds_vat[k].Gia_tri,Ds_vat[k].Don_gia);
    k++;
    }
    }
    if(
    k==maxk)
    printf("\n\tChi lay %d do vat",n);
    printf("\n\n\t\t Danh sach co n = %d loai do vat.",k);
    n=k;
    fclose(f);
    return 
    0;
    }
    }

    //Sap xep lai danh sach do vat theo thu tu giam dan cua don gia.

    void Sap_xep(){
    Do_vat temp;
    int i;
    for(
    i=0;i<n-1;i++)
    Ds_vat[i].Don_gia=float(Ds_vat[i].Gia_tri)/float(Ds_vat[i].Trong_luong);
    for(
    i=0;i<n;i++)
    for (
    int j=i+1;j<;j++)
    {
    if(
    Ds_vat[i].Don_gia<Ds_vat[j].Don_gia)
    {
    temp=Ds_vat[i];
    Ds_vat[i]=Ds_vat[j];
    Ds_vat[j]=temp;
    }
    }

    printf("\n Danh sach do vat sau khi sap xep theo thu tu giam dan cua don gia\n\n\n");
    for(
    i=0;i<n;i++){
    printf("- Do vat %s co trong luong g= %d, gia tri v= %d, don gia: %.1f\n\n",Ds_vat[i].Ten,Ds_vat[i].Trong_luong,Ds_vat[i].Gia_tri,Ds_vat[i].Don_gia);
    Ds_vat[n].Gia_tri=0;
    for (
    int l=0;l<;l++ )
    {
    xtemp[l]=0;
    }
    }
    }

    //Tong trong luong

    void Tong_trong_luong(){
    float Phuong_anTrong_luong;
    for (
    int i=0;i<=n;i++){
    Trong_luong=float(-Phuong_an*Ds_vat[i].Trong_luong);
    }
    printf("\n - Trong luong con lai cua cai tui: W = %3.1f",Trong_luong);
    }

    //Ket qua in ra man hinh
    void Ket_qua(){
    float Phuong_an;
    float gt_toiuu=0;
    printf("\n - Phuong an tot nhat:\n");
    for(
    int i=0;i<n;i++)
    {
    Phuong_an=float (W/Ds_vat[i].Trong_luong);
    W=int(W-Ds_vat[i].Trong_luong*Phuong_an);
    Ds_vat[i].Gia_tri_vat= (Phuong_an*Ds_vat[i].Gia_tri);
    gt_toiuu+=Ds_vat[i].Gia_tri_vat;
    printf("\t\t\t\t* Chon %.f do vat loai %s \n",Phuong_an,Ds_vat[i].Ten);
    printf("\t\t\t\t - Gia tri vat %s: v = %.f\n\n",Ds_vat[i].Ten,Ds_vat[i].Gia_tri_vat);

    }
    printf("\n - Gia tri toi uu la : f*=%3.1f",gt_toiuu);
    }

    //Chuong trinh chinh

    int main()
    {
    printf("\n\t\t\t\t * * *\n");
    printf("\n\t\t\t KET QUA BAI TOAN CAI TUI \n\n");

    char *pa ="INPUT.txt";
    Lay_dulieu(pa);
    Sap_xep();
    Ket_qua();
    Tong_trong_luong();
    getch();
    return 
    0;

    File input:
    4
    8
    x1 2 3
    x2 5 10
    x3 4 6
    x4 3 5
    Vũ trụ vốn chìm trong tăm tối,
    Newton bước ra ánh sáng tràn đầy.
    Rồi Einstein với nụ cười hóm hỉnh,
    Vũ trụ lại rơi vào bí ẩn mông lung.

  2. Có 3 thành viên cảm ơn KHH cho bài viết này:
    auauau97 (24-10-2011), nklinh (18-12-2010), Tung_Huynh (18-12-2010)

  3. #2
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.776
    Cảm ơn
    1.540
    Điểm
    4.136/2.750 bài viết

    Default

    Mềnh toàn gọi là bài toán thằng ăn trộm
    ăn trộm sao cho khối lượng nhỏ mà giá trị lớn

  4. #3
    KHH's Avatar
    KHH
    KHH vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    May 2009
    Đến từ
    Ha Noi, Vietnam, Vietnam
    Bài
    253
    Cảm ơn
    153
    Điểm
    311/52 bài viết

    Default

    Trích Tung_Huynh View Post
    Mềnh toàn gọi là bài toán thằng ăn trộm
    ăn trộm sao cho khối lượng nhỏ mà giá trị lớn
    Bạn nói có "ný"
    Vũ trụ vốn chìm trong tăm tối,
    Newton bước ra ánh sáng tràn đầy.
    Rồi Einstein với nụ cười hóm hỉnh,
    Vũ trụ lại rơi vào bí ẩn mông lung.

  5. #4
    kietluan1's Avatar
    kietluan1 vẫn chưa có mặt trong diễn đàn Rìu Bạc
    Tham gia
    Jan 2011
    Bài
    410
    Cảm ơn
    183
    Điểm
    65/58 bài viết

    Default

    bài này có lỗi rồi

 

 

Quyền sử dụng

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