Мне нужно иметь возможность установить ограничение dist с 64 различными изменяемыми весами:
Мне нужно случайным образом выбрать индекс в диапазоне от 0 до 63, когда каждый индекс имеет свой собственный вес/вероятность выбора.
Я могу написать что-то вроде:
ограничение pick_chan_constraint {pick_channel dist{ 0:=channel_weight[0], 1:=channel_weight[1], 2:=channel_weight[2], 3:=channel_weight[3], 4:=channel_weight[4], 5:=channel_weight [5], 6:=channel_weight[6], 7:=channel_weight[7], 8:=channel_weight[8], 9:=channel_weight[9], 10:=channel_weight[10], 11:=channel_weight[11 ], 12:=channel_weight[12], 13:=channel_weight[13], 14:=channel_weight[14], … ...
NUM_OF_CHANS-1 := вес_канала[NUM_OF_CHANS-1] }}
Очевидно, что это плохой текст и плохая идея по двум причинам:
Никакой гибкости: если NUM_OF_CHANS изменится, мне нужно будет изменить код.
Оно длинное, уродливое и почти нечитаемое.
Любые идеи?
Спасибо