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

Smartphone WIKO của Pháp chính thức xuất hiện tại Việt Nam

Tìm HD - Phần mềm tìm và xem phim HD miễn phí

Cuộc thi khoảnh khắc tuyệt vời cùng Vn-Zoom.com

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

Tuyển thành viên nhóm Reviews diễn đàn

VN-Zoom & ASUS đón siêu phẩm,tăng tốc chuẩn bị ASUS Expo 2014
kết quả từ 1 tới 8 trên 8
  1. #1
    teencp's Avatar
    teencp vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    May 2010
    Bài
    13
    Cảm ơn
    3
    Điểm
    4/2 bài viết
    VR power
    0

    Post Bài toán người du lịch bằng thuật toán tham ăn

    Mình giờ đang ngồi học về thuật toán tham ăn, với quay lui và có 1 bài toán kinh điển .Đó là bài toán người du lịch,dưới đây là đoạn code của bài toán nhưng mà mình ko hiểu cái hàm Try(thử từng trường hợp để đc tối ưu) cho lắm, pro nào bít vào chỉ hộ mình với, chỉ càng cặn kẽ càng tốt

    Code:
    #include <iostream.h>
    #include <stdlib.h>
    #define index 100
    #define stop 27
    typedef int hanhtrinh[100];
    typedef int cuocphi[100][100];
    int xp,n,min,max,T;
    char ch;
    hanhtrinh p,pm;
    cuocphi c;
    char b[100];
    float r;
    void init()
    {
    	int i,j;
    	for(i=0;i<n;i++)
    	{
    		b[i]=1;
    		p[i]=xp;
    	}
    	min=c[1][1];
    	max=min;
    	for(i=0;i<n;i++)
    	  for(j=0;j<n;j++)
    	  {
    	  	if(c[i][j]<min)
    	  	min=c[i][j];
    	  	if(c[i][j]>max)
    	  	max=c[i][j];
    	  }
    	T=n*max;
    	b[xp]=0;
    }
    void output()
    {
    	int i;
    	cout<<"\n Hanh trinh toi uu:\n";
    	for(i=0;i<n;i++)
    	cout<<"->"<<pm[i];
    	cout<<"\n Chi phi:"<<xp<<T<<endl;
    }
    void input()
    {
    	int i,j,temp;
    	cout<<"\n So thanh pho:";
    	cin>>n;
    	cout<<"\n Thanh pho xuat phat(0..."<<n-1<<")"<<xp;
    	if((xp<0)||(xp>=n))
    	cout<<"\n Nhap sai roi";
    	for(i=0;i<n;i++)
    	   for(j=0;j<n;j++)
    	   {
     		cout<<"Nhap chi phi tu thanh pho "<<i<<" "<<"den thanh pho "<<" "<<j<<endl;
    		cin>>c[i][j];
    	    c[i][i]=0;
     	 }
        cout<<"\n Bang chi phi:\n";
        for(i=0;i<n;i++)
        {
        	for(j=0;j<n;j++)
        	cout<<c[i][j];
        	cout<<"\n";
        }
    }
    void Try(int k,int s)
    {
    	int i,j,tg;
    	for(i=0;i<n;i++)
    	{
    		tg=s+c[p[k-1]][i];
    		if((b[i])&&(tg+min*(n-k)<T)
    		{
    			p[k]=i;
    			b[i]=0;
    			if((k==n-1)&&(tg+c[i][xp]<T))
    			{
    				for(j=0;j<n;j++)
    				pm[j]=p[j];
    				T=tg+c[i][xp];
    			}
    			else if(k<n-1)
    			Try(k+1,tg);
    			b[i]=1;
    			}
    		}
    }
    void main()
    {
    	cout<<"\n        Bai toan nguoi du lich:\n";
    	input();
    	init();
    	Try(1,0);
    	output();
    }

  2. #2
    teencp's Avatar
    teencp vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    May 2010
    Bài
    13
    Cảm ơn
    3
    Điểm
    4/2 bài viết
    VR power
    0

    Default

    Trích teencp View Post
    Mình giờ đang ngồi học về thuật toán tham ăn, với quay lui và có 1 bài toán kinh điển .Đó là bài toán người du lịch,dưới đây là đoạn code của bài toán nhưng mà mình ko hiểu cái hàm Try(thử từng trường hợp để đc tối ưu) cho lắm, pro nào bít vào chỉ hộ mình với, chỉ càng cặn kẽ càng tốt

    Code:
    #include <iostream.h>
    #include <stdlib.h>
    #define index 100
    #define stop 27
    typedef int hanhtrinh[100];
    typedef int cuocphi[100][100];
    int xp,n,min,max,T;
    char ch;
    hanhtrinh p,pm;
    cuocphi c;
    char b[100];
    float r;
    void init()
    {
    	int i,j;
    	for(i=0;i<n;i++)
    	{
    		b[i]=1;
    		p[i]=xp;
    	}
    	min=c[1][1];
    	max=min;
    	for(i=0;i<n;i++)
    	  for(j=0;j<n;j++)
    	  {
    	  	if(c[i][j]<min)
    	  	min=c[i][j];
    	  	if(c[i][j]>max)
    	  	max=c[i][j];
    	  }
    	T=n*max;
    	b[xp]=0;
    }
    void output()
    {
    	int i;
    	cout<<"\n Hanh trinh toi uu:\n";
    	for(i=0;i<n;i++)
    	cout<<"->"<<pm[i];
    	cout<<"\n Chi phi:"<<xp<<T<<endl;
    }
    void input()
    {
    	int i,j,temp;
    	cout<<"\n So thanh pho:";
    	cin>>n;
    	cout<<"\n Thanh pho xuat phat(0..."<<n-1<<")"<<xp;
    	if((xp<0)||(xp>=n))
    	cout<<"\n Nhap sai roi";
    	for(i=0;i<n;i++)
    	   for(j=0;j<n;j++)
    	   {
     		cout<<"Nhap chi phi tu thanh pho "<<i<<" "<<"den thanh pho "<<" "<<j<<endl;
    		cin>>c[i][j];
    	    c[i][i]=0;
     	 }
        cout<<"\n Bang chi phi:\n";
        for(i=0;i<n;i++)
        {
        	for(j=0;j<n;j++)
        	cout<<c[i][j];
        	cout<<"\n";
        }
    }
    void Try(int k,int s)
    {
    	int i,j,tg;
    	for(i=0;i<n;i++)
    	{
    		tg=s+c[p[k-1]][i];
    		if((b[i])&&(tg+min*(n-k)<T)
    		{
    			p[k]=i;
    			b[i]=0;
    			if((k==n-1)&&(tg+c[i][xp]<T))
    			{
    				for(j=0;j<n;j++)
    				pm[j]=p[j];
    				T=tg+c[i][xp];
    			}
    			else if(k<n-1)
    			Try(k+1,tg);
    			b[i]=1;
    			}
    		}
    }
    void main()
    {
    	cout<<"\n        Bai toan nguoi du lich:\n";
    	input();
    	init();
    	Try(1,0);
    	output();
    }
    Sặc, ko có pro nào vào giúp mình à, chán

  3. #3
    duchungktv's Avatar
    duchungktv vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Nov 2012
    Bài
    4
    Cảm ơn
    0
    Điểm
    0/0 bài viết
    VR power
    0

    Default

    mình đang học lý thuyết ngôn ngữ lập trình, cô bắt cài chương trình " bài toán chọn hoạt động với thuật toán tham lam" nhưng mình chẳng làm được, Các bác, ai biết chỉ dùm mình với, ngôn ngữ nào cũng được

  4. #4
    vail_valuabe's Avatar
    vail_valuabe vẫn chưa có mặt trong diễn đàn Thành viên đang bị kỷ luật
    Tham gia
    Mar 2013
    Đến từ
    Nơi Bình Yên Nhất
    Bài
    1.809
    Cảm ơn
    1.894
    Điểm
    1.097/522 bài viết
    VR power
    0

    Default

    À, cho mình hỏi ngoài thuật toán tham ăn có thuật toán tham ngủ, tham uống, tham tiền,... ko vậy???

  5. #5
    noel_trang's Avatar
    noel_trang vẫn chưa có mặt trong diễn đàn Rìu Bạc
    Tham gia
    Apr 2008
    Đến từ
    Hà Nội
    Bài
    309
    Cảm ơn
    142
    Điểm
    311/105 bài viết
    VR power
    0

    Default

    Trích vail_valuabe View Post
    À, cho mình hỏi ngoài thuật toán tham ăn có thuật toán tham ngủ, tham uống, tham tiền,... ko vậy???
    người ta gọi chung là tham lam

  6. #6
    Trung Toán's Avatar
    Trung Toán vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Apr 2012
    Bài
    294
    Cảm ơn
    27
    Điểm
    74/57 bài viết
    VR power
    0

    Default

    Lần đầu nghe thuật toán tham "ăn"

  7. #7
    vail_valuabe's Avatar
    vail_valuabe vẫn chưa có mặt trong diễn đàn Thành viên đang bị kỷ luật
    Tham gia
    Mar 2013
    Đến từ
    Nơi Bình Yên Nhất
    Bài
    1.809
    Cảm ơn
    1.894
    Điểm
    1.097/522 bài viết
    VR power
    0

    Default

    Trích vail_valuabe View Post
    À, cho mình hỏi ngoài thuật toán tham ăn có thuật toán tham ngủ, tham uống, tham tiền,... ko vậy???
    Mình chỉ nói đùa thôi.
    Lần đầu nghe thuật toán tham "ăn"
    Trong c có đấy bạn ơi, mấy nglt khác có thể ko có nhưng trong c có.

  8. #8
    programmer2010's Avatar
    programmer2010 vẫn chưa có mặt trong diễn đàn Rìu Chiến Chấm
    Tham gia
    Feb 2010
    Bài
    2.573
    Cảm ơn
    38
    Điểm
    644/581 bài viết
    VR power
    7

    Default

    Trích vail_valuabe View Post
    Mình chỉ nói đùa thôi.

    Trong c có đấy bạn ơi, mấy nglt khác có thể ko có nhưng trong c có.
    Thuật toán là độc lập với ngôn ngữ lập trình (trừ Java củ chuối thì chả cài đc thuật nào hết).
    Mà chả hiểu dạy Java làm gì, nên cho người học há hốc mồm ít nhất một (chục) lần với các kiểu leak mem và bad pointer chứ
    Thay đổi nội dung bởi programmer2010; 24-04-2013 lúc 18:38.

 

 

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
  •