Đến nội dung


Hình ảnh
* * * - - 17 Bình chọn

Hỏi về Lisp (thuật toán, ý tưởng, coding,...)


  • Please log in to reply
2847 replies to this topic

#2801 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 10 August 2016 - 02:19 PM

Nghe qua cảm giác như bài toán vận chuyển.


  • 0

#2802 Detailing

Detailing

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 667 Bài viết
Điểm đánh giá: 278 (khá)

Đã gửi 10 August 2016 - 02:45 PM

Ơ hay! kA và kB là các hằng số đã biết thì quan hệ giữa kA và kB là đã biết rồi, và bài toán 2 điểm thì giải được chứ sao lại không!

Nhắc lại cho rõ đề: các hằng số kX là đã biết, không phụ thuộc vị trí M.

Bạn biết chứ mình đã biết đâu,

nếu mình giả sử

Ka =1 and Kb =2 => M ?? 

Ka = 2 and Kb = 1 => M ??

Ka = 100 and Kb = 1 => M ??

hay có gì đó mình ko hiểu nhỉ??


  • 0

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#2803 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 10 August 2016 - 03:21 PM

Ai biết thuật toán này tên gì không mách bảo tí để tìm hiểu:

Cho n điểm A,B,C,D,E... (gọi chung là các điểm X) trên m.phẳng. M là điểm di động. Các chi phí đơn vị từ M đến X là kX (đã biết). MX là các khoảng cách từ M đến X.

Tìm vị trí điểm M sao cho tổng chi phí là nhỏ nhất:

(MA*kA+MB*kB+MC*kC+MD*kD+ME*kE+...) -> Min

Bạn search Bài toán cực trị của hàm nhiều biến, ở đây là hàm 2 biến

fz = Σ{ki*sqrt[ (xi-x)^2 + (yi-y)^2 ]}


  • 0

#2804 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 10 August 2016 - 03:21 PM

@Detailing: (Theo kiểu C#)

baitoaquyhoachtuyentinh = Bài toán quy hoạch tuyến tính;

baitoanvantai = Bài toán vận tải;

baitoancuabacha = Bài toán của bác Hạ;

 

=>

baitoaquyhoachtuyentinh.baitoanvantai​.baitoancuabacha


  • 0

#2805 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 10 August 2016 - 03:42 PM

Bài toán nó thế này đây (xin đừng hỏi các giá trị kX bằng bao nhiêu, kệ nó, tổng quát là thế).

Tôi chỉ hỏi ai biết bài toán này có tên thuật toán quen thuộc nào để tự nghiên cứu.

67029_trung_tam_phu_tai.png


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#2806 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 10 August 2016 - 04:00 PM

@Doan Van Ha: Nhắc như thế mà bác không nhớ, có lẽ ngày xưa bác không được học môn QUY HOẠCH TUYẾN TÍNH (Hình như Xây dựng, Giao thông được học môn này, trường khác thì không biết sao...)

Đây bác (về mặt thuật toán): https://vi.wikipedia...ài_toán_vận_tải


  • 0

#2807 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 10 August 2016 - 04:13 PM

@Doan Van Ha: Nhắc như thế mà bác không nhớ, có lẽ ngày xưa bác không được học môn QUY HOẠCH TUYẾN TÍNH (Hình như Xây dựng, Giao thông được học môn này, trường khác thì không biết sao...)

Đây bác (về mặt thuật toán): https://vi.wikipedia...ài_toán_vận_tải

Bạn xem lại lý thuyết bài toán vận tải giùm tí xem có giống đề toán này không nhé. Bài toán của tôi là tìm vị trí điểm M sao cho chi phí bé nhất.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#2808 Detailing

Detailing

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 667 Bài viết
Điểm đánh giá: 278 (khá)

Đã gửi 10 August 2016 - 09:09 PM

@quocmanh04tt: về cách viết và thuật toán thì sai bạn à, bài toán của Doan Van Ha ko thuộc về bài toán vận chuyển do đó ko nằm trong bài toán tuyến tính. :D

@Doan Van Ha: bạn tự giải với 2 điểm, 3 điểm thì chắc sẽ giải được, để tận dụng máy tính thì áp dụng thử dần, Bài toán của bạn tương đối giống với bào toán tìm đường ngắn nhất nhưng độ phức tạp chắc gấp nhiều lần.


  • 0

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#2809 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 10 August 2016 - 09:38 PM

Trong "Ai là triệu phú" MC Lại Văn Sâm luôn nói câu "Ai biết chắc chắn thì xin trợ giúp" nhưng đa số vẫn trả lời cho có trả lời. Chán như con gián.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#2810 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 10 August 2016 - 09:53 PM

Uh, nhầm!

@Detailing: ở trên ý là diễn giải cái này nằm trong cái kia, không phải là cách viết và thuật toán, không phải là bài toán vận chuyển thì chưa chắc là không phải tuyến tính... :D

@Doan Van Ha: Cụ thể bài toán của bác giống bài toán này:

.Tùy theo trường hợp cụ thể mà ta có các cách giải quyết khác nhau, chủ yếu chọn
vị trí đặt kho theo yêu cầu chi phí vận chuyển nhỏ nhất.
Hàm mục tiêu có dạng:

G = Tong (ci.qi.li) =>min
Với G_tổng giá thành vận chuyển từ kho đến các điểm tiêu thụ.
ci_giá thành vận chuyển cho 1 tấn vữa/km.
qi_ khối lượng vữa cung ứng cho từng điểm tiêu thụ.
li_khoảng cách từ điểm cung ứng đến từng điểm tiêu thụ.
Có thể giải bài toán theo phương pháp giải tích, phương pháp Gradien_bài toán
quy hoạch phi tuyến.

P/s: Trích từ giáo trình tổ chức thi công.


  • 0

#2811 Detailing

Detailing

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 667 Bài viết
Điểm đánh giá: 278 (khá)

Đã gửi 11 August 2016 - 12:07 AM

Trong "Ai là triệu phú" MC Lại Văn Sâm luôn nói câu "Ai biết chắc chắn thì xin trợ giúp" nhưng đa số vẫn trả lời cho có trả lời. Chán như con gián.

Bạn add câu này vô signature để nhắc nhở mọi người luôn, bây giờ mình nhớ rồi :D.


  • 0

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#2812 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 641 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 17 August 2016 - 02:40 PM

[Hỏi]
Các bác làm ơn cho hỏi , trong khi viết LISP đến phần hộp thoại Dialog thì trong cấu trúc cú pháp LISP làm thế nào để căn chỉnh độ rộng các dòng cho đồng đều
Chẳng hạn em có CODE như sau:
  

quan_thong_so : dialog {label = "THIET LAP THONG SO CHO TINH TOAN THONG KE THEP";
  :row{
     :boxed_column{label = "Thong so chinh";
        :popup_list {key = "lt_L"; label = "Lam tron cho L (chieu dai 1 thanh)          .";width = 3;}
        :popup_list {key = "lt_TongL"; label = "Lam tron cho TongL (chieu dai Toan bo CK)   .";width = 3;}
        :edit_box {key = "L1t"; label = "Chieu dai 1 thanh thep (11700 mm)           .";width = 3;}
        :edit_box {key = "Noi"; label = "He so noi thep (30D)                        .";width = 3;}
        :popup_list {key = "lt_Noi"; label = "Boi lam tron moi noi (25,50,100)            .";width = 3;}
        }
      :boxed_column{label = "TT";
         }
       }
   ok_cancel;
   }
 

 
 
Khi đó nếu dùng Vlisp vào Tools/ Interface Tools/ Preview DCL Editor thì bảng hiện lên không có độ rộng đều nhau, dù em đã cố gắng để string của các mục có tổng chữ cái như nhau mà không được
Các bác có phương án nào khác không ạ?
xin cảm ơn
  • 0

#2813 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 August 2016 - 02:59 PM

Dùng chiêu này:

quan_thong_so : dialog {label = "THIET LAP THONG SO CHO TINH TOAN THONG KE THEP";
  :column{
     :boxed_row {label = "Thong so chinh";
       :column {
         :text {label = "Lam tron cho L (chieu dai 1 thanh)";}
         :text {label = "Lam tron cho TongL (chieu dai Toan bo CK)";}
         :text {label = "Chieu dai 1 thanh thep (11700 mm)";}
         :text {label = "He so noi thep (30D)";}
         :text {label = "Boi lam tron moi noi (25,50,100)";}
        }
       :column {
         :popup_list {key = "lt_L";}
         :popup_list {key = "lt_TongL";}
         :edit_box {key = "L1t";}
         :edit_box {key = "Noi";}
         :popup_list {key = "lt_Noi";}
        }
       }
        :boxed_column{label = "TT";
         }
       }
       ok_cancel;
   }

  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#2814 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 641 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 17 August 2016 - 03:05 PM

Dùng chiêu này:

Em cảm ơn bác rất nhiều, điều này rất có ích với em, xin cảm ơn bác
  • 0

#2815 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 August 2016 - 03:11 PM

Bạn viết dư cặp này :{column ... } . Nó nằm ở dòng thứ 2 và dòng trên ok_cancel nhé!


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#2816 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 641 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 18 August 2016 - 11:41 AM

Bạn viết dư cặp này :{column ... } . Nó nằm ở dòng thứ 2 và dòng trên ok_cancel nhé!

Thanks bác, những cái đó em có thể sửa được, và đã ứng dụng rồi, :D


  • 0

#2817 quantvxd

quantvxd

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 18 August 2016 - 03:15 PM

Chào mọi người, có thể cho em hỏi chút ý tưởng về thuật toán bảo vệ file LISP không, chẳng hạn muốn khoá file LISP để cho file đó chỉ có thể dùng cho 1 máy, trong thời gian 30ngày kề từ ngày đăng ký Lisp lần đầu, hết 30 ngày căn cứ vào mốc thời gian lúc đó tự sinh PASS đăng ký phù hợp (nếu người dùng nhập đúng sẽ cho sử dụng tiếp), khi đó người viết lissp sẽ có Lisp khác tự tạo Key phù hơpj với thời điểm đó và gửi cho Người dùng
Về cơ bản là như vậy, em muốn hỏi mọi người có ý tưởng nào có thể giúp em không. Hiện em đã làm được 1 số việc sau:

Hàm con:
1. Hàm lấy tên máy (tên USER máy tính), định dùng làm nhận diện máy, nhưng chưa ổn lắm không biết có cách khác không
(defun layTenUser(/ str)
  (setq str (substr (vla-get-supportpath(vla-get-files(vla-get-preferences(vlax-get-acad-object)))) 1 40)
	str (substr str (+ 7 (vl-string-search "Users\\" str)) 25)
	str (substr str 1 (vl-string-search "\\appdata" str)))
  str)
2. Hàm lấy ngày tháng hiện tại
(defun NowDate (/ DD MO RR YY) ; lay ngay hom nay
  (setq rr (rtos (getvar 'cdate) 2 8))
  (setq YY (substr rr 1 4)
	MO (substr rr 5 2)
	DD (substr rr 7 2))
  (list DD MO YY))
3. Hàm lấy ngày kết thúc dựa theo hai thống số: ngày bắt đầu (dạng list) và số ngày cho phép (dạng interger)

;; Ví dụ dùng (ngKT_tuNg (nowdate) 30)
(defun ngKT_tuNg (DStart delta)
  (setq coTh 0 coYY 0)
  (setq ngKT (+ delta (read(car DStart))))
  (if (> ngKT 30) (setq coTh 1 ngKT (rem ngKT 30)))
  (setq thKT (+ coTh (read (cadr DStart))))
  (if (> thKT 12) (setq coYY 1 thKT (rem thKT 12)))
  (setq YYKT (+ coYY (read(last DStart))))
  (mapcar '(lambda(x) (rtos x 2 0)) (list ngKT thKT YYKT))
  (list
    (apply '+ (mapcar '(lambda(x y ) (* x y)) '( 1 12 365) (list ngKT thKT YYKT)))
    (strcat (car (setq r1
			(mapcar '(lambda(x) (if (< x 10)
					      (strcat "0" (rtos x 2 0))
					      (rtos x 2 0)))
				(list ngKT thKT YYKT))))
	    "." (cadr r1) "." (last r1)))
  )
mong các bác giúp thêm

1. Hàm nhận diện máy.
2. Thuật toán đăng ký lần đầu (1 lần duy nhất)
3. Thuật toán tự sinh Key đăng ký phù hợp với : tên máy, thời điểm đăng ký, thêm một số thônt tín khác thì càng tốt (ví dụ Gmail đăng ký, key có giá trị đăng ký trong 3 ngày,... chẳng hạn

Bài viết đã được chỉnh sửa nội dung bởi quantvxd: 18 August 2016 - 03:18 PM

  • 0

#2818 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 18 August 2016 - 03:54 PM

Khóa lisp là 1 vấn đề không đơn giản. Ngay cả những chương trình đồ sộ như window, autocad... cũng chả là gì với hacker, thì lisp chỉ là đinh rỉ.

1). Hàm nhận diện máy: tôi test trên máy của tôi trả về 2 dấu nháy "", chắc bị lỗi gì đó của bạn.

User có thể đổi tên từ Ngọc Trinh sang Hồ Ngọc Hà, rồi Tập Cận Bình... Và dùng mê thâu.

2) và 3). Ngày tháng thì vặn đồng hồ là xong!

4). Số lần dùng thì "nó" cài lại lisp.

Dùng serial của máy khả dĩ hơn. Biết đến đâu nói đến đó. Nghe và Ngóng thêm.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#2819 quantvxd

quantvxd

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 18 August 2016 - 04:02 PM

Khóa lisp là 1 vấn đề không đơn giản. Ngay cả những chương trình đồ sộ như window, autocad... cũng chả là gì với hacker, thì lisp chỉ là đinh rỉ.
1). Hàm nhận diện máy: tôi test trên máy của tôi trả về 2 dấu nháy "", chắc bị lỗi gì đó của bạn.
User có thể đổi tên từ Ngọc Trinh sang Hồ Ngọc Hà, rồi Tập Cận Bình... Và dùng mê thâu.
2) và 3). Ngày tháng thì vặn đồng hồ là xong!
4). Số lần dùng thì "nó" cài lại lisp.
Dùng serial của máy khả dĩ hơn. Biết đến đâu nói đến đó. Nghe và Ngóng thêm.

Cảm ơn bác , trước mắt chỉ cần tiếp xúc cấp độ này thôi, về cơ bản, đối tượng sử dụng: 1 không biết LISP, 2 không rõ hướng viết ban đầu, mò sẽ khó khăn hơn, 3 không rảnh để nhờ vả, viết lại, hay phá LISP.
Mà làm thì được là tốt, không được cho không
Quan trong là học hỏi tiếp cận thôi bác ahj
Chứ viết Free suốt mờ. hhahaha
  • 0

#2820 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 18 August 2016 - 04:25 PM

Nếu chỉ vậy thì chuyển LSP sang VLX


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.