Учитывая n случайных целочисленных «значений», как нам присвоить целочисленные «веса» каждому из этих случайных «значений» так, чтобы средневзвешенное значение также было целым числом.
Генерация случайных целочисленных «значений» не является проблемой. Например. n= 4, дает {17, 9, 13, 8}.
На данный момент «веса» генерируются randbetween(1,10) каждый, например {10,8,4,4}, что приводит к нецелому среднему значению 12 7/13.
Как нам сгенерировать «веса», чтобы среднее значение также было целым числом?
Это проблема XY?





Такой грубый поиск?
=ArrayFormula(let(values,A2:A5,weights,lambda(self,v,let(w,int(randarray(rows(values))*10)+1,if (mod(sumproduct(w,v)/sum(w),1)=0,w,self(self,v)))),weights(weights,values)))
или исключая повторяющиеся веса, тогда:
=ArrayFormula(let(values,A2:A5,weights,lambda(self,v,let(w,array_constrain(sort(sequence(10),randarray(10),1),rows(values),1),if (mod(sumproduct(w,v)/sum(w),1)=0,w,self(self,v)))),weights(weights,values)))
Если бы веса не обязательно были случайными, то хорошей стратегией было бы сначала попробовать наименьший. {1,1,1,2}, если дубликаты разрешены, в среднем 11.
Огромное спасибо, сэр (мистер Шарп). Ваш метод мне подходит. Да, случайность является обязательным требованием, и дубликаты допустимы.
Рад, что это сработало для вас. Пожалуйста, рассмотрите возможность проголосовать/принять ответ, если он полезен. Я не знаю, как бы вы оценили вероятность того, что случайный выбор весов даст среднее целое число, но быстрое моделирование показало, что для этих конкретных значений она составляет где-то около 1 из 50.
Вам нужно убедиться, что сумма этих 4 чисел кратна 4.