Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Стандартное отклонение
 
 автор: bill   (07.09.2008 в 20:26)   письмо автору
 
 

есть база из которой выбираем два столбцы цифр, и над ним производим ряд действий дабы получить МИнимальные, МАКСимальные значения... Это я всё сделал быстро. НО вот с задачей посчитать СТАНДАРТНОЕ ОТКЛОНЕНИЕ отклонение что-то никак не могу. КАК оказалось в PHP нету такой функции как в MySQL ( я говорю о STD).
приведу код:

$query = "SELECT Sобщ, price FROM basa WHERE basa.kom = $komn and basa.id_type = $id_type and basa.id_tip = $id_tip";      
$result = mysql_query($query) or die(mysql_error());

    
while($row = mysql_fetch_array($result))


{

$s=$row['Sобщ'];
$p=(int)$row['price'];
  $uc = round($p/$s,3); 
$sum += count($s);  // Сумма  записей в выборке. (Объём выборки)
 $ew = (int)$row['price'];
$sum2 += $uc;   // Сумма всех цен 1 кв.м
$mid = round($sum2 / $sum,3);


/* echo "<br>";
echo "удельная цена   $p"; */


echo "<table width='400' border='1' cellpadding='0' cellspacing='0' class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF' 
    onmouseout=this.style.backgroundColor=''><td width='10' ></td><td width='25%' >
    &nbsp;". $row['Sобщ']. "</td><td width='20%' >".(int)$row['price']."</td><td width='5%' align='center' >X
    </td><td width='25%' >".$uc."</td><td width='80'  align='right'></td><td width='10' ></td></tr></td></table>";
    

 }


для меня являеться сложностью найти стандартное отконение переменной "$uc". Просто непонимаю как это сделать! =(

Единственное что приходит в голову это записать Эту переменную в Базу а уже оттуда её выдернуть и посчитать отклонение с помощию СКЛьной STD.

Какие будут предложения Товарищи?..

help

   
 
 автор: Trianon   (07.09.2008 в 22:04)   письмо автору
 
   для: bill   (07.09.2008 в 20:26)
 

А просто посчитать по формуле несмещенное стандартное отклонение?


http://ru.wikipedia.org/wiki/%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D0%B4%D0%B8%D1%81%D0%BF%D0%B5%D1%80%D1%81%D0%B8%D1%8F

   
 
 автор: bill   (07.09.2008 в 22:27)   письмо автору
 
   для: Trianon   (07.09.2008 в 22:04)
 

так в том то и дело. формула у меня есть!! проблема в том я не знаю как мне использовать массив в переменной "$uc"
у меня в переменной ".$uc." засунут массив который и мне нужно произвести вычисления над каждым элементом массива ((сложить и возвести во вторую степень) это я смогу сделать).

Так вот сложность именно с том чтобы произвести эти арифметические действия над каждым элементом массива.

Надеюсь я Вас не запутал... =) (талантом объяснения я никогда не отличался)

   
 
 автор: Valick   (07.09.2008 в 22:35)   письмо автору
 
   для: bill   (07.09.2008 в 22:27)
 

нужно произвести вычисления над каждым элементом массива ((сложить и возвести во вторую степень)

foreach ($uc as $value)
{
$res=$res+$value;
}
$res=$res*$res;

Может я не так понял, и формула не та... но принцип тот же... фореч рулит)

   
 
 автор: Valick   (08.09.2008 в 02:03)   письмо автору
 
   для: bill   (07.09.2008 в 22:27)
 

array_walk_recursive и array_walk

   
 
 автор: bill   (12.09.2008 в 15:40)   письмо автору
 
   для: Valick   (08.09.2008 в 02:03)
 

Спасибо всем. почитал и решил эту задачу (расчёт стандартного отклонения).

Сейчас другая задача актуальна, прошу помощи.!

проблема с ЦИКЛАМИ (я запутался, 2 дня "распутаться немогу")

есть код:
$query = "SELECT Sобщ, price FROM basa WHERE basa.kom = $komn and basa.id_type = $id_type and basa.id_tip = $id_tip";      
$result = mysql_query($query) or die(mysql_error());
$query_uc2 = "SELECT uc2 FROM mal WHERE  TO_DAYS(NOW()) = TO_DAYS(data) AND uc2 > '0'";      
$result_uc2 = mysql_query($query_uc2) or die(mysql_error());
 
{    
while(($row = mysql_fetch_array($result))AND($row_uc2 = mysql_fetch_array($result_uc2)))

{

$s=$row['Sобщ'];
$p=(int)$row['price'];
  $uc = round($p/$s,3); 
 $ew = (int)$row['price'];
$uc2 = $row_uc2['uc2'];


echo "<table width='600' border='0'class='style96'>
  <tr>
    <td width='230'><table width='100%' border='0'  class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF' 
    onmouseout=this.style.backgroundColor='' ><td  ></td><td width='70' >
    &nbsp;". $row['Sобщ']. "</td><td width='70' >".(int)$row['price']."</td><td width='50' align='center' >X ".$num++."
    </td></tr></td></table></td>
    <td width='120'><table width='90%' border='1'  class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF' 
    onmouseout=this.style.backgroundColor='' bgcolor='#CCFFFF'><td >".$uc."</td></tr></table>
    <td width='40'align='center'>X ".$num2++."</td>
    <td width='100'><table width='100%' border='1'  class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF' 
    onmouseout=this.style.backgroundColor='' bgcolor='FFFF99'><td > ".$uc2." </td></tr></table>
    <?php echo'AFR'?>
    <td>&nbsp;</td>
    <td>&nbsp;</td>

  </tr>
</table>

" ;
    }
 }


Код выводит как можно было догадаться таблицу в которую Циклами выводяться содержимое MySQL таблицы.
Цикл:
while(($row = mysql_fetch_array($result))
- имеет 57 записей.
Цикл:
AND($row_uc2 = mysql_fetch_array($result_uc2)
-имеет 54 записи.

ТАБЛИЦЫ которую я хочу вывести отображаеться нормально только Количество записей которые я вижу в ней = 54. Явно видно что как только ВТОРОЙ цикл достигает конца то таблицы перестаёт "заполняться" значениями из базы.

Вот такой я Лапух... =( Подскажите кто что может по заданному вопросу. Может мысли какие будут...

Зарание благодарен.

   
 
 автор: bill   (12.09.2008 в 16:12)   письмо автору
 
   для: bill   (12.09.2008 в 15:40)
 

ЛЮДИИииии помогите ПОЖАЛЛууусто!

   
 
 автор: bill   (12.09.2008 в 17:26)   письмо автору
 
   для: bill   (12.09.2008 в 16:12)
 

толи я вопрос задал неверно,
толи никто незнает ответа на заданный вопрос,
ну или третий вариант: ..........! (бл*ть чтож так выругаться то хочется).

Таварищи, помогите....

   
 
 автор: bill   (13.09.2008 в 13:38)   письмо автору
 
   для: bill   (12.09.2008 в 17:26)
 

Судя по всему помощи мне в решении заданного вопроса я тут недождусь.......

   
 
 автор: Trianon   (13.09.2008 в 13:43)   письмо автору
 
   для: bill   (13.09.2008 в 13:38)
 

показать здесь код, который просто выводит все числа на экран в столбик Вы можете?

   
 
 автор: bill   (13.09.2008 в 15:51)   письмо автору
89.8 Кб
 
   для: Trianon   (13.09.2008 в 13:43)
 

ДА.

привожу часть скрипта который берёт из базы значения и должен ПРОСТО вывести эти значения в ТАБЛИЦУ.

$query = "SELECT Sобщ, price FROM basa WHERE basa.kom = $komn and basa.id_type = $id_type and basa.id_tip = $id_tip";      
$result = mysql_query($query) or die(mysql_error());
$query_uc2 = "SELECT uc2 FROM mal WHERE  TO_DAYS(NOW()) = TO_DAYS(data) AND uc2 > '0'";      
$result_uc2 = mysql_query($query_uc2) or die(mysql_error());

{    
while(($row = mysql_fetch_array($result))AND($row_uc2 = mysql_fetch_array($result_uc2)))

{

$s=$row['Sобщ'];
$p=(int)$row['price'];
  $uc = round($p/$s,3); 
 $ew = (int)$row['price'];
/*  $rew=array_sum($ew);   */
$uc2 = $row_uc2['uc2'];




echo "<table width='400' border='0'class='style96'>
  <tr>
    <td width='150'><table width='90%' border='0'  class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF' 
    onmouseout=this.style.backgroundColor='' ><td  ></td><td width='30' >
    &nbsp;". $row['Sобщ']. "</td><td width='30' >".(int)$row['price']."</td><td width='10' align='center' >X
    </td></tr></td></table></td>
    <td width='70'><table width='90%' border='1'  class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF' 
    onmouseout=this.style.backgroundColor='' bgcolor='#CCFFFF'><td >".$uc."</td></tr></table>
    <td width='30'align='center'>X</td>
    <td width='70'><table width='90%' border='1'  class='style96'><tr onmouseover=this.style.backgroundColor='#FFBBFF' 
    onmouseout=this.style.backgroundColor='' bgcolor='FFFF99'><td >".$uc2."</td></tr></table>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>


" ;
    

 }
}



в прикреплённом файле дана сама ТАБЛИЦА которая сейчас у меня выводиться этим скриптом.
У меня только один вопрос как мне поправить скрипт чтобы в таблице выводилось ВСЕ записи (55) Первого цикла:
while(($row = mysql_fetch_array($result))
кторый сформировался по запросу к базе:
$query = "SELECT Sобщ, price FROM basa WHERE basa.kom = $komn and basa.id_type = $id_type and basa.id_tip = $id_tip";     

Сейчас же мой вывод в таблицу ограничен выводом (53) записи, это делает ВТОРОЙ цикл:
AND($row_uc2 = mysql_fetch_array($result_uc2))
который сформирован из запроса к базе
$query_uc2 = "SELECT uc2 FROM mal WHERE  TO_DAYS(NOW()) = TO_DAYS(data) AND uc2 > '0'";      
$result_uc2 = mysql_query($query_uc2) or die(mysql_error());



???
ГЛАВНЫЙ вопрос в том как мне "развести" эти два цикла, чтобы каждый из них выводился в полном Объёме. И я в таблице видел все запись, без "обрезаний".
???

Второй вопрос: Как можно выполнить ПОДСВЕТКУ (выделение цветом) в таблице данных выводимых ПЕРвым циклом. Подсветка должна производиться только тех данных которые невходят в диапазон.
ПРИМЕР: допустим есть таблица:
<table width="9%"  border="1">
  <tr>
    <td>1</td>
  </tr>
  <tr>
    <td>2</td>
  </tr>
  <tr>
    <td>3</td>
  </tr>
  <tr>
    <td>4</td>
  </tr>
  <tr>
    <td>5</td>
  </tr>
  <tr>
    <td>6</td>
  </tr>
  <tr>
    <td>7</td>
  </tr>
  <tr>
    <td>8</td>
  </tr>
  <tr>
    <td>9</td>
  </tr>
  <tr>
    <td>10</td>
  </tr>
</table>

и есть условие диапазоны от 3 до 7

Как мне выделить цветом те строчки которые невходят в указанный диапазон.?????

(пока что сам думаю может быть сделать в базе дополнительное поле. в котром будет записываться код цвета, и я буду выдёргивать цвет каждой ячейки из базы. Я понимаю что это несовсем "ICE" но другое покачто в голову неприходит. )

   
 
 автор: Trianon   (13.09.2008 в 16:00)   письмо автору
 
   для: bill   (13.09.2008 в 15:51)
 

Вас вообще что интересует? Как среднеквадратичное отклонение посчитать? Или что-то еще?
Я cпросил про столбик чисел.... Вы навалили на три экрана
Столбик чисел это что-то вроде
foreach($arr as $val)
   echo $val."<br />\r\n";


На картинке тож столбик явно не один. Вы полагаете, эта картинка что-то проясняет?

   
 
 автор: bill   (13.09.2008 в 16:17)   письмо автору
 
   для: Trianon   (13.09.2008 в 16:00)
 

Меня интересуем как мне вывести в таблицу информацию из базы MySQL (стандартное отклонение я уже сам расчитал!) Проблема в том что я выводу все данные в таблицу.
- беру данные из базы MySQL из столбика "а" и вывожу в Первый столбик таблицы.
- беру данные из базы из столбика "б" и вывожу во Второй столбик таблицы.


Проблема в том что у меня вывод осуществляеться цыклически (данные выводяться в таблмцу циклом) причём цыкла ДВА :
while(($row = mysql_fetch_array($result))AND($row_uc2 = mysql_fetch_array($result_uc2)))

и как только одни из циклов заканциваеться, заканчиваеться и выполнение второго. Хотя во втором могут быть данные для вывода. А в Моём случае данные получаеться что выводяться неполностью. =( ПРОБЛЕМА ИМЕННО В ЭТОМ!!!


И простите меня за НЕЛАКОНИЧНОСТЬ. (я только учусь)

   
 
 автор: Trianon   (13.09.2008 в 16:36)   письмо автору
 
   для: bill   (13.09.2008 в 16:17)
 

for(;;)
{
  $row = mysql_fetch_array($result);
  $row_uc2 = mysql_fetch_array($result_uc2);
  if(!$row && !$row_uc2) 
    break;

}

новые задачи формулируются отдельными темами.

   
 
 автор: bill   (13.09.2008 в 16:41)   письмо автору
 
   для: Trianon   (13.09.2008 в 16:36)
 

ОГРОМНАЯ благодарность!!!
Всё вывелось как мне и было нужно!
Спасибо спасибо спасибо.

   
 
 автор: bill   (13.09.2008 в 16:44)   письмо автору
 
   для: Trianon   (13.09.2008 в 16:36)
 

Второй вопрос: Как можно выполнить ПОДСВЕТКУ (выделение цветом) в таблице данных выводимых ПЕРвым циклом. Подсветка должна производиться только тех данных которые невходят в диапазон.
ПРИМЕР: допустим есть таблица:
<table width="9%"  border="1">
  <tr>
    <td bgcolor="#FF0000">1</td>
  </tr>
  <tr>
    <td bgcolor="#FF0000">2</td>
  </tr>
  <tr>
    <td bgcolor="#FF0000">3</td>
  </tr>
  <tr>
    <td>4</td>
  </tr>
  <tr>
    <td>5</td>
  </tr>
  <tr>
    <td>6</td>
  </tr>
  <tr>
    <td>7</td>
  </tr>
  <tr>
    <td>8</td>
  </tr>
  <tr>
    <td>9</td>
  </tr>
  <tr>
    <td>10</td>
  </tr>
</table>


и есть условие диапазоны от 3 до 7

Как мне
выделить цветом 
те строчки которые невходят в указанный диапазон.?????

(пока что сам думаю может быть сделать в базе дополнительное поле. в котром будет записываться код цвета, и я буду выдёргивать цвет каждой ячейки из базы. Я понимаю что это несовсем "ICE" но другое покачто в голову неприходит. )

   
 
 автор: Trianon   (13.09.2008 в 16:53)   письмо автору
 
   для: bill   (13.09.2008 в 16:44)
 

новые задачи формулируются отдельными темами!

[поправлено модератором]

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования