Tìm dảy số gồm 10 chữ số có trung bình tổng 10 số đó bằng 1 số cho trước ( có trùng lặp cũng dc)

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

lehongdanghatinh

Thành viên mới
Tham gia
5/8/24
Bài viết
1
Được thích
0
Tìm dảy số gồm 10 chữ số có trung bình tổng 10 số đó bằng 1 số cho trước ( có trùng lặp cũng dc)
 
Ví dụ 1 số 10 và 9 số 0. Trung bình cho trước là 1. OK yeah!
Người ta cần công thức tổng quát chứ đâu phải hỏi riêng cho trường hợp số trung bình là 1 đâu.
--
Giả sử số trung bình cho trước ở A1, nhập công thức sau và kéo xuống đủ 10 số thì dừng.
Mã:
=$A$1
 
Tìm dảy số gồm 10 chữ số có trung bình tổng 10 số đó bằng 1 số cho trước ( có trùng lặp cũng dc)
Nếu là Excel và muốn dùng VBA thì trong khi chờ đợi hãy thử code củ chuối này xem sao
Với Ô J1 là Tổng số Trung bình cộng của 10 số phải tìm .
Mã:
Option Explicit

Sub TaoSoBQ()
Dim i&, Lr&, T&, Tong&, R&, ConLai, Bq&, Min&, Max&, Arr()
With Sheet1
Lr = .Cells(100000, 1).End(3).Row
ReDim Arr(1 To 10, 1 To 1)
R = UBound(Arr)
Tong = .[J1]
Bq = Tong / 10
If Bq - 10 < 0 Then Min = Bq Else Min = Bq - 10
Max = Bq + 10
Do
Run:
T = 0
    For i = 1 To R - 1
        ConLai = 0
        Arr(i, 1) = SoNgauNghien(Min, Max)
        T = T + Arr(i, 1)
    Next
    ConLai = Tong - T
If ConLai < 0 Then GoTo Run
Loop While ConLai >= Bq
If ConLai <= Bq Then Arr(R, 1) = ConLai: T = T + ConLai
.Range("J2").Resize(R + 2, 1).ClearContents
.Range("J2").Resize(R, 1) = Arr
'.Range("J" & R + 2) = T
End With
MsgBox " Đa xong"
End Sub
Hy vọng nhận được nhiều góp ý để hoàn thiện hơn.
 
Nếu là Excel và muốn dùng VBA thì trong khi chờ đợi hãy thử code củ chuối này xem sao
Với Ô J1 là Tổng số Trung bình cộng của 10 số phải tìm .
Mã:
Option Explicit

Sub TaoSoBQ()
Dim i&, Lr&, T&, Tong&, R&, ConLai, Bq&, Min&, Max&, Arr()
With Sheet1
Lr = .Cells(100000, 1).End(3).Row
ReDim Arr(1 To 10, 1 To 1)
R = UBound(Arr)
Tong = .[J1]
Bq = Tong / 10
If Bq - 10 < 0 Then Min = Bq Else Min = Bq - 10
Max = Bq + 10
Do
Run:
T = 0
    For i = 1 To R - 1
        ConLai = 0
        Arr(i, 1) = SoNgauNghien(Min, Max)
        T = T + Arr(i, 1)
    Next
    ConLai = Tong - T
If ConLai < 0 Then GoTo Run
Loop While ConLai >= Bq
If ConLai <= Bq Then Arr(R, 1) = ConLai: T = T + ConLai
.Range("J2").Resize(R + 2, 1).ClearContents
.Range("J2").Resize(R, 1) = Arr
'.Range("J" & R + 2) = T
End With
MsgBox " Đa xong"
End Sub
Hy vọng nhận được nhiều góp ý để hoàn thiện hơn.
Hình như họ hỏi về món này thì phải bác ơi:
  • 1722860505328.png
 
Người ta cần công thức tổng quát chứ đâu phải hỏi riêng cho trường hợp số trung bình là 1 đâu.
--
Giả sử số trung bình cho trước ở A1, nhập công thức sau và kéo xuống đủ 10 số thì dừng.
Mã:
=$A$1
Theo tôi hiểu thì không đơn giản vậy.

Tìm dảy số gồm 10 chữ số có trung bình tổng 10 số đó bằng 1 số cho trước ( có trùng lặp cũng dc)
 
Web KT

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

Back
Top Bottom