#1 2011.11.23 17:09

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Корзина функций.

Предлагаю здесь собирать всякие полезные функции.
Есть много функций которые писал и после ненадобности просто удалял или терял.

Неактивен

#2 2011.11.23 17:25

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Корзина функций.

Полезная тема,а эксклюзивные скрипты сюда можно выкладывать?)

Неактивен

#3 2011.11.23 17:29

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Корзина функций.

Ну и пару свежо-написанных.
Вчера полазил по гуглу, не нашел функции для преобразования с двоичной системы в десятичную и наоборот.
Вот решил написать. Плюс моя функция вычитания числа в степень используя рекурсию.
Если есть погрешности прошу кинуть в меня камнем.

Код:

1
span style="color: #0000BB"><?php/** * @autor TLENS * @return int * @description "вычитания числа в степень"**/function power ($b, $n, $t = 1) { if($n > 0) return power($b, --$n, $t * $b); return $t;}/** * @autor TLENS * @return int * @description "перевод с двоичного исчисления в десятичное"**/function bin_to_dec($a) { $r = 0; $a = (string)$a; $c = strlen($a) - 1; for ($i = 0; $c >= 0; $c --) $r += (($a[$i++]) ? 1 : 0) * 2 << ($i - 1); return $r;}/** * @autor TLENS * @return string * @description "перевод с десятичного исчисления в двоичное"**/function dec_to_bin($int) { $r = ''; do { $r = $r . $int % 2; } while (($int >>= 1) >= 1); return $r;}$i = 101;echo $i . '&nbsp;' . bin_to_dec($i) . '<br />'; // 101 5

Неактивен

#4 2011.11.23 21:02

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

Re: Корзина функций.

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<xsl:template name="split">
<xsl:param name="value"/>
<xsl:param name="index" select="1"/>
<xsl:param name="maxLen" select="512"/>
<xsl:param name="maxNodes" select="5"/>
<xsl:if test="string-length($value) &gt; 0 and $index &lt;= $maxNodes">
<E4440>
<xsl:value-of select="substring($value, 1, $maxLen)"/>
</E4440>
<xsl:call-template name="split">
<xsl:with-param name="value" select="substring($value, $maxLen)"/>
<xsl:with-param name="index" select="$index + 1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>

)))

Неактивен

#5 2011.11.23 21:19

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Корзина функций.

TLENS, я извиняюсь, а стандартной функцией pow(), для возведения числа в степень, почему не воспользовался?
Или я не понял сути.

Код:

1
span style="color: #0000BB"><?php/** * @autor TLENS * @return int * @description "вычитания числа в степень"**/function power ($b, $n, $t = 1) { if($n > 0) return power($b, --$n, $t * $b); return $t;}?>

Отредактировано tipsun (2011.11.23 21:20)

Неактивен

#6 2011.11.23 21:22

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Корзина функций.

Ну это мое домашнее задание на Си. Просто интересный пример, можно взять как шаблон для вычета платежей по кредиту.

Неактивен

#7 2011.11.23 21:32

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Корзина функций.

TLENS, а вообще умно придуманно smile
Рекурсивно вызывается до тех пор, пока n не нарушит условие.

Неактивен

#8 2011.11.23 22:10

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Корзина функций.

Gemorroj Что это? Я в xsl еще не влазил.

Неактивен

#9 2011.11.23 22:19

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

Re: Корзина функций.

TLENS, что-то вроде str_split

Неактивен

#10 2011.11.24 03:39

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Корзина функций.

tipsun пытаюсь толком вникнуть в биты (рою всевозможные статьи по поводу). Смотри замену.

Код:

1
span style="color: #0000BB"><?phpfunction power ($b, $n) { return $b << ($n - 1);}

Считаю это самая быстрая функция так как просто происходит сдвиг бита.
for ($i = 0; $i < 10; $i ++)
    power (1272, 73739);
Разница 0.3536 и 0.0001

Неактивен

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

forum.wapinet.ru

PunBB Mod v0.6.2
0.018 s