[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Деление числа на 2 n раз
cyberside
Есть переменная $dn, которая хранит в себе число.
Также есть переменная $count_sings, которое хранит в себе количество байтов.

Необходимо получить переменную $collBytes, которая равна $count_sings деленное на 2, такое кол-во раз, которое указано в $dn.

Как осуществить данную процедуру?



Спустя 6 минут, 11 секунд (20.09.2012 - 16:25) TranceIT написал(а):
Цикл for или while

Спустя 1 минута, 22 секунды (20.09.2012 - 16:27) neadekvat написал(а):
1. Почему переменные названы в разных стилях? Либо так - a_b, либо так: aB.
2. Чем обычный цикл не угодил?

Спустя 1 минута, 44 секунды (20.09.2012 - 16:28) Michael написал(а):
почитай про логарифмы

Спустя 9 минут, 29 секунд (20.09.2012 - 16:38) cyberside написал(а):
Ну циклом я пробовал:

for($esg = 2; $esg <= $dn; $esg++){
$count_sings = $count_sings / 2;
}


Дает неверные значения...

Спустя 7 минут, 25 секунд (20.09.2012 - 16:45) Игорь_Vasinsky написал(а):
тебе же в предыдущей теме с логарифмами решение дали

Спустя 4 минуты, 16 секунд (20.09.2012 - 16:49) cyberside написал(а):
Игорь_Vasinsky, я туда не заглядывал после do & while... Сейчас посмотрим, вспомним школу...

Спустя 4 часа, 29 минут, 30 секунд (20.09.2012 - 21:19) neadekvat написал(а):
Цитата (Игорь_Vasinsky @ 20.09.2012 - 17:45)
тебе же в предыдущей теме с логарифмами решение дали

А я вот не вкурил, что там происходит. Хотелось бы продолжить обсуждение.

Спустя 13 минут, 22 секунды (20.09.2012 - 21:32) Игорь_Vasinsky написал(а):
да там вообще топик так начинался
Цитата

Необходимо узнать, например сколько раз 15 делиться на 2, ответ будет 5.
biggrin.gif

Спустя 1 час, 1 минута, 8 секунд (20.09.2012 - 22:33) neadekvat написал(а):
Игорь_Vasinsky, да, я прочитал топик и даже отписался, мне кое-что непонятно. Почему логарифм а по основанию n и плюс 1, если должно быть без +1?

Спустя 2 минуты, 49 секунд (20.09.2012 - 22:36) kristall написал(а):
Деление на 2 эквивалентно битовому сдвигу вправо.

$a = $a / 2;
эквивалентно
$a = $a >> 1;

Соответственно делим на 4, 6, на 2*$dn.
>>2
>>3
...
>>$dn

Спустя 2 минуты, 40 секунд (20.09.2012 - 22:39) neadekvat написал(а):
kristall, если мы так сделаем, то получим 1 или 0 (1 - если разделим на результат логарифма, 0 - если на все, что больше), так какой смысл?

Спустя 4 минуты, 26 секунд (20.09.2012 - 22:43) kristall написал(а):
Цитата
Необходимо получить переменную $collBytes, которая равна $count_sings деленное на 2, такое кол-во раз, которое указано в $dn.


$collBytes = $count_sings >> $dn;

Что я делаю неверно?

Спустя 7 минут, 55 секунд (20.09.2012 - 22:51) neadekvat написал(а):
kristall, мы еще не сняли вопрос к автору в формате "шо ты хочешь?"
В целом, я по факту говорю. Если делить на 2 до последнего целого числа, то по-любому получится 1, тут даже считать не надо. Так что я предполагаю, что нужны промежуточные результаты.

Спустя 9 часов, 40 секунд (21.09.2012 - 07:52) Michael написал(а):
Перечитал топик, может там отредактировано было?, но там сейчас просто по формуле задача:
$collBytes = $count_sings / (pow(2, $dn));

Спустя 25 минут, 4 секунды (21.09.2012 - 08:17) sergeiss написал(а):
А тут http://phpforum.ru/index.php?showtopic=66959&hl= я тебе ответ давал - ты не смотрел? Этут тему закрываю, так как это повтор другой темы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.