Как выполнить симуляцию Монте-Карло в Open Office? - PullRequest
1 голос
/ 21 июля 2010

Я пытаюсь сгенерировать несколько диапазонов для проблемы, над которой я работаю.Эти рейнджеры будут основаны на сумме соотношений группы чисел.Так, например, константы равны 5 6 и 7.

Диапазоны, которые я получу, будут 5 / x + 6 / y + 7 / z = S

Я хочу x, y иz, чтобы выйти из списка чисел, которые у меня есть - скажем, .5, .6, .7, .8, .9 и 1

Итак, если я выполню 100 итераций этого, я хочу, чтобы электронная таблицаслучайным образом заполните значение в X из этого списка чисел, еще один случайный выбор для y, и еще одно для z.

И, как я уже сказал, я хочу, чтобы эта сумма S была рассчитана 100 раз за такоеТаким образом, я получу диапазон значений для S.

Я пытался выяснить, как это сделать без использования макросов.

1 Ответ

1 голос
/ 22 июля 2010

Вот один из способов сделать это.Создайте таблицу входных значений x, y и z.Поместите столбец слева от таблицы с номером каждого входного значения (1 ... N).Скажем, у вас есть 10 потенциальных входных значений для каждого.Таким образом, ваша таблица представлена ​​в формате A1: D10 с 1 по 10 в столбце A и значениями x в B, значениями y в C и значениями z в D.

Затем вы можете выбрать случайное значение значений xзаписав = VLOOKUP (10 * RAND () + 1, $ A $ 1: $ D $ 10,2, TRUE).Это случайным образом выбирает число от 0 до 10 и ищет значение x, соответствующее столбцу A, который соответствует числу, округленному вниз.Например, случайное число равно 4,3 - тогда оно выберет 4-е значение.Замените третий параметр в столбце VLOOKUP на 3 для значений y и 4 для значений z ...

Если у вас нет других данных в столбцах A: D, вы можете обобщить это с помощью = VLOOKUP (рассчитывать ($ A: $ A) * RAND () + 1 $ А:. $ D, 2, TRUE)

...