<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9193&amp;view=findpost&amp;p=90290</guid>
        <pubDate>Sat, 30 Aug 2003 07:21:29 +0000</pubDate>
        <title>Организация кэша</title>
        <link>https://forum.sources.ru/index.php?showtopic=9193&amp;view=findpost&amp;p=90290</link>
        <description><![CDATA[sector: Примерно так и надо делать. ПРИМЕРНО.<br>То есть никто не заставляет сразу заполнять весь массив. При промахе заполняй нужную ячейку вычисленным значением. Ещё можно при промахе проделывать некоторую фиксированную операцию над хэшем и перепроверять ячейку по новому адресу. Сколько раз это делать -- зависит от отношения скоростей вычисления хэша и вычисления собственно функции.<br>Способ эффективнее вряд ли возможен. Можно, конечно, завести массив на 2^34 байт, но сомнительно, что у тебя 16Гб памяти &nbsp;;)<br>Да, и если можно как-то разделить аргументы по предполагаемой частоте использования -- так и вообще замечательно. Но не всегда возможно &nbsp;:(]]></description>
        <author>sector</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9193&amp;view=findpost&amp;p=90289</guid>
        <pubDate>Fri, 29 Aug 2003 23:23:48 +0000</pubDate>
        <title>Организация кэша</title>
        <link>https://forum.sources.ru/index.php?showtopic=9193&amp;view=findpost&amp;p=90289</link>
        <description><![CDATA[Ivan_Govnoff: Проблема вот в чем:<br>Имеется довольно долго вычисляемая функция f(x), x - дворд, функцию эту считать надо очень-очень много раз в секунду, причем довольно часто для одних и тех же значений x, не подскажут ли знающие люди хороший способ организации кэша значений f(x) для ускорения вычислений?<br><br>Имеется следующий алгоритм(прочитал в какой-то доке по архиваторам): сочиняем простую хэш-функцию h(x), возвращающую значение в интервале от 0 до H и массив C[0..H] содержащий в каждом элементе пару (x, y = f(x)) причем h(C[i].x) == i<br><br>Т.е. когда надо посчитать значение f(x) находим элемент C[h(x)] и проверяем, действительно ли C[h(x)].x == x, если да - соответственно берем значение из кэша C[h(x)].y, если нет, имеем типа кэш-промах, считаем f(x) напрямую.<br>Так вот я думаю может получше способы есть, а? Заранее спасибо.]]></description>
        <author>Ivan_Govnoff</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	