Tôi có một mảng các giá trị không âm. Tôi muốn xây dựng một mảng các giá trị tổng là 20 để chúng tỷ lệ thuận với mảng đầu tiên.Phân bổ một mảng các số nguyên tương ứng bù cho các lỗi làm tròn
Đây sẽ là một vấn đề dễ dàng, ngoại trừ việc tôi muốn mảng tỷ lệ tổng hợp chính xác 20, bù cho bất kỳ lỗi làm tròn nào.
Ví dụ, mảng
input = [400, 400, 0, 0, 100, 50, 50]
sẽ mang lại
output = [8, 8, 0, 0, 2, 1, 1]
sum(output) = 20
Tuy nhiên, hầu hết các trường hợp sẽ có rất nhiều sai sót làm tròn, giống như
input = [3, 3, 3, 3, 3, 3, 18]
ngây thơ mang
output = [1, 1, 1, 1, 1, 1, 10]
sum(output) = 16 (ouch)
Có cách nào tốt để phân bổ mảng đầu ra sao cho nó thêm tối đa 20 lần không?
không hiểu câu hỏi ... ý bạn là gì bởi "mảng tỷ lệ" – Magnus
Tại sao lại sử dụng loại tích phân, không chỉ sử dụng loại dấu phẩy động? –
@Magnus một mảng có giá trị tổng là 20 và tỷ lệ thuận với các giá trị trong mảng đầu tiên. Có lẽ một cách tốt hơn để nói nó. – Rob