Здравствуйте.
Попытался разобраться в примерах по работе с TParallel, но не затащил (
Да и вообще хочу уточнить поможет ли в моем случаем использование TParallel.
задача в виде кода такая:
for i_01 := 1 to 7 do
for i_02 := 1 to 7 do
for i_03 := 1 to 7 do
for i_04 := 1 to 7 do
for i_05 := 1 to 7 do
begin
if (i_01 <> i_02) and
(i_01 <> i_03) and
(i_01 <> i_04) and
(i_01 <> i_05) and
(i_02 <> i_03) and
(i_02 <> i_04) and
(i_02 <> i_05) and
(i_03 <> i_04) and
(i_03 <> i_05) and
(i_04 <> i_05) then
// сохраняю эти данные в файл.
end;
Т.е. я перебираю все комбинации и ищу среди них только те, где элементы не повторяются.
К примеру перебирая все варианты, выпадает такой: 1,2,3,4,4
Этот вариант я не сохраняю так как в нем две одинаковые четверки.
А вот вариант 1,2,3,4,5 сохраню, так как все числа в этом наборе не повторяются.
Сейчас задача выполняется на компе, но процессор грузиться только на 18% под эту программу.
(Win 8.1 64 bit, iCore7, 8Гб ОЗУ, Ядер 4, Логический процессов 8)
Сам перебор выполняется в отдельном потоке.
*Подскажите пожалуйста, возможно ли применение TParallel под мою задачу и если да, то ускорит ли его применение работу программы?
*И если не трудно и кто знает как, то выложите пожалуйста пример как это должно выглядеть.
*Есть ли вариант заменить вон тот список условий (if (i_01 <> i_02.... и т.д.) на какой нибудь более грамотный вариант и не в ущерб в скорости? Или этот вариант единственный?