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) (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

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