Как использовать вложенные циклы для грубых комбинаций - Python - PullRequest
0 голосов
/ 20 декабря 2018

Я хочу сделать следующее: 1) Попробуйте различные комбинации ввода для поиска наилучшего результата. 2) Сбросьте все массивы, как они были до каждой петли кода.

Каждая переменная, с которой я работаюнаходится в массиве, таком как f [0,1,2,3, ...]

Вероятно, проблема в переменных сброса после каждой проходной части, так как первый проход работает нормально, но остаткипервый проход приводит к преждевременному прерыванию следующих итераций.

Вот псевдо для моего метода.Очень просто, вероятно, проблема в том, как Python обрабатывает данные (объектно-ориентированные) ..

index_save = index
for input1 in [0.1,0.2,0.3,...]
    for input2 in [10,20,30,...]
        for input3 in [-0.1,-0.2,-0.3,...]
            index = index_save  #To reset the index and thus all arrays
            while True:
                index = index + 1
                f[index] = *Function of inputs*
                result = *Function of f and inputs*
                if condition_met = true
                    break
            if result > result_best
                result_best = result
                inputs_best = [input1,input2,input3]

1 Ответ

0 голосов
/ 21 декабря 2018

Оказывается, ответ на мой вопрос следующий:

Использование вложенных циклов for для грубых комбинаций сил работает (очевидно).Использование метода, который я изложил в вопросе, работает для этого.Часть, которая требует осторожности, это , гарантирующая, что вы успешно сбросили все переменные на каждом проходе .Это означает, что переменные, которые являются целыми числами, должны быть сброшены вручную .Это в отличие от того, как я мог сбросить все массивы, просто сбросив индекс.

integer_save = integer
index_save = index
for input in range
    index = index_save
    integer = integer_save
    index = index + 1
    array[index] = (physics functions based on input)
    integer = (physics functions based on input)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...