Hỏi đáp prolog môn trí tuệ nhân tạo

Thảo luận trong 'Hỏi đáp chung' bắt đầu bởi kekeke, 14 Tháng hai 2013.

  1. Offline

    kekeke

    • Windows 3.0

    Số bài viết:
    149
    Đã được thích:
    32
    Điểm thành tích:
    40
    có bạn nào làm xong phần prolog môn trí tuệ nhân tạo với đề tài chuyển cơ số thập phân sang nhị phân chưa up lên mình tham khảo với
  2. Offline

    hongoctrien

    • Friends

    Số bài viết:
    2.449
    Đã được thích:
    2.464
    Điểm thành tích:
    2.431
    Thú thực, code prolog đọc mãi chẳng hiểu :(. Mình cũng đang lơ mơ đây :D
  3. Offline

    tangvanbinh

    • Đội cứu hộ máy tính

    Số bài viết:
    449
    Đã được thích:
    197
    Điểm thành tích:
    140
    mình tìm hoài mà vẫn không ra code Prolog về phân số.....ai có giúp send vs
  4. Offline

    hongoctrien

    • Friends

    Số bài viết:
    2.449
    Đã được thích:
    2.464
    Điểm thành tích:
    2.431
    Xem có phải cái này không nghe, chẳng biết dùng kiểu gì :D
    Mã:
    /*
      Fractions problem in SICStus Prolog.
     
      Prolog benchmark problem (BProlog)
      """
      Find distinct non-zero digits such that the following equation holds:
            A        D        G
          ------  + ----- + ------  = 1
            B*C      E*F      H*I
      """
     
     
      Model created by Hakan Kjellerstrand, hakank@bonetmail.com
      See also my SICStus Prolog page: http://www.hakank.org/sicstus/
     
    */
     
    :-use_module(library(clpfd)).
    :-use_module(library(lists)).
     
    go :-
            findall(Digits,fractions(Digits), List),
            ( foreach(L,List) do
                  write(L),nl
            ),
            fd_statistics.
     
    fractions(Digits) :-
     
            Digits = [A,B,C,D,E,F,G,H,I],
            domain(Digits,1,9),
     
            DD = [D1,D2,D3],
            domain(DD,1,81),
     
            all_distinct(Digits),
     
            D1 #= B*C,
            D2 #= E*F,
            D3 #= H*I,
            A*D2*D3 + D*D1*D3 + G*D1*D2 #= D1*D2*D3,
     
            % break the symmetry
            A*D2 #>= D*D1,
            D*D3 #>= G*D2,
     
            %redundant constraints
            3*A #>= D1,
            3*G #=< D2,
     
            % search
            append(Digits,DD,Vars),
            labeling([min,step,up], Vars).
    

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí