Блог им. Therollingstones

Смартлабовцы!

 Ломаю голову над условным оператором моего @торгового робота, по коду вопроса нет, но есть одна очень хорошая задача. 

 У меня есть 10 функций, каждая функция содержит условие, а давайте я выложу это дело 

 

let Testv1t1 = fun v1 -> if ((v1 >= 0)&&(v1 <= 3)) then 0
                                else 1
let Testv2t1 = fun v2 -> if ((v2 >= 0)&&(v2 <= 3)) then 0
                                else 1
let Testv3t1 = fun v3 -> if ((v3 >= 0)&&(v3 <= 3)) then 0
                                else 1
let Testv4t1 = fun v4 -> if ((v4 >= 0)&&(v4 <= 3)) then 0
                                else 1
let Testv5t1 = fun v5 -> if ((v5 >= 0)&&(v5 <= 3)) then 0
                                else 1
let Testv6t1 = fun v6 -> if ((v6 >= 0)&&(v6 <= 3)) then 0
                                else 1
let Testv7t1 = fun v7 -> if ((v7 >= 0)&&(v7 <= 3)) then 0
                                else 1
let Testv8t1 = fun v8 -> if ((v8 >= 0)&&(v8 <= 3)) then 0
                                else 1
let Testv9t1 = fun v9 -> if ((v9 >= 0)&&(v9 <= 3)) then 0
                                else 1
let Testv10t1 = fun v10 -> if ((v10 >= 0)&&(v10 <= 3)) then 0
                                   else 1

условие на данный момент тренировочное но вот суть вопроса.
Итогом работы этих 10 функций будет множество вариантов

Если условия во всех функциях будут выполнены мы получим во такой код 

0 0 0 0 0
0 0 0 0 0

Если условия во всех функциях будут не выполнены мы получим 

1 1 1 1 1
1 1 1 1 1

Дальше интереснее 

1 0 0 0 0   0 0 0 0 0  
0 0 0 0 0   1 0 0 0 0

0 1 0 0 0   0 0 0 0 0
0 0 0 0 0   0 1 0 0 0

0 0 1 0 0   0 0 0 0 0
0 0 0 0 0   0 0 1 0 0

0 0 0 1 0   0 0 0 0 0
0 0 0 0 0   0 0 0 1 0

0 0 0 0 1   0 0 0 0 0
0 0 0 0 0   0 0 0 0 1

Как вы понимаете, можно получить очень необычную комбинацию, например 

1 1 1 0 0
0 0 1 0 0

Я так понимаю, здесь может быть множество комбинаций, 

Мои выводы

а) конечно нужно будет исходить из реальной ситуации и прописать все возможные исключения в результате тестов
б) а возможно посчитать все доступные комбинации?

Мое мнение что здесь очень тонкая грань между допустимым множеством исключений и бесконечностью, ну либо очень большим кол — вом исключений которые просто не реально будет прописать) 
Если есть идей пишите) буду рад) 

Конечно комбинации необходимо просчитывать исходя из реальной ситуации, но а ради интереса, как просчитать? 




26 комментариев
вопрос то в чём? или я туплю, или лыжи не едут)))
avatar
0 0 0 0 0
0 0 0 0 0

Сколько может быть комбинаций единичек в данном кол — ве ячеек) 
avatar
Therollingstones, Мне кажется очень много, почти бесконечно, но как посчитать, просто интересно. Я даже так на глаз прикидываю и уже сложно.
avatar
Therollingstones, переведи число 1111111111 из двоичной в десятичную систему и узнаешь кол-во комбинаций))))


если лень, то это 1023. И если 0000000000 читать комбинацией, то всего 1024 комбинации! Это же просто)))

… не забудь плюсануть))
avatar
Я бы сказал на вскидку 10!, или 3628800 Но надо комбинаторику вспомнить.
avatar
Евгений, значит правильный вариант 

а) максимально возможное тестирование исходя из реальной ситуации.) если 3628800 )) 
avatar
Евгений, а как получили результат  3628800
avatar
Therollingstones, Евгений, а как получили результат  3628800

Я могу ошибаться. Но по сути у нас есть ряд из 10 составляющих x.....n, которые можно менять местами как угодно. Количество всемозможных комбинаций можно определить как n! (n факториал). Т.е 10!=1*2*3*4*5*6*7*8*9*10=3628800. Но лучше погуглить статьи по комбинаторике)
avatar
Евгений, Мне кажется вы правы) 
avatar
FullCup, а как посчитали ?)
avatar
www.mathelp.spb.ru/book2/tv3.htm — там есть раздел перестановки из n элементов. Я думаю что-то похожее и здесь.
avatar
Евгений, лють лютейшая)) 
avatar
Therollingstones, Если 3628800 то сами судите, прописать код для каждого варианта не реально) здесь чисто физические грабли) 
avatar
Therollingstones, ну тут надо понимать, что представляет из себя алгоритм робота. Всегда есть способы, как можно облегчить или упростить.
avatar
Евгений, Я пока в свободном полете и эксперименте, представляю только поверхностно так) 
avatar
Евгений, Спасибо за ссылку) 
avatar
Блин, я ж выше ответил)) Что не смотришь? )))
avatar
FullCup, Вот я лол))) А как посчитать не понял, до меня долго доходит)) Материалы бы какие почитать…
avatar

Therollingstones, https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4 

Смотри, нашел статью в википедии в подтверждении ответа FullCup

avatar

Therollingstones, ща на пальцах объясним)) — я в этом поднаторел, потому что в математике не особо. 

У нас десять ячеек. Вариативность каждой из них — 1 и 0, т.е. 2 варианта. Т.о., берем случай когда у нас только одна ячейка, будет два возможных варианта: 0 и 1. Теперь посмотрим, как обстоят дела с двумя ячейками. Во второй ячейке тоже возможны два вариант, а сколько комбинаций на двух ячейках: на каждый вариант в первой ячейке найдётся два варианта во второй, соответственно общее кол-во вариантов будет равно кол-ву вариаций в первой x 2. И далее аналогично — кол-во вариаций при n кол-ве ячеек будет равно кол-ву вариаций при n-1 кол-ве ячее ячеек x 2. Если попробовать проделать то же при 3-х позиционной вариативности в одной ячейке, то будет видно, что множитель 2 превратится в 3. А если попытаться из этого единую формулу сварганить, то и получится, что общее кол-во вариантов будет равно кол-во вариаций в одной ячейке в степени кол-ва ячеек.

А тебе зачем это?)

avatar
Replikant_mih, сводка по условиям, пишу прогу одну
avatar
Replikant_mih, Я позже буду выкладывать открытый код обязательно) 
avatar
Therollingstones, Да чё, код. Всё равно язык непонятный).
Как говорили в Иван Василиче: «Хотелось бы понять в общих чертах, о чем он говорит»))

avatar
Replikant_mih, F#, на самом деле делаю разработочную схему. Фишка в том, что каждый тик приходит 10 значений, мне нужно каждое проверить и получить реакцию в зависимости от от общей картины.) Если ооооооочень просто а так 

mva.microsoft.com/ru/training-courses/-f--12198

)
avatar
2^10 = 1024 комбинации, факториал — из другой оперы.
avatar

теги блога therollingstones

....все тэги



UPDONW
Новый дизайн