PDA

Просмотр полной версии : алгоритм


ZJA
07.02.2002, 23:38
имеем 6-ть переменных(независимых событий) принимающих значение лож-правда, бульных короче, в случае различных комбинаций наступают различные действия в скрипте, засада: очень много получается комбинаций и ведь на каждую свое действие, предложите оптимальный алгоритм достижения конечного решения о действии, простых if, ifelse получается огромное количество, если switch то он получается не намного меньше и не факт что скрипту не придется пробегать его до конца прежде чем будет принято действие, неужели нет какого-то более мощного алгоритма?

nagash
08.02.2002, 01:04
ну а что... не плохой вариантец... =)
если у тебя при всех вариантах разное действие то вообще пипец...
если одинаково тогда инклуды или функции используй...

ZJA
08.02.2002, 04:20
subj

nagash
08.02.2002, 04:27
ну чтоже тогда могу сказать...
прийдётся простотак писать... главное потом ни одно действие не пропустить =)
я бы даже не согласился проверять эту штуку =)))

DeepDiver
10.02.2002, 17:22
а почему бы не попробовать перевести 6 булевских в одну целочисленную переменную, и уже по ней ставить switch? думаю свитч на 64 позиции - минимальная конструкция в данном случае

evgenz
12.02.2002, 20:14
Преобразоавать двоичное число в десятичное, а так уж проще

ZJA
13.02.2002, 03:34
это я условно назвал их двоичными числами, на самом деле просто каждый 0 или 1 это результат сравнения определнных параметров с другими, но все параметры разные и не связанны друг с другом никак, в общем я пошел другим путем, просто без этого механизма, а то уж больно все сложно получается

Anton-Killer
13.02.2002, 03:44
А почему бы тебе не попробовать вот так

<?php
if ($abc==$def) {
include ("function_01.php.inc");
}
//а в этих файлах описываешь функции которые тебе надо при разных условия
?>

nagash
13.02.2002, 06:13
2 Anton-Killer
опять невнимательно читаешь...
в этом то вопрос и заключается что слишком много условий... =) и что получается оооочень большой список самих проверок...

Anton-Killer
13.02.2002, 20:09
Он написал, что условий то много, но он имел еще и введу то, что если это усливие находится в самом низу, то компалеру приходиться очень много кода просто проходить через все это а так это все вызываться именно когда надо и минимум строк :)

Crazy
13.02.2002, 20:23
Тогда так:

1. Из 6 битовых флагов получаем 6-битно число $foobar.
2. Инклудим нужный код:

include ("func" . $foobar . ".inc");

:)

Anton-Killer
13.02.2002, 20:26
Ну вот Crazy
Я хоть на половину был прав?????

Crazy
13.02.2002, 20:32
Почему только наполовину? :) Просто прав.

Anton-Killer
14.02.2002, 01:50
Спасибо Crazy :) , а то меня nagash уже обидеть решил....
:)

nagash
14.02.2002, 02:12
ну хорошо... и не в таких битвах выживал... =)
let's fight
http://nagash.org/64.gif
=))))))))