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!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.Ví dụ 1 số 10 và 9 số 0. Trung bình cho trước là 1. OK yeah!
=$A$1
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 saoTì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)
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
Hình như họ hỏi về món này thì phải bác ơi: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 .
Hy vọng nhận được nhiều góp ý để hoàn thiện hơn.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
Theo tôi hiểu thì không đơn giản vậy.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)
Tôi cũng đã nói nếu là Excel (của MS) thì tham khảo mà.Hình như họ hỏi về món này thì phải bác ơi:
Vậy cũng mang tiếng cơm cha áo mẹ công thầy mài đũng quần học toán.Ví dụ 1 số 10 và 9 số 0. Trung bình cho trước là 1. OK yeah!
Gu gồ dịch: với sự tinh tế không gì sánh bằng.with unsurpassable subtlety