0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 27
1

Метод случайного поиска

19.04.2010, 13:01. Показов 16773. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
в чем заключается метод? какой шаг и т д поясните плиз.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2010, 13:01
Ответы с готовыми решениями:

Адаптивный метод случайного поиска
Всем здравствуйте. Прошу помощи. Нужно создать программу на С++ в которой реализуется адаптивный...

Адаптивный метод случайного поиска
Адаптивным методом случайного поиска, нужна помощь(( вообще не понимаю...

вид поиска, метод поиска
Написать программу, реализующую один из алгоритмов программного поиска данных в информационном...

Метод случайного поиска
Здравствуйте дорогие люди : ) Прошу вас помочь сделать простенькую программку НА ТЕМУ:Метод...

22
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
19.04.2010, 13:57 2
Цитата Сообщение от Katyaara Посмотреть сообщение
в чем заключается метод? какой шаг и т д поясните плиз.
имхо нужно гуглить.
ЗЫ: о таком методе поиска первый раз слышу.
0
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 27
19.04.2010, 14:26  [ТС] 3
я гуглил, толком ничего несказано ни шаг ничего(
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,749
19.04.2010, 14:38 4
вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main(){
    const int size = 10;
    int arr[size];
    for ( int i = 0; i < size; ++i )
        std::cout << ( arr[i] = i + 1 ) << " ";
    std::cout << std::endl;
    int find;
    std::cout << "Enter value between 1 and 10: ";
    std::cin >> find;
    if ( find < 1 || find > 10 )
        exit(1);
    int pos;
    srand(time(NULL));
    while ( arr[pos = rand() % size] != find )
        ;
    std::cout << "Value " << find << " is at index " << pos << " in array starts by zero." << std::endl;
 
    exit(0);
}
2
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
19.04.2010, 17:26 5
Цитата Сообщение от easybudda Посмотреть сообщение
while ( arr[pos = rand() % size] != find )
;
вообщем сам алгоритм это 1 строчка ?)
C++
1
while ( arr[pos = rand() % size] != find )
а где примняется такой?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,749
19.04.2010, 17:44 6
Цитата Сообщение от PointsEqual Посмотреть сообщение
вообщем сам алгоритм это 1 строчка ?)
Угу

Цитата Сообщение от PointsEqual Посмотреть сообщение
а где примняется такой?
Без понятия, я про такое первый раз слышу... Да и смысла в нём в таком виде не много - теоретически может на всегда задуматься. Может в этом и был бы смысл при бинарном поиске, если очередной участок делить не пополам, а как прийдётся. А так скорее на шутку похоже...
0
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 27
21.04.2010, 18:25  [ТС] 7
короче как я понял никто об этом ничего не знает?
0
2 / 2 / 0
Регистрация: 24.09.2008
Сообщений: 10
21.04.2010, 18:40 8
подобные методы могут применяться в показе случайной информации!!! Например: когда запускаешь тот же MS VS сразу появляется сообщение-рекомендация , но если ты сразу выключишь и включишь заново среду то енто сообщение-рекомендация уже будет другой. Ну и развивай мысль где енто может еще использоваться!
0
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 27
21.04.2010, 21:55  [ТС] 9
ооооо это легко сказать мне неадо этим методом уравнение решить решить)) вот тут я бессилен
0
22 / 7 / 2
Регистрация: 22.04.2010
Сообщений: 105
22.04.2010, 21:36 10
Метод экспериментального поиска экстремума функций многих переменных. Основная идея метода заключается в том, что точку каждого пробного опыта для изучения поверхности отклика выбирают случайным образом. Несмотря на произвольность выбора пробной точки, алгоритм случайного поиска позволяет последовательно приближаться к экстремальной области.

То есть если в методе деления отрезка пополам, мы берем точки для сравнения, откладывая равные отрезки от середины отрезка, то здесь, возможно, точки берутся рандомно...
1
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
22.04.2010, 21:58 11
Трассировка. Метод вероятностной маршрутизации.
Метод бестолковый, но он существует и даже когда-то применялся о_О
0
22 / 7 / 2
Регистрация: 22.04.2010
Сообщений: 105
23.04.2010, 14:23 12
Цитата Сообщение от PointsEqual Посмотреть сообщение
вообщем сам алгоритм это 1 строчка ?)
C++
1
while ( arr[pos = rand() % size] != find )
а где примняется такой?
Кстати эта строчка не совсем рациональна, если учесть, что нужного нам решения не существует, то будет бесконечный цикл...
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,749
23.04.2010, 14:58 13
positron, а Вы попробуйте скомпилировать, запустить и ввести не то, что попросит...
0
22 / 7 / 2
Регистрация: 22.04.2010
Сообщений: 105
23.04.2010, 18:31 14
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{   
    const int size=10;
    int arr[]={0,1,2,3,4,5,6,7,8,9},find,pos;
    printf("Input value: ");
    scanf("%d",&find);
    srand(0);
    while ( arr[pos = rand() % size] != find );
    printf("Result = %d",arr[pos]);
    getch();
}
Если я правильно понял собственно поиск, то если значение отсутствует в массиве, бесконечный цикл....
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,749
23.04.2010, 18:58 15
positron, если бы Вы внимательно посмотрели, заметили бы проверку на допустимость искомого значения
C
1
2
3
4
...
if ( find < 1 || find > 10 )
        exit(1);
...
А вообще это просто пример, который первым в голову пришёл, нечего к нему требования, как к ядру Матрицы предъявлять!

Добавлено через 7 минут
Цитата Сообщение от positron Посмотреть сообщение
Если я правильно понял собственно поиск
Кстати не правильно Вы поняли! Ищется не элемент в массиве, а его индекс.
0
22 / 7 / 2
Регистрация: 22.04.2010
Сообщений: 105
23.04.2010, 19:54 16
easybudda, аа, ну да, не заметил, извините) Но в данном случае этот метод используется для нахождения минимума унимодальной функции...
Полное задание такое:Написать программу, осуществляющую поиск оптимального значения функции или решение уравнения заданным методом. Интервал поиска (или начальную точку – в зависимости от метода) вводит пользователь. На экране пользователю должен отображаться ход решения, т.е. все промежуточные точки и значения функции в этих точках. Начальные условия (функция, интервал/начальная точка) и ход поиска должны дублироваться в текстовый файл. Имя файла вводит пользователь. Интервал/начальную точку выбирать в пределах [-10;10].
Если методе Фибонначи:
C
1
2
3
4
5
6
float function(float x)//функция, экстремум которой нужно найти
{
    float exp=2.718281, y;
    y=(sin(x*x/10)*pow(exp,x/10))/(x*x+1);
    return y;
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
P1=P2=1;
while(abs(a-b)>e)
{
        x1=b-(P1/P2)*(b-a);
        x2=a+(P1/P2)*(b-a);
        if(function(x1)>function(x2))
            a=x1;
        else if(function(x1)<function(x2))
            b=x2;
        P2=P1+P2;
        P1=P2-P1;
        printf("\nШаг %d: \nТекущий интервал поиска:%f  %f\nЗначения в этих точках: %f    %f",i,a,b,function(a),function(b));
                i++;
}
То здесь x1 и x2 нужно брать рандомно, а вот как использовать rand(), чтобы x1 и x2 не выходили за рамки (а,b) это надо подумать...

Добавлено через 4 минуты
Цитата Сообщение от easybudda Посмотреть сообщение
Ищется не элемент в массиве, а его индекс.
Это я понял, у меня он как раз и ищется.. Просто если усложнить задачу и заполнить массив не по порядку, то сложно будет ограничить ввод искомого значения
0
1 / 1 / 0
Регистрация: 27.12.2010
Сообщений: 86
25.11.2011, 09:00 17
Цитата Сообщение от positron Посмотреть сообщение
Метод экспериментального поиска экстремума функций многих переменных. Основная идея метода заключается в том, что точку каждого пробного опыта для изучения поверхности отклика выбирают случайным образом. Несмотря на произвольность выбора пробной точки, алгоритм случайного поиска позволяет последовательно приближаться к экстремальной области.

То есть если в методе деления отрезка пополам, мы берем точки для сравнения, откладывая равные отрезки от середины отрезка, то здесь, возможно, точки берутся рандомно...
А есть блок схема этого метода или программа. Очень нужно для курсовой
0
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 8
26.05.2012, 01:12 18
http://bigor.bmstu.ru/?cnt/?doc=MO/base.cou

вот описание всех вариаций этого метода

мне тоже попалось залание "оптимизация функции одной переменной методом случайного поиска"
0
1 / 1 / 0
Регистрация: 27.12.2010
Сообщений: 86
27.05.2012, 00:25 19
Цитата Сообщение от Twinky Посмотреть сообщение
http://bigor.bmstu.ru/?cnt/?doc=MO/base.cou

вот описание всех вариаций этого метода

мне тоже попалось залание "оптимизация функции одной переменной методом случайного поиска"
да уже не нужно
0
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 8
13.06.2012, 01:19 20
Цитата Сообщение от jerrald Посмотреть сообщение
да уже не нужно
а у тебя не осталась курсовая?
0
13.06.2012, 01:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2012, 01:19
Помогаю со студенческими работами здесь

Адаптивный метод случайного поиска
f({x}_{1},{x}_{2})=({x}_{2}-{x}_{1}^2)^2+(1-{x}_{1})^2\rightarrow min Минимизация функции с...

Алгоритм метода случайного поиска
Подскажите,пожалуйста,алгоритм метода случайного поиска в паскале. Я его нигде не могу найти.

Нужно найти минимум функции методом случайного поиска.
Нужно найти минимум функции методом случайного поиска.

Найти точку минимума функции методом случайного поиска с возвратом и наилучшей пробы
Здравствуйте. помогите решить задачку. надо найти точку минимума функции методом случайного поиска...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru