BÀI TOÁN TÌM GIÁ USD VÀ TÌM LƯỢNG KG - NHỜ ANH/CHỊ GIÚP ĐỠ

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

khuongnguyencm69

Thành viên mới
Tham gia
7/6/16
Bài viết
29
Được thích
5
Em có bài toán như sau:
TỔNG TIỀN = 190415 USD

TỔNG KG = 18700 KG

KG1 NẰM TRONG KHOẢNG 9500 KG ĐẾN 9500 KG

KG2 NẰM TRONG KHOẢNG 700 KG ĐẾN 800 KG

KG3 NẰM TRONG KHOẢNG 8400 KG ĐẾN 8500 KG

GIA1 NẰM TRONG KHOẢNG 10 USD ĐẾN 11 USD

GIA2 NẰM TRONG KHOẢNG 10 USD ĐẾN 11 USD

GIA3 NẰM TRONG KHOẢNG 9 USD ĐẾN 10 USD

TÌM: GIA1, GIA2, GIA3

TÌM: KG1, KG2, KG3

SAU CHO: GIA1 X KG1 + GIA2 X KG2 + GIA3 X KG3 = 190415

TỔNG KG: KG1 + KG2 + KG3 = 18700

KG2 + KG3 = 9200

KG1, KG2, KG3 CHIA HẾT CHO 10

BƯỚC NHẢY STEP GIÁ 0.001

Em có dùng thuật toán Bruteforce nhưng vòng lặp lớn và máy chạy không nổi, anh chị có cách nào hay hơn giúp em ạ!
EM CÓ LƯỢNG TÍNH BẰNG TAY THOẢ MÃN, NẾU CÁC CẶP LƯỢNG VÀ GIÁ ĐẠT KHOẢNG 10 - 15 CẶP THÌ DỪNG CHƯƠNG TRÌNH Ạ!

99,930.500 10.519
7,210.000 10.3
83,274.500 9.797
Bài đã được tự động gộp:

KG1, KG2, KG3 LẦN LƯỢT

9500
700
8,500
 
Lần chỉnh sửa cuối:
Em có dùng thuật toán Bruteforce nhưng vòng lặp lớn và máy chạy không nổi, anh chị có cách nào hay hơn giúp em ạ!
EM CÓ LƯỢNG TÍNH BẰNG TAY THOẢ MÃN, NẾU CÁC CẶP LƯỢNG VÀ GIÁ ĐẠT KHOẢNG 10 - 15 CẶP THÌ DỪNG CHƯƠNG TRÌNH Ạ!
Bạn có thể chia sẻ code của bạn dùng thuật toán Bruteforce lên diễn đàn này không?
 
Upvote 0
Mình hỏi Copilot nè:
PHP:
Sub BruteForceSearch()
    Dim totalMoney As Long
    Dim totalKg As Long
    Dim kg1 As Long, kg2 As Long, kg3 As Long
    Dim gia1 As Long, gia2 As Long, gia3 As Long
    Dim i As Long, j As Long, k As Long
    Dim l As Long, m As Long, n As Long

    ' Define the constraints   '
    totalMoney = 190415
    totalKg = 18700

    ' Try all possible combinations   '
    For kg1 = 9500 To 9500 Step 10
        For kg2 = 700 To 800 Step 10
            For kg3 = 8400 To 8500 Step 10
                If kg2 + kg3 <> 9200 Then
                    GoTo NextIteration1
                End If
              
                For gia1 = 10 To 11
                    For gia2 = 10 To 11
                        For gia3 = 9 To 10
                            If (gia1 * kg1 + gia2 * kg2 + gia3 * kg3 = totalMoney) And _
                               (kg1 + kg2 + kg3 = totalKg) Then
                                Debug.Print "KG1 = " & kg1 & ", KG2 = " & kg2 & ", KG3 = " & kg3
                                Debug.Print "GIA1 = " & gia1 & ", GIA2 = " & gia2 & ", GIA3 = " & gia3
                            End If
NextIteration1:
                        Next gia3
                    Next gia2
                Next gia1
              
            Next kg3
        Next kg2
    Next kg1
End Sub

Chủ bài đăng thử đo thời gian chương trình này của Copilot xem có khả dĩ hơn của bạn hay không?
 
Upvote 0
Mình hỏi Copilot nè:
...

Chủ bài đăng thử đo thời gian chương trình này của Copilot xem có khả dĩ hơn của bạn hay không?
So sánh khập khễnh. Bài của Copilot không có điều kiện bước nhảy giá mà giả sử chúng là 1

Vả lại, bài giải của Copilot không theo đúng tinh thần brute force.
Bài toán brute force phải bao gồm cả trường hợp không có lời giải chính xác thì lời giải gần nhất có chấp nhận được chăng?
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom