| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Иследование ряда на случайность |
| Автор: Simon14 7.6.2009, 00:25 | ||
| Мне необходимо проверить ряд на случайность есть формулы вот одна из них li=Фигурные скобки 1,ui<u1,ui<u2, ui<un 0, иначе Но не могу розобраться я правильно написал код или нет подскажите вот код где ui = v[i].x а u2=v[i-1].x
зрание благодарен |
| Автор: xvr 8.6.2009, 17:11 |
| В книжке Handbook of applied cryptography (есть в Inete) есть целая глава посвященная проверкам на случайность (для генераторов случайных чисел). Они куда более сложные, чем то, что написано выше |
| Автор: Simon14 8.6.2009, 18:21 |
| ето только одна формула их там много только я не уверен правильно ли я написал код для данной формулы |
| Автор: xvr 8.6.2009, 18:57 |
| Если учесть, что li может принималь значения 0 и 1, то li вычисляется явно неправильная. Если это не принимать во внимание, то нужно уточнение для исходной формулы: не понятно кто такой un и почему использованны только u1 и u2? |
| Автор: Simon14 8.6.2009, 20:39 | ||||
| Возможно я не правильно написал исходную формулу тогда примерно так li=Фигурные скобки 1,u[i]<u[1],u[i]<u[2], u[i]<u[n] 0, иначе
1 тоесть первое значение для u[1] а не u[0]
исходя из выше написаного думаю обяснять что такое u1, u2 и un не следует Извеняюсь за некоректное написание формулы переписывал с конспекта |
| Автор: xvr 8.6.2009, 20:49 | ||||||
Нет, именно САМА li (я так понимаю, что это l[i]) может принимать ТОЛЬКО значения 0 и 1 (это и обозначает фигурная скобка в формуле)
По поводу формулы - то, как она записана значит, что цикла там нет, и сравниваются только 1, 2 и n'й элементы с i'м элементом |
| Автор: Simon14 8.6.2009, 21:22 | ||
u[n] какоето число например u[1]u[2]u[2]u[3] и так далее для точности прикрепляю фотографию формулы |
| Автор: xvr 8.6.2009, 21:37 | ||||||||
Да уж, тщательнее надо конспекты читать, там не ,un а ... u i-1 В переводе на русский язык это будет звучать так -
|
| Автор: Simon14 8.6.2009, 22:00 | ||||||||||
да но конспект не мой и если поставить в цикл і и начать с 1 то в принципе как раз данній код должен біть правильно
вот только не пояму почему у вас
rv что значит и почему if ( v[index].x >= v[i].x) знак >= что ето значит также есть еше один вопросик последуюшая формула имеет следуюший вид L = l[1]+l[2]+l[3]... l[n]
тоисть та li которую мы находили в предыыушей формуле вот я и не могу понять как с той формулы которую я вывел как фотку найти програмно li? |
| Автор: xvr 8.6.2009, 23:47 | ||||||||||||||||||
Не правильно. Сравнение должно быть if (v[i].x < v[index].x)
Работает это так - изначально предполагается, что будет возвращена 1 (true) Потом перебираются все элементы, с которыми надо сравнивать u[index], и если для какого нибудь элемента условие не выполняется, то возвращаемое значение меняется на 0 (false). Это собственно и означает условие из формулы: u[index]<u[i] для всех i, меньших index
В дремучем колхозе лектор из общества 'Знание' читает лекцию о преимуществах электрификации. Рассказывает, как электричество может освещать дом, обогревать и еще много чего делать. Завершает лекцию, спрашивает у колхозников - какие будут вопросы. Встает один мужик и говорит - - Это все конечно хорошо, и свет там и тепло, вот только я никак в толк не возьму - как керосин будет по проводам течь? |