Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Алгоритмы и теория программирования


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Роман Селиверстов
Статус: Советник
Рейтинг: 5248
∙ повысить рейтинг »
CradleA
Статус: Бакалавр
Рейтинг: 2050
∙ повысить рейтинг »
Megaloman
Статус: Академик
Рейтинг: 1787
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Алгоритмы и теория программирования

Номер выпуска:171
Дата выхода:07.07.2013, 16:00
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:94 / 43
Вопросов / ответов:3 / 5

Консультация # 150720: Здраствуйте уважаемые эксперты! У меня у вам вопрос - какой использовать алгоритм для решения следующей задачи: На окружности расположены 6 точек, равностоящих друг от друга. Точки пронумерованы по часовой стрелке начиная с верхней позиции. Движение из одной точки в другую происходит следующим образом: из данной точки он перемещается в одну и...


Консультация # 142869: Здравствуйте, помогите, пожалуйста: Всякую ли рекурсию можно превратить в итерацию? Если да, то приведите аргументы «за». Если нет, то приведите пример....
Консультация # 55755: Необходимо из списка доменных имён в текстовом формате получить таблицу с двумя колонками - домен l дата его истечения. Формат даты особой роли не играет, хотя было бы неплохо, если он будет дд.мм.гггг. С помощью программы SmartWhois мне удалось запросить пакетом whois для списка доменов; удалось даже вывести данные whois в один текстовый ...

Консультация # 150720:

Здраствуйте уважаемые эксперты!
У меня у вам вопрос - какой использовать алгоритм для решения следующей задачи:
На окружности расположены 6 точек, равностоящих друг от друга. Точки пронумерованы по часовой стрелке начиная с верхней позиции. Движение из одной точки в другую происходит следующим образом: из данной точки он перемещается в одну из ближайщих соседних точек с вероятностью 1/4 или в противоположную точку с вероятностью 1/2. Нужно найти вероятность остановки процесса в точке 4 после 25 щагов.
Вообщем у меня проблемы с расчетом вероятности поэтому сам додуматься немагу сколько непытался, надеюсь тут ктонибудь поможет smile

Дата отправки: 16.11.2008, 18:05
Вопрос задал: Сидоров Евгений Романович
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Errandir:

Здравствуйте, Евгений Романович!

Ниже я написал код с комментариями для более обобщённого случая на matlab'е.
С заданными ниже условиями, код считает для вашего случая, если конечно движение начиналось из первой позиции.

Удачи.

Приложение:

Консультировал: Errandir
Дата отправки: 16.11.2008, 21:01
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Andersen:

Здравствуйте, Сидоров Евгений Романович!

1 способ : полный перебор 847288609443 различных кобинаций (долго и глупо)

2 способ : Данная задача легко и наглядно решается в excel

1 2 3 4 5 6
Исходное знач. 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000
Шаг 1 0,25000000 0,50000000 0,00000000 0,00000000 0,00000000 0,25000000
Шаг 2 0,31250000 0,25000000 0,25000000 0,00000000 0,06250000 0,12500000
Шаг 3 0,20312500 0,28125000 0,18750000 0,14062500 0,04687500 0,14062500
Шаг 4 0,19140625 0,21875000 0,22265625 0,14062500 0,11718750 0,10937500
Шаг 5 0,15722656 0,20605469 0,20019531 0,17578125 0,12695313 0,13378906
Шаг 6 0,15771484 0,18017578 0,19702148 0,17578125 0,15307617 0,13623047
Шаг 7 0,15258789 0,17315674 0,18328857 0,18072510 0,16021729 0,15002441
Шаг 8 0,15644836 0,16540527 0,17758179 0,17687988 0,16792297 0,15576172
Шаг 9 0,15834427 0,16397095 0,17131805 0,17499161 0,16936111 0,16201401
Шаг 10 0,16158581 0,16299438 0,16856289 0,17174721 0,17033958 0,16477013
Шаг 11 0,16353011 0,16368222 0,16657472 0,16980314 0,16965103 0,16675878
Шаг 12 0,16518247 0,16432929 0,16593558 0,16815090 0,16900402 0,16739774
Шаг 13 0,16607681 0,16515745 0,16568626 0,16725652 0,16817589 0,16764706
Шаг 14 0,16663210 0,16574933 0,16581442 0,16670123 0,16758400 0,16751891
Шаг 15 0,16685481 0,16620699 0,16600358 0,16647852 0,16712635 0,16732975
Шаг 16 0,16693033 0,16648005 0,16622402 0,16640301 0,16685328 0,16710931
Шаг 17 0,16690725 0,16664118 0,16639678 0,16642608 0,16669215 0,16693655
Шаг 18 0,16685538 0,16671312 0,16652631 0,16647795 0,16662022 0,16680703
Шаг 19 0,16679564 0,16673755 0,16660762 0,16653769 0,16659579 0,16672571
Шаг 20 0,16674615 0,16673411 0,16665510 0,16658718 0,16659922 0,16667823
Шаг 21 0,16670918 0,16672038 0,16667763 0,16662415 0,16661295 0,16665571
Ша г 22 0,16668524 0,16670409 0,16668563 0,16664809 0,16662924 0,16664770
Шаг 23 0,16667118 0,16669005 0,16668548 0,16666215 0,16664328 0,16664786
Шаг 24 0,16666424 0,16667947 0,16668193 0,16666910 0,16665386 0,16665140
Шаг 25 0,16666163 0,16667247 0,16667749 0,16667171 0,16666086 0,16665584

Искомое значение 0,16667171

расчет каждой ячейки следующего шага основан на суммировании вероятностей

точка2.шаг2=точка1.шаг1*0,5+точка2.шаг1*0,25+точка3.шаг1*0,25

Консультировал: Andersen
Дата отправки: 17.11.2008, 10:32
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 142869:

Здравствуйте, помогите, пожалуйста:
Всякую ли рекурсию можно превратить в итерацию?
Если да, то приведите аргументы «за».
Если нет, то приведите пример.

Дата отправки: 02.09.2008, 04:03
Вопрос задал: Капранов Павел Павлович
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Гнедов Андрей:

Здравствуйте, Капранов Павел Павлович!
Я считаю, что не всякую. Существенное отличие рекурсии от итерации в том, что при рекурсии идет на каждом шаге "вглубь" происходит увеличение объема данных, а при итерации объем данных не изменяется.
Примером может послужить алгоритм разбора транслятором математического выражения со скобками. Заранее можно ограничить глубину вложенности и построить итеративный процесс анализа выражения. При этом на каждой итерации заполняются заранее подготовленные структуры данных для каждого уровня вложенности.
Но если глубину вложенности скобочных выражений не ограничивать, то работает только рекурсия.

Консультировал: Гнедов Андрей
Дата отправки: 02.09.2008, 13:16
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, Капранов Павел Павлович!

Любую рекурсию можно преобразовать в итерацию и наоборот.
Доказательство можете посмотреть тут.
Вопрос стоит только в том, насколько это легко и эффективно, к примеру:

Код :
procedure triangle(x,y,a:integer);{пусть (x,y) — положение прямого угла, a — длина катета}
begin
	line(x, y, x + a, y);
	line(x, y, x, y - a);
	line(x + a, y, x, y - a);{построили контур большого треугольника}
	if (a>1) then begin{если наш треугольник должен содержать внутренние —построим их по тому же правилу что и большой}
		triangle(x, y, a div 2); {меньший треугольник, у которого общий с большим прямой угол}
		triangle(x, y — a div 2, a div 2);{верхний треугольник}
		triangle(x + a div 2, y, a div 2);{правый треугольник}
	end;
end;

Взято из Методики подготовки учащихся к олимпиадам. File Format: Microsoft Word.
Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 02.09.2008, 15:34
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 55755:

Необходимо из списка доменных имён в текстовом формате получить таблицу с двумя колонками - домен l дата его истечения. Формат даты особой роли не играет, хотя было бы неплохо, если он будет дд.мм.гггг.

С помощью программы SmartWhois мне удалось запросить пакетом whois для списка доменов; удалось даже вывести данные whois в один текстовый файл (см. приложение). Можно ли какими-то средствами обработать этот ьекст так, чтобы оставить только то, что мне надо?

Я пробовал подрессировать макросы в ворде, но что-то толком ничего не вышло. Хотя, возможно, задачу всё-таки можно решить таким способом, просто я туплю. Может, это можно сделать средствами php, но я с ним незнаком.
Помогите, пожалуйста.

Дата отправки: 17.09.2006, 21:25
Вопрос задал: Sitty_darling
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Muad Dib:

Здравствуйте, Sitty_darling!
Есть вот такой вот вариант на perl\'e, не уверен что это самое правильное решение,
но на том примере который вы привели оно работает :)


#!/usr/bin/perl -w

my $s="";
while(<>){
if($_=~m//i){$s=<>};
if($_=~m/Истекает/){
$s=$s." ".$_;
$s=~s/\n//g;
$s=~s/Истекает://g;
print $s."\n";
}
}

Консультировал: Muad Dib
Дата отправки: 18.09.2006, 14:47
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное