#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
Сообщений: 6579
Карма: 108
Профиль Веб-сайт

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

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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
Сообщений: 6579
Карма: 108
Профиль Веб-сайт

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
// 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
Сообщений: 6579
Карма: 108
Профиль Веб-сайт

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
Сообщений: 6579
Карма: 108
Профиль Веб-сайт

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

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

Неактивен

#20 2012.04.28 16:42

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

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

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

Неактивен

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

forum.wapinet.ru

PunBB Mod v0.6.1
0.013 s