#11 2012.01.13 22:51

Sep
Участник
Откуда: Беларусь
Зарегистрирован: 2009.05.30
Сообщений: 37
Карма: 0
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Есть число 20, как сделать 5 разных чисел, что бы они в среднем арифметическом давали 20, и по возможности регулировать уровень числа.
Например:
Дано 20
Четвертое число больше всех.
Получаем числа 16, 10, 24, 30, 20.
Как это реализовать? Заранее спасибо

Отредактировано Sep (2012.01.13 22:55)

Неактивен

#12 2012.01.14 00:23

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Код:

1
span style="color: #0000BB"><?php$avg = 20; // среднее арифметическое$count = 5; // всего необходимо чисел$max = 30; // максимальное число$maxNumber = 4; // какое число в массиве должно быть максимальным$numbers = array();$sum = $avg * $count;for ($i = 1; $i <= $count; ++$i) { if ($i === $maxNumber) { $numbers[$i] = $max; } else if ($i === $count) { $numbers[$i] = $sum - array_sum($numbers); } else { $numbers[$i] = mt_rand($max / $count + $count, $max - $count); }}print_r($numbers);echo array_sum($numbers) / sizeof($numbers);

спасибо за задачку, мне очень понравилась)
Добавлено спустя    51 секунду:
P.S. не уверен на счет оптимальности кода, но сам алгоритм вроде работает.

Неактивен

#13 2012.01.14 01:07

Sep
Участник
Откуда: Беларусь
Зарегистрирован: 2009.05.30
Сообщений: 37
Карма: 0
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Gemorroj, спасибо большое smile

Неактивен

#14 2012.01.15 16:24

Sep
Участник
Откуда: Беларусь
Зарегистрирован: 2009.05.30
Сообщений: 37
Карма: 0
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Gemorroj, жаль что при увеличении числа $count алгоритм уже не правильно работает. Последнее число становится очень большим, разбежка от средне арифметического должна быть небольшой

Неактивен

#15 2012.01.15 18:17

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Sep, ну тут условия заданы жесткие. Т.е. работоспособность алгоритма зависит от заданных первоначальных условий.

Неактивен

#16 2012.04.28 02:17

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

У меня такая проблема. Нужно создать страничку списка сайтов локалхоста. Шаблон я подготовил, но в скрипте не могу разобраться, как вывести субдомены в общем блоке.
Конструкция разметки должна быть примерно следующей:
<div>
<a>Домен1</a>
<a>Домен2</a>

   <div>
    <a>Субдомен1.Домен2</a>
    <a>Субдомен2.Домен2</a>
   </div>

<a>Домен3</a>
</div>

А на данный момент я могу вывести лишь так:

<div>
<a>Домен1</a>
<a>Домен2</a>

   <div><a>Субдомен1.Домен2</a></div>
   <div><a>Субдомен2.Домен2</a></div>
   
<a>Домен3</a>
</div>

За основу взял этот скрипт:

Код:

1
lt;?// Original idea by: Dmitry Boykov (http://forum.dklab.ru/users/DmitryBoykov/)$file = file('/usr/local/apache/conf/vhosts.conf');foreach ($file as $line) { if (preg_match('/^[^#]* <VirtualHost \s+ [^:>]+ (?::(\d+))?/six', $line, $p)) { $port = @$p[1]; } if (preg_match('/^[^#]* ServerName \s+ "?([^"]*)"?/six', $line, $p)){ if ($port == 443) continue; $dom = preg_replace('/^www\./si', '', $p[1]); $dom .= $port && $port != 80? ":$port" : ""; $domains[$dom] = join(".", array_reverse(preg_split('/\./', $dom))); }}asort($domains);$prev = false;echo '<ul>';foreach ($domains as $dom=>$parts) { if (!$prev || !preg_match('/'.preg_quote($prev, '/').'$/si', $dom)) { echo "<li><a href=\"http://{$dom}\" target=\"_blank\"><b>{$dom}</b></a></li>"; $prev = $dom; } else { print "&nbsp;&nbsp;-&nbsp;&nbsp;<a href=\"http://{$dom}\" target=\"_blank\">{$dom}</a><br />"; }}echo '</ul>';?>

sad
Было бы вообще здорово, если бы домены и субдомены парсились не из апача, чтоб при запуске на Nginx, список сайтов тоже смог отобразится.

Неактивен

#17 2012.04.28 10:22

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

эм.. не совсем понимаю. проблема всего лишь в дивах?
и еще, вероятно, лучше будет использовать не парсер vhosts.conf, а парсить вывод apachectl -S

Неактивен

#18 2012.04.28 14:24

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Да, вопрос косметического характера - вывод субдоменов в каком-либо классе (дивы для примера конструкции, мне нужен <ul>).
И чтоб скрипт мог работать на том же Денвере. smile

Неактивен

#19 2012.04.28 15:01

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

ну так собери сначала все в массив, а потом с массивом делай что хочешь.

Неактивен

#20 2012.04.28 16:42

LEXIN
Участник
Зарегистрирован: 2011.10.31
Сообщений: 26
Карма: 5
Профиль Веб-сайт

Re: Алгоритмы (вопрос/ответ)

Без понятия как это сделать.

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.012 s