<?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=419125&amp;view=findpost&amp;p=3835253</guid>
        <pubDate>Sun, 26 Jul 2020 08:31:59 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3835253</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3835231'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>scrum0fscrums &#064; <time class="tag-quote__quoted-time" datetime="2020-07-26T01:01:08+03:00">25.07.20, 22:01</time></span><div class='quote '>Буду за деньги преобразовывать любой говнокод в эффективные линейные программы.</div></div><br>
За сколько преобразуете венгерский алгоритм для задачи о назначениях?]]></description>
        <author>OpenGL</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3835196</guid>
        <pubDate>Sat, 25 Jul 2020 01:18:59 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3835196</link>
        <description><![CDATA[amk: По поаоду вычисления НОК<br>НОК(a,b)*НОД(a,b) = a*b]]></description>
        <author>amk</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834029</guid>
        <pubDate>Wed, 08 Jul 2020 16:38:11 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834029</link>
        <description><![CDATA[JoeUser: Ну для частного случая да, подойдет.]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834026</guid>
        <pubDate>Wed, 08 Jul 2020 14:41:43 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834026</link>
        <description><![CDATA[OpenGL: Где &quot;там&quot;? Я исхожу из этого:<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833999'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T06:50:44+00:00">08.07.20, 06:50</time></span><div class='quote '>для реализации для x32:<br>
количество чисел в наборе - 1..232<br>
значение числа в наборе - 1..232</div></div><br>
То, что я показал выше, неплохая такая оптимизация, позволяющая не юзать длинную арифметику там, где она нафиг не нужна.]]></description>
        <author>OpenGL</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834025</guid>
        <pubDate>Wed, 08 Jul 2020 14:21:30 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834025</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3834024'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T13:47:42+00:00">08.07.20, 13:47</time></span><div class='quote '>У тебя частный случай - нахождение нод, когда один из операндов вмещается в int.</div></div><br>
Ты не заметил, что там нет int?]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834024</guid>
        <pubDate>Wed, 08 Jul 2020 13:47:42 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834024</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3834022'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T13:07:18+00:00">08.07.20, 13:07</time></span><div class='quote '>BigInteger Nod(BigInteger a, BigInteger b) {<br>
  while (a &#33;= 0 and b &#33;= 0) if (a &gt; b) a %= b; else b %= a;<br>
  return a+b;<br>
}</div></div><br>
У тебя частный случай - нахождение нод, когда один из операндов вмещается в int. Так что быстрее будет так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">int gcd_int(int a, int b)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(b != 0)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int t = a;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;a = b;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;b = t % b;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;return a;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int gcd(BigInteger a, int b)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;// b не должно быть равно 0</div><div class="code_line">&nbsp;&nbsp; &nbsp;return gcd_int(b, a % b);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">BigInteger lmc(BigInteger a, int b)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(b == 0) return a;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return a * (b / gcd(a, b));</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>OpenGL</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834023</guid>
        <pubDate>Wed, 08 Jul 2020 13:22:15 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834023</link>
        <description><![CDATA[Black_Dragon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3834022'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T13:07:18+00:00">08.07.20, 13:07</time></span><div class='quote '>Да, конечно цифры получаются большими.</div></div><br>
Давай что-нибудь практическое придумаем... :whistle:]]></description>
        <author>Black_Dragon</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834022</guid>
        <pubDate>Wed, 08 Jul 2020 13:07:18 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834022</link>
        <description><![CDATA[JoeUser: Ну а я перевел все на НОДы/НОКи, получилось для первого набора вот так:<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">#include &#60;vector&#62;</div><div class="code_line">#include &#60;chrono&#62;</div><div class="code_line">#include &quot;BigIntegerLibrary.hh&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">std::vector&#60;BigInteger&#62; R;</div><div class="code_line">&nbsp;</div><div class="code_line">BigInteger Nod(BigInteger a, BigInteger b) {</div><div class="code_line">&nbsp;&nbsp;while (a != 0 and b != 0) if (a &#62; b) a %= b; else b %= a;</div><div class="code_line">&nbsp;&nbsp;return a+b;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">BigInteger Nok(BigInteger a, BigInteger b) {</div><div class="code_line">&nbsp;&nbsp;return a/Nod(a,b)*b;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">void YouTest(std::vector&#60;int&#62; &amp;V) {</div><div class="code_line">&nbsp;&nbsp;BigInteger M;</div><div class="code_line">&nbsp;&nbsp;for(size_t i=0; i+1&#60;V.size(); i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (i==0) M = Nok(V[0],V[1]); else M = Nok(M,V[i+1]);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;R.push_back(M);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void Func() {</div><div class="code_line">&nbsp;&nbsp;std::vector&#60;std::vector&#60;int&#62;&#62; Arr = {</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x0004,0x000d,0x0017,0x001b,0x001d,0x0021,0x0022,0x01d2,0x01d6},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x000b,0x000c,0x000d,0x000e,0x0012,0x0019,0x001d,0x01bd,0x01c6},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x000d,0x000e,0x0015,0x0023,0x0028,0x002c,0x002e,0x01d2,0x01d5},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0006,0x000b,0x0012,0x0015,0x0019,0x001c,0x001f,0x0027,0x01b2,0x01c1},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x0009,0x000d,0x000e,0x0010,0x0012,0x0013,0x0015,0x01d5,0x01d6},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0007,0x0009,0x000f,0x0018,0x001a,0x001c,0x001e,0x0028,0x01ca,0x01cb},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0004,0x0008,0x0011,0x0014,0x0018,0x001b,0x001e,0x0028,0x01b9,0x01ba},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0008,0x0011,0x0024,0x0027,0x0031,0x0037,0x0038,0x003c,0x01b5,0x01bd},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x0004,0x0006,0x000a,0x000b,0x0010,0x0013,0x0019,0x01bf,0x01c1},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0005,0x0006,0x0009,0x000c,0x001f,0x0027,0x0028,0x002f,0x01c1,0x01cd},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x0004,0x0006,0x0007,0x0016,0x0019,0x001c,0x001d,0x01db,0x01dc},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0009,0x000c,0x0012,0x0013,0x0014,0x0018,0x001f,0x01b9,0x01bb},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x000d,0x0010,0x0017,0x001e,0x001f,0x0021,0x0023,0x002d,0x01c3,0x01c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0005,0x0007,0x000a,0x000e,0x0010,0x0014,0x0015,0x01c6,0x01c7},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x0002,0x0009,0x000d,0x0013,0x0018,0x001a,0x0024,0x01cd,0x01cf},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0008,0x000b,0x000f,0x0014,0x0016,0x001c,0x0021,0x0029,0x01c5,0x01c8},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0007,0x000b,0x000e,0x0010,0x0012,0x0016,0x0025,0x002e,0x01d8,0x01dd},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0007,0x0008,0x000f,0x0011,0x0022,0x0028,0x002b,0x0036,0x01c1,0x01c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x0019,0x0021,0x0022,0x0029,0x0031,0x0034,0x0036,0x01bf,0x01c2},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0004,0x0006,0x000d,0x0010,0x0011,0x0012,0x0015,0x01cb,0x01ce},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x0007,0x000d,0x0012,0x0022,0x0024,0x002a,0x002f,0x01cf,0x01d0},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x0002,0x0008,0x0009,0x000b,0x000c,0x000d,0x0010,0x01c1,0x01c8},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x000b,0x000e,0x000f,0x0015,0x001b,0x001d,0x0021,0x0023,0x019c,0x019f},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0004,0x000f,0x0012,0x0015,0x0016,0x001f,0x0020,0x01b6,0x01c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0006,0x0008,0x000b,0x0019,0x0032,0x0037,0x003a,0x01c8,0x01c9},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x0005,0x0008,0x0009,0x000d,0x0011,0x0012,0x0013,0x01d5,0x01db},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x0003,0x0004,0x0005,0x000b,0x0012,0x0014,0x001a,0x01c3,0x01c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x000b,0x0010,0x001d,0x0021,0x0028,0x002a,0x0036,0x01c1,0x01c2},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0008,0x000b,0x000e,0x000f,0x0013,0x001f,0x0021,0x01d9,0x01dc},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0004,0x0009,0x0011,0x001c,0x001d,0x0027,0x0029,0x0033,0x01cc,0x01ce},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x000c,0x000d,0x0016,0x0017,0x001a,0x001b,0x0020,0x01be,0x01c7},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0008,0x000c,0x000e,0x0010,0x0017,0x0019,0x001c,0x001d,0x01a2,0x01b0}</div><div class="code_line">&nbsp;&nbsp;};</div><div class="code_line">&nbsp;&nbsp;for (auto &amp;&amp;i:Arr) YouTest(i);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int main() {</div><div class="code_line">&nbsp;&nbsp;R.reserve(32*1024);</div><div class="code_line">&nbsp;&nbsp;auto start = std::chrono::high_resolution_clock::now();</div><div class="code_line">&nbsp;&nbsp;for(int i=0; i&#60;1024; i++) Func();</div><div class="code_line">&nbsp;&nbsp;auto stop = std::chrono::high_resolution_clock::now();</div><div class="code_line">&nbsp;&nbsp;std::cout &#60;&#60; &quot;Elapsed: &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;&#60; std::chrono::duration_cast&#60;std::chrono::milliseconds&#62;(stop - start).count()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;&#60; &quot; ms&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp;for(int i=0; i&#60;32; i++) std::cout &#60;&#60; R[i] &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp;std::cout &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div></div></div><br>
вывод:<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Elapsed: 1378 ms</div><div class="code_line">9588669098580</div><div class="code_line">527825598300</div><div class="code_line">43129446360</div><div class="code_line">12539627100</div><div class="code_line">3920127120</div><div class="code_line">382604040</div><div class="code_line">11695320</div><div class="code_line">1667842296120</div><div class="code_line">16778770800</div><div class="code_line">1411408313640</div><div class="code_line">216377700</div><div class="code_line">4602752280</div><div class="code_line">2380775276880</div><div class="code_line">4957680</div><div class="code_line">3795870312</div><div class="code_line">1086891960</div><div class="code_line">29506021776</div><div class="code_line">280390927320</div><div class="code_line">1964784521700</div><div class="code_line">7351344</div><div class="code_line">140581978992</div><div class="code_line">175670352</div><div class="code_line">10308555180</div><div class="code_line">28354122720</div><div class="code_line">1661926200</div><div class="code_line">3544795800</div><div class="code_line">119253420</div><div class="code_line">10828263600</div><div class="code_line">3978365160</div><div class="code_line">83765501820</div><div class="code_line">22179437280</div><div class="code_line">10538866800</div></ol></div></div></div></div></div></div><br>
А для второго набора с большими числами изначально<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">std::vector&#60;std::vector&#60;int&#62;&#62; Arr = {</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7cd45dd6,0x7cfb2c2f,0x7d17697c,0x7d1c4aed,0x7d1e29e1,0x7d5766ed,0x7dee7bbd,0x7dff2159,0x7e007b27,0x7e045db9},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d710637,0x7d720e66,0x7d8a5328,0x7dae46b1,0x7de0429c,0x7df70761,0x7e072d36,0x7e146be0,0x7e320e0b,0x7e51405c},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d59173e,0x7d5b6f43,0x7d5f73af,0x7d651a54,0x7d7555e4,0x7d7f206d,0x7dab0f4f,0x7db11276,0x7dbd4b37,0x7ddc79ad},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d0125e7,0x7d191867,0x7d1d42f9,0x7d226efd,0x7d2b223a,0x7d357524,0x7d5c17e8,0x7d8e5293,0x7d9e6e53,0x7ddd7053},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d6550cf,0x7dd00b81,0x7de6495f,0x7df4279c,0x7e042f64,0x7e461e67,0x7e482342,0x7e7e3c7d,0x7e866b20,0x7e9c1d10},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7e113111,0x7e1f2a68,0x7e252112,0x7e2902f2,0x7e5f78a4,0x7e784d46,0x7ebe3d96,0x7ec82d4e,0x7ecb53c4,0x7edf4c73},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d26032a,0x7d2b20c6,0x7d3a5c2e,0x7d5354ee,0x7d882b72,0x7d921cc1,0x7d9b4027,0x7e032f12,0x7e6c09d3,0x7e7d7ed5},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7bf657d5,0x7c014a70,0x7c4506a2,0x7cd329f0,0x7ce56aa7,0x7ce81d34,0x7d1716f4,0x7d194dc6,0x7d23131a,0x7d5e3664},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d496f5d,0x7d4c0f41,0x7d606b1a,0x7d6461d0,0x7d6c6be0,0x7d717a80,0x7e096d25,0x7e106047,0x7e780539,0x7e937878},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d24062e,0x7d2c6b82,0x7d827250,0x7da12d0c,0x7dc12285,0x7dc63b60,0x7dc822c7,0x7dd41f99,0x7e0f3c28,0x7e456330},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7c6f6e37,0x7c9f7469,0x7ca94be5,0x7ccb31bb,0x7ce2198d,0x7ceb40b5,0x7d0267e9,0x7d524e46,0x7d6f0ba7,0x7d7f0a37},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d2c3397,0x7d2c38bd,0x7dd62c04,0x7dd67b90,0x7df64421,0x7e0c6b08,0x7e227887,0x7e3e7bed,0x7e410fc6,0x7e477b3c},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7cc30907,0x7cd60b0b,0x7cef020a,0x7d03001c,0x7d2c64a3,0x7d350179,0x7d4b41e5,0x7d856488,0x7d9c0c74,0x7dd54e69},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7c1f748c,0x7c21175f,0x7c6238fb,0x7c82171b,0x7cad08ed,0x7cb24149,0x7ce94757,0x7d036ae4,0x7d214b58,0x7d6f0a3d},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d416876,0x7d690162,0x7d7015c9,0x7d88180b,0x7dc04b25,0x7dd363fa,0x7df9418e,0x7e094c2a,0x7e26677c,0x7e55473c},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d345112,0x7d397f62,0x7d537af7,0x7d58312a,0x7d6727d4,0x7d9e59aa,0x7dcd116d,0x7dcf192c,0x7dd95b41,0x7df76402},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d5c2fb5,0x7d863062,0x7d995475,0x7da67b0b,0x7dcf14ae,0x7df00bfb,0x7e042300,0x7e2b1ab9,0x7e477f1e,0x7e725a93},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7dfc4f7f,0x7e037475,0x7e1c3261,0x7e2f60e1,0x7e3d3d85,0x7e421fcc,0x7e6540de,0x7e67531a,0x7e7d6cc7,0x7e7f0789},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d057a8c,0x7d07099d,0x7d14041a,0x7d207534,0x7d2b1875,0x7d4e32c8,0x7d5112ea,0x7d64127d,0x7dc1228e,0x7dd0732e},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d664f54,0x7db1778d,0x7dda61a7,0x7de51343,0x7df63b84,0x7e0605db,0x7e081bda,0x7e184611,0x7e624928,0x7e640832},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7e7842b9,0x7e9f4ad6,0x7ea64ecc,0x7eb7125d,0x7ebc47b1,0x7ecc3d4a,0x7ed53815,0x7edc2062,0x7edc276d,0x7eee4861},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d014c60,0x7d0b0920,0x7d3554bd,0x7d627ca5,0x7d6415ac,0x7d647a60,0x7d9f722a,0x7dfc3598,0x7e213d60,0x7e3a2b78},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7cd92864,0x7d33706f,0x7d8e2363,0x7dc10eb5,0x7dd55002,0x7e2c7cd1,0x7e447327,0x7e457cbe,0x7e6d6f27,0x7e73533e},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7cf01896,0x7d172b41,0x7d5a79b3,0x7d89255c,0x7deb4f3f,0x7df974e4,0x7dff01cd,0x7e5c1595,0x7e7279d5,0x7e7c2d05},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7c926328,0x7ca004e9,0x7cad57ec,0x7ce9775f,0x7cf7135d,0x7d07453c,0x7d084c8b,0x7d0f6b4c,0x7d454c67,0x7d4f3a45},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7e2e57f8,0x7e3f6b7b,0x7e5370c3,0x7e764d44,0x7e8a5f0c,0x7e8c3417,0x7ea060b4,0x7eab0a71,0x7ec4369d,0x7ecd2d1a},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7cad0fb7,0x7cc477d0,0x7cc74a4c,0x7ce71c30,0x7d20003c,0x7d2b1b78,0x7d735951,0x7d9741d6,0x7da77b9f,0x7dc90f2e},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7c9d3798,0x7c9e535f,0x7ca844b9,0x7cad10b6,0x7cb56f5a,0x7d0209d0,0x7d1b40c7,0x7d1b617b,0x7d710abf,0x7d722c3e},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d847bb6,0x7de5361b,0x7e1e6471,0x7e223fd8,0x7e340c2b,0x7e5c4c1a,0x7e7445c6,0x7e760312,0x7e7f2cce,0x7e894d2e},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d493a94,0x7d4f528a,0x7d7f3e2f,0x7d875f25,0x7dbd50a8,0x7de851c6,0x7e335209,0x7e385ccc,0x7e482cc0,0x7e48798a},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7c7c1b24,0x7cf13502,0x7d534047,0x7d584c31,0x7d5b53c6,0x7d6b5ee1,0x7daa4f8f,0x7de2717a,0x7dea4786,0x7dff7af7},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x7d1871a4,0x7d2018bd,0x7d2815cd,0x7d774b76,0x7d841cd9,0x7d895b6d,0x7dd76085,0x7df34d8b,0x7dfe45d9,0x7dfe4d99}</div><div class="code_line">&nbsp;&nbsp;};</div></ol></div></div></div></div></div></div><br>
Получился вот такой результат:<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Elapsed: 7813 ms</div><div class="code_line">8365952198818774082761182752826492709705353472768857783518932270943615384126743225484220</div><div class="code_line">6320784966646816085566075372050288774163083533310223412067630401536400391507483003360</div><div class="code_line">372965641708056343100671012886426814882051314151484963188075362084382390495188874300</div><div class="code_line">152046970479457502245073922096275168909385354426662178417039241800071420492281361373952680</div><div class="code_line">126527352355773471721414839256668398843177001156445305761310662173112181954910210287456</div><div class="code_line">103173769752087961922560643530764147207112796208249628740374208211004747481026394897960</div><div class="code_line">97580947841540309585744501944268707806192013625089179078240251275199492717354127494050410</div><div class="code_line">658424750501043684868086106460183123310519659236268731747507021965953665328766603600</div><div class="code_line">219526365178587019702964440217431588833431189719850964824263190628965911597070052480</div><div class="code_line">5896282002515888839350031734886929524119790897492373106113264797010617740512533627939040</div><div class="code_line">12147216871546784182869018501023272553426670323282399316976611747028891817282129272967380170</div><div class="code_line">106296206725973511003071955573025894114919643976191842733704315889020489983063580280240</div><div class="code_line">5167872557586608191948556334010077457643088059745349539962505228671962363637573060206920</div><div class="code_line">446224936219092299774695846181984522639964926306878449710518868824542371977224101649099720</div><div class="code_line">440123142671612922643968887481816571303358017322824654791040478709721423143801134896260</div><div class="code_line">9119713839306100061487001655155324259599019842429627086510112885658955607460594927316</div><div class="code_line">290517572508361811488661447420828423401260402380137586777930494515519844500267299116800</div><div class="code_line">50520924027731474619464147641100856895295982212232157980554181149167031553624724765871315172</div><div class="code_line">4328567320666505347271561328359181982055970787586959933970942463427025802943796550596760</div><div class="code_line">12952281244141561307406306392058785642677315080032779441231055316800005185073173244452600</div><div class="code_line">276394662419827287242992857333387035616294952602445960883488304840638048759071430885333500</div><div class="code_line">696504066204039086504093430337009155728188927832176955004778788831336847216836079200</div><div class="code_line">6615279929305400025297732430650553553078662258832596392260358097614118819200154375784100</div><div class="code_line">43878260208418628823156222649970651587385088857268281774469306331890408122270063159410006740</div><div class="code_line">218787285695220121127373807803078072214370551512233159301622720209468796642905853420158760</div><div class="code_line">51055566993622631458771818230502965458972847923195223488796602092223024703817681371880</div><div class="code_line">20141264573928462505142539000000831107750484193507850672036969242867600868875150143440</div><div class="code_line">156834931714649030815630944760386489262784627499294812061727382540624786877284828530800</div><div class="code_line">69087642384679507706012918384628597974549327733541898202352422921110101087636970883000</div><div class="code_line">2694163307667579202220636480509744380958601600596803923780055098580309018684009954974016</div><div class="code_line">13749346721233841734887885146491926944389137693673390982571052279064803140884657724910260</div><div class="code_line">148293055169307720833926985648257182289595114441389459016963339316768729714260354703849300</div></ol></div></div></div></div></div></div><br>
Да, конечно цифры получаются большими.]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834020</guid>
        <pubDate>Wed, 08 Jul 2020 12:06:37 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834020</link>
        <description><![CDATA[swf: Сделала свой алгоритм  :D <br>
<br>
Вначале нумеруем простые числа (помещаем простые числа в массив)/<br>
p -&gt; NUM[p]<br>
Затем создаём массив НОК точно такой же длины, в к-м будем хранить кратности (степени) простых чисел, входящих в разложение.<br>
Первоначально там нули.<br>
<br>
Читаем первое число.<br>
1. Проверяем, делится ли оно на 4. <br>
Если да, то уменьшаем число N:= N div 4; НОК[NUM[2]]:= НОК[NUM[2]]+2 и повторяем этот шаг.<br>
Если нет, то проверяем делимость на 2.<br>
Если делится на 2, то N:= N div 2; НОК[NUM[2]]:= НОК[NUM[2]]+2<br>
Переход на шаг 2.<br>
<br>
2. Проверяем, делится ли число на 9.<br>
Аналогично шагу 1.<br>
...<br>
Перенесли первое число в НОК.<br>
Читаем второе число.<br>
Аналогично. Но если степень простого числа p оказывается больше, чем записано в НОК[NUM[p]], то переписываем НОК[NUM[p]]]]></description>
        <author>swf</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834019</guid>
        <pubDate>Wed, 08 Jul 2020 11:39:02 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834019</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3834015'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>m&#045;ch &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T11:02:02+00:00">08.07.20, 11:02</time></span><div class='quote '>Для указанных чисел НОК значительно меньше, должно получится:</div></div><br>
Все верно - у меня косяк&#33;  :&#39;(]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834018</guid>
        <pubDate>Wed, 08 Jul 2020 11:19:40 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834018</link>
        <description><![CDATA[Black_Dragon: Результат.<br>
Количество прогонов 1 048 576<br>
Elapsed: 10901 ms<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body">Nok 0 = 9588669098580<br>
Nok 1 = 527825598300<br>
Nok 2 = 43129446360<br>
Nok 3 = 12539627100<br>
Nok 4 = 3920127120<br>
Nok 5 = 382604040<br>
Nok 6 = 11695320<br>
Nok 7 = 1667842296120<br>
Nok 8 = 16778770800<br>
Nok 9 = 1411408313640<br>
Nok 10 = 216377700<br>
Nok 11 = 4602752280<br>
Nok 12 = 2380775276880<br>
Nok 13 = 4957680<br>
Nok 14 = 3795870312<br>
Nok 15 = 1086891960<br>
Nok 16 = 29506021776<br>
Nok 17 = 280390927320<br>
Nok 18 = 1964784521700<br>
Nok 19 = 7351344<br>
Nok 20 = 140581978992<br>
Nok 21 = 175670352<br>
Nok 22 = 10308555180<br>
Nok 23 = 28354122720<br>
Nok 24 = 1661926200<br>
Nok 25 = 3544795800<br>
Nok 26 = 119253420<br>
Nok 27 = 10828263600<br>
Nok 28 = 3978365160<br>
Nok 29 = 83765501820<br>
Nok 30 = 22179437280<br>
Nok 31 = 10538866800</div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-07-08T11:24:35+00:00">08.07.20, 11:24</time></span></span><br>
+<br>
OpenMP по циклу прогона повторов (i7-4770 4C/8T).<br>
Elapsed: 1711 ms]]></description>
        <author>Black_Dragon</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834016</guid>
        <pubDate>Wed, 08 Jul 2020 11:06:14 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834016</link>
        <description><![CDATA[OpenGL: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833968'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-07T19:00:51+00:00">07.07.20, 19:00</time></span><div class='quote '>Пока остается вопрос - как уменьшить количество вычислений для нахождения этого числа.</div></div><br>
Смысла большого нет. НОК(a, b) = a / НОД(a, b) * b, а НОД считается очень быстро (за логарифм, и это в самом неудачном случае). Если это окажется слишком медленным, то только разложением на простые множители делать. И не забыть про переполнение, которое в твоей задаче возникнет как нефиг делать. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-07-08T11:07:43+00:00">08.07.20, 11:07</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3834016'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T11:06:14+00:00">08.07.20, 11:06</time></span><div class='quote '>а НОД считается очень быстро (за логарифм, и это в самом неудачном случае)</div></div><br>
Да, делается это алгоритмом Евклида.]]></description>
        <author>OpenGL</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834015</guid>
        <pubDate>Wed, 08 Jul 2020 11:02:02 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834015</link>
        <description><![CDATA[m-ch: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3834010'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T10:45:47+00:00">08.07.20, 10:45</time></span><div class='quote '>На моем компе это получилось вот так:</div></div><br>
Для указанных чисел НОК значительно меньше, должно получится:<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body">9588669098580<br>
527825598300<br>
43129446360<br>
12539627100<br>
3920127120<br>
382604040<br>
11695320<br>
1667842296120<br>
16778770800<br>
1411408313640<br>
216377700<br>
4602752280<br>
2380775276880<br>
4957680<br>
3795870312<br>
1086891960<br>
29506021776<br>
280390927320<br>
1964784521700<br>
7351344<br>
140581978992<br>
175670352<br>
10308555180<br>
28354122720<br>
1661926200<br>
3544795800<br>
119253420<br>
10828263600<br>
3978365160<br>
83765501820<br>
22179437280<br>
10538866800</div></div>]]></description>
        <author>m-ch</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834014</guid>
        <pubDate>Wed, 08 Jul 2020 11:00:01 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834014</link>
        <description><![CDATA[JoeUser: Поднял &quot;лимиты&quot;  :lol: - в наборе заменил 0x00 на 0xff ну и занизил количество тестов на 1024<br>
<br>
<strong class='tag-b'>Новый набор</strong><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">std::vector&#60;std::vector&#60;int&#62;&#62; Arr = {</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff03,0xff04,0xff0d,0xff17,0xff1b,0xff1d,0xff21,0xff22,0xf1d2,0xf1d6},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff01,0xff0b,0xff0c,0xff0d,0xff0e,0xff12,0xff19,0xff1d,0xf1bd,0xf1c6},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff01,0xff0d,0xff0e,0xff15,0xff23,0xff28,0xff2c,0xff2e,0xf1d2,0xf1d5},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff06,0xff0b,0xff12,0xff15,0xff19,0xff1c,0xff1f,0xff27,0xf1b2,0xf1c1},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff03,0xff09,0xff0d,0xff0e,0xff10,0xff12,0xff13,0xff15,0xf1d5,0xf1d6},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff07,0xff09,0xff0f,0xff18,0xff1a,0xff1c,0xff1e,0xff28,0xf1ca,0xf1cb},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff04,0xff08,0xff11,0xff14,0xff18,0xff1b,0xff1e,0xff28,0xf1b9,0xf1ba},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff08,0xff11,0xff24,0xff27,0xff31,0xff37,0xff38,0xff3c,0xf1b5,0xf1bd},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff03,0xff04,0xff06,0xff0a,0xff0b,0xff10,0xff13,0xff19,0xf1bf,0xf1c1},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff05,0xff06,0xff09,0xff0c,0xff1f,0xff27,0xff28,0xff2f,0xf1c1,0xf1cd},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff03,0xff04,0xff06,0xff07,0xff16,0xff19,0xff1c,0xff1d,0xf1db,0xf1dc},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff02,0xff09,0xff0c,0xff12,0xff13,0xff14,0xff18,0xff1f,0xf1b9,0xf1bb},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff0d,0xff10,0xff17,0xff1e,0xff1f,0xff21,0xff23,0xff2d,0xf1c3,0xf1c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff02,0xff05,0xff07,0xff0a,0xff0e,0xff10,0xff14,0xff15,0xf1c6,0xf1c7},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff01,0xff02,0xff09,0xff0d,0xff13,0xff18,0xff1a,0xff24,0xf1cd,0xf1cf},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff08,0xff0b,0xff0f,0xff14,0xff16,0xff1c,0xff21,0xff29,0xf1c5,0xf1c8},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff07,0xff0b,0xff0e,0xff10,0xff12,0xff16,0xff25,0xff2e,0xf1d8,0xf1dd},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff07,0xff08,0xff0f,0xff11,0xff22,0xff28,0xff2b,0xff36,0xf1c1,0xf1c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff03,0xff19,0xff21,0xff22,0xff29,0xff31,0xff34,0xff36,0xf1bf,0xf1c2},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff02,0xff04,0xff06,0xff0d,0xff10,0xff11,0xff12,0xff15,0xf1cb,0xf1ce},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff01,0xff07,0xff0d,0xff12,0xff22,0xff24,0xff2a,0xff2f,0xf1cf,0xf1d0},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff01,0xff02,0xff08,0xff09,0xff0b,0xff0c,0xff0d,0xff10,0xf1c1,0xf1c8},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff0b,0xff0e,0xff0f,0xff15,0xff1b,0xff1d,0xff21,0xff23,0xf19c,0xf19f},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff02,0xff04,0xff0f,0xff12,0xff15,0xff16,0xff1f,0xff20,0xf1b6,0xf1c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff02,0xff06,0xff08,0xff0b,0xff19,0xff32,0xff37,0xff3a,0xf1c8,0xf1c9},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff01,0xff05,0xff08,0xff09,0xff0d,0xff11,0xff12,0xff13,0xf1d5,0xf1db},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff01,0xff03,0xff04,0xff05,0xff0b,0xff12,0xff14,0xff1a,0xf1c3,0xf1c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff01,0xff0b,0xff10,0xff1d,0xff21,0xff28,0xff2a,0xff36,0xf1c1,0xf1c2},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff02,0xff08,0xff0b,0xff0e,0xff0f,0xff13,0xff1f,0xff21,0xf1d9,0xf1dc},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff04,0xff09,0xff11,0xff1c,0xff1d,0xff27,0xff29,0xff33,0xf1cc,0xf1ce},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff03,0xff0c,0xff0d,0xff16,0xff17,0xff1a,0xff1b,0xff20,0xf1be,0xf1c7},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0xff08,0xff0c,0xff0e,0xff10,0xff17,0xff19,0xff1c,0xff1d,0xf1a2,0xf1b0}</div><div class="code_line">&nbsp;&nbsp;};</div></ol></div></div></div></div></div></div><br>
<strong class='tag-b'>Новый результат</strong><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Elapsed: 441 ms</div><div class="code_line">1267181565169635425462863626561526344973096267680</div><div class="code_line">1265590721868154745738295203429428311872292813600</div><div class="code_line">1268092707958795420632098493907650308667795513600</div><div class="code_line">1266349051990390548480339990387472650745527926880</div><div class="code_line">1266214933755942035226746963525434649171259169920</div><div class="code_line">1267044933820491982921741146506920591675277568000</div><div class="code_line">1266174529475152210573573826827313055198474240000</div><div class="code_line">1269065168672279046348206506985745801150907008000</div><div class="code_line">1264967440304829035101760176767215706006657964800</div><div class="code_line">1267095474333011259746076094424917508966100523200</div><div class="code_line">1266673650925208243619540344921441031968007955200</div><div class="code_line">1265516555345870866142337767256950747693612275200</div><div class="code_line">1267670400889602029097375441972460375582659120000</div><div class="code_line">1265252559262830116127528091951631771778153600000</div><div class="code_line">1266237671401813706617080051969013882214634805632</div><div class="code_line">1266861780356304491009262066714412626559487232000</div><div class="code_line">1267544698108113485608581332247488057193474484224</div><div class="code_line">1267473951388862396897399764122010398600308659200</div><div class="code_line">1268809442232034164457312628368527394478455624800</div><div class="code_line">1265536637971779144334666224152595250187508759552</div><div class="code_line">1267618222216795097900633967552670043612397221376</div><div class="code_line">1264725204774598971749322444468379305150606974976</div><div class="code_line">1265319624029702628095242472125781110471552983000</div><div class="code_line">1265833045511143680440607015689548306199703429120</div><div class="code_line">1267661221289163842304514694545742008902136704000</div><div class="code_line">1265871193008340467265414534585362453427564376400</div><div class="code_line">1264994241649546059982131267989135324163440736000</div><div class="code_line">1267588260553839183231644888365738255825843123200</div><div class="code_line">1266807347805406433602161868733263696054245809280</div><div class="code_line">1267904103159507471093606398113129732929541564800</div><div class="code_line">1266310173940555867207588984770344723619411901440</div><div class="code_line">1265208797332832056986562970768988271418020331520</div></ol></div></div></div></div></div></div><br>
Дааа ... числа хорошо растут&#33; :-?]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834012</guid>
        <pubDate>Wed, 08 Jul 2020 10:58:18 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834012</link>
        <description><![CDATA[Black_Dragon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3834010'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T10:45:47+00:00">08.07.20, 10:45</time></span><div class='quote '>Не мы поборемся</div></div><br>
Ни как...<br>
2<sup class='tag-sup'>16</sup> * 2<sup class='tag-sup'>16</sup> = 2<sup class='tag-sup'>32</sup><br>
Т.е. диапазон значений надо уменьшать.<br>
Тогда встает вопрос размера данных, либо тоже уменьшать, либо считать, что в данных есть дубликаты и мы принципиально их не удаляем, а используем (для увеличение нагрузки и размера массива)]]></description>
        <author>Black_Dragon</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834011</guid>
        <pubDate>Wed, 08 Jul 2020 10:51:29 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834011</link>
        <description><![CDATA[m-ch: Реализация на VBA:<br>
Вычисление НОК на базе НОД<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Sub main()</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim arr, x, myLCD As Double</div><div class="code_line">&nbsp;&nbsp; &nbsp;arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) &#39;массив значений</div><div class="code_line">&nbsp;&nbsp; &nbsp;myLCD = 1</div><div class="code_line">&nbsp;&nbsp; &nbsp;For Each x In arr</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;myLCD = myLCD * x / myGCD(myLCD, x)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp;Debug.Print myLCD &#39;наименьшее общее кратное</div><div class="code_line">End Sub</div><div class="code_line">&nbsp;</div><div class="code_line">Sub main2()</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim arr, x, myLCD As Double</div><div class="code_line">&nbsp;&nbsp; &nbsp;arr = Array(2, 3, 17, 4, 3, 3)</div><div class="code_line">&nbsp;&nbsp; &nbsp;myLCD = 1</div><div class="code_line">&nbsp;&nbsp; &nbsp;For Each x In arr</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;myLCD = myLCD * x / myGCD(myLCD, x)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp;Debug.Print myLCD &#39;наименьшее общее кратное</div><div class="code_line">End Sub</div><div class="code_line">&nbsp;</div><div class="code_line">Sub main3()</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim arr, x, myLCD As Double</div><div class="code_line">&nbsp;&nbsp; &nbsp;arr = Array(17, 19, 23, 29, 31, 37, 41, 43, 47, 53)</div><div class="code_line">&nbsp;&nbsp; &nbsp;myLCD = 1</div><div class="code_line">&nbsp;&nbsp; &nbsp;For Each x In arr</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;myLCD = myLCD * x / myGCD(myLCD, x)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp;Debug.Print myLCD &#39;наименьшее общее кратное</div><div class="code_line">End Sub</div><div class="code_line">&nbsp;</div><div class="code_line">Function myGCD(ByVal a As Double, ByVal b As Double) As Double &#39;функция расчета наибольшего общего делителя</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim t As Double</div><div class="code_line">&nbsp;&nbsp; &nbsp;If a &#60; b Then t = a: a = b: b = t</div><div class="code_line">&nbsp;&nbsp; &nbsp;While b</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;t = b</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;b = myMOD(a, b)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;a = t</div><div class="code_line">&nbsp;&nbsp; &nbsp;Wend</div><div class="code_line">&nbsp;&nbsp; &nbsp;myGCD = a</div><div class="code_line">End Function</div><div class="code_line">&nbsp;</div><div class="code_line">Function myMOD(a As Double, b As Double) As Double &#39;остаток от деления для чисел типа Double</div><div class="code_line">&nbsp;&nbsp; &nbsp;myMOD = a - Fix(a / b) * b</div><div class="code_line">End Function</div></ol></div></div></div></div><br>
Результат для примеров<br>
27720 <br>
204 <br>
1,08522006251049E+15 <br>
Работает с типом данных Double, что бы не было переполнения (но для больших чисел может быть ошибка округления)]]></description>
        <author>m-ch</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834010</guid>
        <pubDate>Wed, 08 Jul 2020 10:45:47 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834010</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3834007'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Black_Dragon &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T08:54:23+00:00">08.07.20, 08:54</time></span><div class='quote '>Надо занижать лимиты....</div></div><br>
Не, мы поборемся :lol: И вот что получилось ...<br>
<br>
Сперва я сделал тестовый массив - 32 набора, в каждом по 10 случайных чисел в диапазоне 1..512<br>
<br>
<strong class='tag-b'>Программа генерации наборов</strong><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;algorithm&#62;</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">#include &#60;iomanip&#62;</div><div class="code_line">#include &#60;vector&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">int main() {</div><div class="code_line">&nbsp;&nbsp;std::vector&#60;std::vector&#60;int&#62;&#62; A;</div><div class="code_line">&nbsp;&nbsp;std::srand(43453524);</div><div class="code_line">&nbsp;&nbsp;A.reserve(32);</div><div class="code_line">&nbsp;&nbsp;for (int i=0; i&#60;32; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;A.push_back(std::vector&#60;int&#62;());</div><div class="code_line">&nbsp;&nbsp; &nbsp;A[i].reserve(1024);</div><div class="code_line">&nbsp;&nbsp; &nbsp;for (int j=0; j&#60;126; j++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;A[i].push_back(std::rand() % 512+1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::sort(A[i].begin(),A[i].end());</div><div class="code_line">&nbsp;&nbsp; &nbsp;A[i].erase(std::unique(A[i].begin(), A[i].end()), A[i].end());</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (A[i].size()&#62;10) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;A[i].erase(A[i].begin()+8,A[i].end()-14);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;{&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for(int a=0; a&#60;10; a++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;0x&quot; &#60;&#60; std::setfill(&#39;0&#39;) &#60;&#60; std::setw(4) &#60;&#60; std::right &#60;&#60; std::hex &#60;&#60; A[i][a];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (a&#60;9) std::cout &#60;&#60; &quot;,&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;}&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if (i&#60;31) std::cout &#60;&#60; &quot;,&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;std::cout &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp;} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Беда!&quot; &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;return 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><br>
</div></div><br>
<strong class='tag-b'>Получившийся набор</strong><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">{0x0003,0x0004,0x000d,0x0017,0x001b,0x001d,0x0021,0x0022,0x01d2,0x01d6},</div><div class="code_line">{0x0001,0x000b,0x000c,0x000d,0x000e,0x0012,0x0019,0x001d,0x01bd,0x01c6},</div><div class="code_line">{0x0001,0x000d,0x000e,0x0015,0x0023,0x0028,0x002c,0x002e,0x01d2,0x01d5},</div><div class="code_line">{0x0006,0x000b,0x0012,0x0015,0x0019,0x001c,0x001f,0x0027,0x01b2,0x01c1},</div><div class="code_line">{0x0003,0x0009,0x000d,0x000e,0x0010,0x0012,0x0013,0x0015,0x01d5,0x01d6},</div><div class="code_line">{0x0007,0x0009,0x000f,0x0018,0x001a,0x001c,0x001e,0x0028,0x01ca,0x01cb},</div><div class="code_line">{0x0004,0x0008,0x0011,0x0014,0x0018,0x001b,0x001e,0x0028,0x01b9,0x01ba},</div><div class="code_line">{0x0008,0x0011,0x0024,0x0027,0x0031,0x0037,0x0038,0x003c,0x01b5,0x01bd},</div><div class="code_line">{0x0003,0x0004,0x0006,0x000a,0x000b,0x0010,0x0013,0x0019,0x01bf,0x01c1},</div><div class="code_line">{0x0005,0x0006,0x0009,0x000c,0x001f,0x0027,0x0028,0x002f,0x01c1,0x01cd},</div><div class="code_line">{0x0003,0x0004,0x0006,0x0007,0x0016,0x0019,0x001c,0x001d,0x01db,0x01dc},</div><div class="code_line">{0x0002,0x0009,0x000c,0x0012,0x0013,0x0014,0x0018,0x001f,0x01b9,0x01bb},</div><div class="code_line">{0x000d,0x0010,0x0017,0x001e,0x001f,0x0021,0x0023,0x002d,0x01c3,0x01c4},</div><div class="code_line">{0x0002,0x0005,0x0007,0x000a,0x000e,0x0010,0x0014,0x0015,0x01c6,0x01c7},</div><div class="code_line">{0x0001,0x0002,0x0009,0x000d,0x0013,0x0018,0x001a,0x0024,0x01cd,0x01cf},</div><div class="code_line">{0x0008,0x000b,0x000f,0x0014,0x0016,0x001c,0x0021,0x0029,0x01c5,0x01c8},</div><div class="code_line">{0x0007,0x000b,0x000e,0x0010,0x0012,0x0016,0x0025,0x002e,0x01d8,0x01dd},</div><div class="code_line">{0x0007,0x0008,0x000f,0x0011,0x0022,0x0028,0x002b,0x0036,0x01c1,0x01c4},</div><div class="code_line">{0x0003,0x0019,0x0021,0x0022,0x0029,0x0031,0x0034,0x0036,0x01bf,0x01c2},</div><div class="code_line">{0x0002,0x0004,0x0006,0x000d,0x0010,0x0011,0x0012,0x0015,0x01cb,0x01ce},</div><div class="code_line">{0x0001,0x0007,0x000d,0x0012,0x0022,0x0024,0x002a,0x002f,0x01cf,0x01d0},</div><div class="code_line">{0x0001,0x0002,0x0008,0x0009,0x000b,0x000c,0x000d,0x0010,0x01c1,0x01c8},</div><div class="code_line">{0x000b,0x000e,0x000f,0x0015,0x001b,0x001d,0x0021,0x0023,0x019c,0x019f},</div><div class="code_line">{0x0002,0x0004,0x000f,0x0012,0x0015,0x0016,0x001f,0x0020,0x01b6,0x01c4},</div><div class="code_line">{0x0002,0x0006,0x0008,0x000b,0x0019,0x0032,0x0037,0x003a,0x01c8,0x01c9},</div><div class="code_line">{0x0001,0x0005,0x0008,0x0009,0x000d,0x0011,0x0012,0x0013,0x01d5,0x01db},</div><div class="code_line">{0x0001,0x0003,0x0004,0x0005,0x000b,0x0012,0x0014,0x001a,0x01c3,0x01c4},</div><div class="code_line">{0x0001,0x000b,0x0010,0x001d,0x0021,0x0028,0x002a,0x0036,0x01c1,0x01c2},</div><div class="code_line">{0x0002,0x0008,0x000b,0x000e,0x000f,0x0013,0x001f,0x0021,0x01d9,0x01dc},</div><div class="code_line">{0x0004,0x0009,0x0011,0x001c,0x001d,0x0027,0x0029,0x0033,0x01cc,0x01ce},</div><div class="code_line">{0x0003,0x000c,0x000d,0x0016,0x0017,0x001a,0x001b,0x0020,0x01be,0x01c7},</div><div class="code_line">{0x0008,0x000c,0x000e,0x0010,0x0017,0x0019,0x001c,0x001d,0x01a2,0x01b0}</div></ol></div></div></div></div></div></div><br>
<strong class='tag-b'>Моя программа тестирования алгоритмов</strong><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">#include &#60;vector&#62;</div><div class="code_line">#include &#60;chrono&#62;</div><div class="code_line">#include &quot;BigIntegerLibrary.hh&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">std::vector&#60;BigInteger&#62; R;</div><div class="code_line">&nbsp;</div><div class="code_line">void YouTest(std::vector&#60;int&#62; &amp;V) {</div><div class="code_line">&nbsp;&nbsp;int Len = 10;</div><div class="code_line">&nbsp;&nbsp;int End = 9;</div><div class="code_line">&nbsp;&nbsp;int Cur = 0;</div><div class="code_line">&nbsp;&nbsp;while (End&#62;0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (V[End] % V[Cur] == 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;V.erase(V.begin()+Cur);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Len--;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;End--;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;Cur--;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (Cur&#60;0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;End--;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Cur = End-1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;BigInteger Tmp = 1;</div><div class="code_line">&nbsp;&nbsp;for(auto &amp;&amp;i:V) Tmp*=i;</div><div class="code_line">&nbsp;&nbsp;R.push_back(Tmp);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void Func() {</div><div class="code_line">&nbsp;&nbsp;std::vector&#60;std::vector&#60;int&#62;&#62; Arr = {</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x0004,0x000d,0x0017,0x001b,0x001d,0x0021,0x0022,0x01d2,0x01d6},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x000b,0x000c,0x000d,0x000e,0x0012,0x0019,0x001d,0x01bd,0x01c6},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x000d,0x000e,0x0015,0x0023,0x0028,0x002c,0x002e,0x01d2,0x01d5},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0006,0x000b,0x0012,0x0015,0x0019,0x001c,0x001f,0x0027,0x01b2,0x01c1},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x0009,0x000d,0x000e,0x0010,0x0012,0x0013,0x0015,0x01d5,0x01d6},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0007,0x0009,0x000f,0x0018,0x001a,0x001c,0x001e,0x0028,0x01ca,0x01cb},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0004,0x0008,0x0011,0x0014,0x0018,0x001b,0x001e,0x0028,0x01b9,0x01ba},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0008,0x0011,0x0024,0x0027,0x0031,0x0037,0x0038,0x003c,0x01b5,0x01bd},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x0004,0x0006,0x000a,0x000b,0x0010,0x0013,0x0019,0x01bf,0x01c1},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0005,0x0006,0x0009,0x000c,0x001f,0x0027,0x0028,0x002f,0x01c1,0x01cd},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x0004,0x0006,0x0007,0x0016,0x0019,0x001c,0x001d,0x01db,0x01dc},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0009,0x000c,0x0012,0x0013,0x0014,0x0018,0x001f,0x01b9,0x01bb},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x000d,0x0010,0x0017,0x001e,0x001f,0x0021,0x0023,0x002d,0x01c3,0x01c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0005,0x0007,0x000a,0x000e,0x0010,0x0014,0x0015,0x01c6,0x01c7},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x0002,0x0009,0x000d,0x0013,0x0018,0x001a,0x0024,0x01cd,0x01cf},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0008,0x000b,0x000f,0x0014,0x0016,0x001c,0x0021,0x0029,0x01c5,0x01c8},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0007,0x000b,0x000e,0x0010,0x0012,0x0016,0x0025,0x002e,0x01d8,0x01dd},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0007,0x0008,0x000f,0x0011,0x0022,0x0028,0x002b,0x0036,0x01c1,0x01c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x0019,0x0021,0x0022,0x0029,0x0031,0x0034,0x0036,0x01bf,0x01c2},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0004,0x0006,0x000d,0x0010,0x0011,0x0012,0x0015,0x01cb,0x01ce},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x0007,0x000d,0x0012,0x0022,0x0024,0x002a,0x002f,0x01cf,0x01d0},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x0002,0x0008,0x0009,0x000b,0x000c,0x000d,0x0010,0x01c1,0x01c8},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x000b,0x000e,0x000f,0x0015,0x001b,0x001d,0x0021,0x0023,0x019c,0x019f},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0004,0x000f,0x0012,0x0015,0x0016,0x001f,0x0020,0x01b6,0x01c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0006,0x0008,0x000b,0x0019,0x0032,0x0037,0x003a,0x01c8,0x01c9},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x0005,0x0008,0x0009,0x000d,0x0011,0x0012,0x0013,0x01d5,0x01db},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x0003,0x0004,0x0005,0x000b,0x0012,0x0014,0x001a,0x01c3,0x01c4},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0001,0x000b,0x0010,0x001d,0x0021,0x0028,0x002a,0x0036,0x01c1,0x01c2},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0002,0x0008,0x000b,0x000e,0x000f,0x0013,0x001f,0x0021,0x01d9,0x01dc},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0004,0x0009,0x0011,0x001c,0x001d,0x0027,0x0029,0x0033,0x01cc,0x01ce},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0003,0x000c,0x000d,0x0016,0x0017,0x001a,0x001b,0x0020,0x01be,0x01c7},</div><div class="code_line">&nbsp;&nbsp; &nbsp;{0x0008,0x000c,0x000e,0x0010,0x0017,0x0019,0x001c,0x001d,0x01a2,0x01b0}</div><div class="code_line">&nbsp;&nbsp;};</div><div class="code_line">&nbsp;&nbsp;for (auto &amp;&amp;i:Arr) YouTest(i);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int main() {</div><div class="code_line">&nbsp;&nbsp;R.reserve(32*1024*1024);</div><div class="code_line">&nbsp;&nbsp;auto start = std::chrono::high_resolution_clock::now();</div><div class="code_line">&nbsp;&nbsp;for(int i=0; i&#60;1024*1024; i++) Func();</div><div class="code_line">&nbsp;&nbsp;auto stop = std::chrono::high_resolution_clock::now();</div><div class="code_line">&nbsp;&nbsp;std::cout &#60;&#60; &quot;Elapsed: &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;&#60; std::chrono::duration_cast&#60;std::chrono::milliseconds&#62;(stop - start).count()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;&#60; &quot; ms&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp;for(int i=0; i&#60;32; i++) std::cout &#60;&#60; R[i] &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp;std::cout &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div></div></div><br>
<strong class='tag-b'>Ну и краткое описание</strong><br>
Тест запускается 1024*1024 раза на весь набор из 32 элементов. Собственно это время обработки и считается. Чтобы избежать переполнения при умножении - задействовал библиотечку BigInteger. Что тут может немного повлиять на валидность результата - то, что я собираю в вектор результаты. Т.е. работа с вектором может (или не может) вносить значимые поправки. В принципе, если это убрать - будет точнее. Ну как есть ...<br>
<br>
После отработки программы выдается затраченное время и первые 32 результата.<br>
На моем компе это получилось вот так:<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Elapsed: 139626 ms</div><div class="code_line">230128058365920</div><div class="code_line">63339071796000</div><div class="code_line">2366944016236800</div><div class="code_line">22119902204400</div><div class="code_line">4610069493120</div><div class="code_line">39668386867200</div><div class="code_line">2576712902400</div><div class="code_line">42029625862224000</div><div class="code_line">1006726248000</div><div class="code_line">50810699291040</div><div class="code_line">24234302400</div><div class="code_line">994194492480</div><div class="code_line">47139350482224000</div><div class="code_line">19434105600</div><div class="code_line">91100887488</div><div class="code_line">51649105939200</div><div class="code_line">33990937085952</div><div class="code_line">67293822556800</div><div class="code_line">31829509251540000</div><div class="code_line">16672848192</div><div class="code_line">6747934991616</div><div class="code_line">50593061376</div><div class="code_line">681910925157000</div><div class="code_line">24497962030080</div><div class="code_line">33238524000</div><div class="code_line">673511202000</div><div class="code_line">1908054720</div><div class="code_line">280668592512000</div><div class="code_line">7352018815680</div><div class="code_line">126653438751840</div><div class="code_line">27679937725440</div><div class="code_line">16187699404800</div></ol></div></div></div></div></div></div><br>
<br>
Файл проекта под qmake прилагается, если кому интересно.<br>
<span class="b-attach" data-size="20699" data-hits="1029" data-attach-id="62288" data-attach-post-id="3834010">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3834010&amp;attach_id=62288' title='Скачать файл' target='_blank'>testo_testo.7z</a> (, : 1029)
		</span>]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834007</guid>
        <pubDate>Wed, 08 Jul 2020 08:54:23 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834007</link>
        <description><![CDATA[Black_Dragon: <strong class='tag-b'>JoeUser</strong><br>
ошибка у меня логическая.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;for (m_type i = 0; i &#60; count; ++i)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;rand_s(arr + i);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (arr[i] == 0) arr[i] = 1;</div><div class="code_line">#ifdef _PRN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::wcout &#60;&#60; i &#60;&#60; L&quot; = &quot; &#60;&#60; arr[i] &#60;&#60; L&quot;\n&quot;;</div><div class="code_line">#endif</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div></ol></div></div></div></div><br>
Но&#33;&#33;&#33;<br>
1) нужен генератор большого диапазона, виндовый максимум x32<br>
2) UINT64 = unsigned long long, надо усложнять проверку на переполнение при x64.<br>
<br>
щас потестю на x32 + OpenMP <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-07-08T09:11:51+00:00">08.07.20, 09:11</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833999'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T06:50:44+00:00">08.07.20, 06:50</time></span><div class='quote '>значение числа в наборе - 1..2<sup class='tag-sup'>32</sup></div></div><br>
Вообщем перемножение этих чисел почти всегда дает переполнение в 32 бита...<br>
Надо занижать лимиты....]]></description>
        <author>Black_Dragon</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834006</guid>
        <pubDate>Wed, 08 Jul 2020 08:49:46 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834006</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3834004'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Black_Dragon &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T08:34:50+00:00">08.07.20, 08:34</time></span><div class='quote '>Так что, оптимистические хотелки...</div></div><br>
Ну да, с большим количеством фэйлов неинтерсно. Попробую замутить типа &quot;программного стенда для теста&quot; на более скромых хотелках :)]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834004</guid>
        <pubDate>Wed, 08 Jul 2020 08:34:50 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834004</link>
        <description><![CDATA[Black_Dragon: Сделал программку...<br>
64 битка.<br>
Значение чисел 2<sup class='tag-sup'>15</sup> (int rand())<br>
Массив 100тыс. рандомов<br>
<br>
nok = 15375599254564976780<br>
time = 0.0202832<br>
но в основном: fail, из-за<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833999'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T06:50:44+00:00">08.07.20, 06:50</time></span><div class='quote '>Ну и результат может отсутствовать, если результирующее число не влезает в EAX (x32) / RAX (x64) без переполнения</div></div><br>
<br>
Так что, оптимистические хотелки...<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>для реализации для x32:<br>
количество чисел в наборе - 1..2<sup class='tag-sup'>32</sup><br>
значение числа в наборе - 1..2<sup class='tag-sup'>32</sup><br>
<br>
для реализации для x64:<br>
количество чисел в наборе - 1..2<sup class='tag-sup'>32</sup><br>
значение числа в наборе - 1..2<sup class='tag-sup'>64</sup></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-07-08T08:36:42+00:00">08.07.20, 08:36</time></span></span><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;fcntl.h&#62;</div><div class="code_line">#include &#60;io.h&#62;</div><div class="code_line">#include &#60;wchar.h&#62;</div><div class="code_line">#include &#60;locale&#62;</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">#ifdef _MSC_VER</div><div class="code_line">#define NOMINMAX</div><div class="code_line">#include &#60;windows.h&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">__forceinline double time()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;LARGE_INTEGER counter, frequency;</div><div class="code_line">&nbsp;&nbsp; &nbsp;QueryPerformanceCounter(&amp;counter);</div><div class="code_line">&nbsp;&nbsp; &nbsp;QueryPerformanceFrequency(&amp;frequency);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return double(counter.QuadPart) / double(frequency.QuadPart);</div><div class="code_line">}</div><div class="code_line">#else</div><div class="code_line">#include &#60;sys/time.h&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">inline __attribute__((always_inline)) double time()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;timeval t1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;gettimeofday(&amp;t1, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return t1.tv_sec + t1.tv_usec * 0.000001;</div><div class="code_line">}</div><div class="code_line">#endif</div><div class="code_line">&nbsp;</div><div class="code_line">using m_type = UINT64;</div><div class="code_line">&nbsp;</div><div class="code_line">m_type nod1(m_type a, m_type b) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;return b ? nod1(b, a % b) : a;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">m_type nod2(m_type a, m_type b) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;while (b) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;a %= b;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::swap(a, b);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;return a;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">m_type MmM = std::numeric_limits&#60;m_type&#62;::max();</div><div class="code_line">m_type nok1(m_type a, m_type b)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;unsigned long long val = (a * b) / nod2(a, b);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return (val &#62; MmM) ? (0) : (m_type(val));</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">const m_type count = 100000;</div><div class="code_line">&nbsp;</div><div class="code_line">//u_int arr[count] = { 2, 5, 17, 24, 9, 35, 11, 42, 29, 18 };</div><div class="code_line">&nbsp;</div><div class="code_line">//#define _PRN</div><div class="code_line">&nbsp;</div><div class="code_line">int wmain()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;_setmode(_fileno(stdout), _O_U8TEXT);</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::wcout &#60;&#60; L&quot;Search NOK!\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;srand((unsigned)time(0));</div><div class="code_line">&nbsp;&nbsp; &nbsp;m_type *arr = new m_type[count];</div><div class="code_line">&nbsp;&nbsp; &nbsp;for (m_type i = 0; i &#60; count; ++i)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;arr[i] = rand();</div><div class="code_line">#ifdef _PRN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::wcout &#60;&#60; i &#60;&#60; L&quot; = &quot; &#60;&#60; arr[i] &#60;&#60; L&quot;\n&quot;;</div><div class="code_line">#endif</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;bool fail = false;</div><div class="code_line">&nbsp;&nbsp; &nbsp;m_type nok = arr[0];</div><div class="code_line">&nbsp;&nbsp; &nbsp;double t_s = time();</div><div class="code_line">&nbsp;&nbsp; &nbsp;for (u_int i = 1; i &#60; count; ++i)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;nok = nok1(nok, arr[i]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (nok == 0)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fail = true;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;double t_e = time();</div><div class="code_line">&nbsp;&nbsp; &nbsp;delete[] arr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (fail) std::wcout &#60;&#60; L&quot;Nok fail!\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;else &nbsp;std::wcout &#60;&#60; L&quot;nok = &quot; &#60;&#60; nok &#60;&#60; L&quot;\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::wcout &#60;&#60; L&quot;time = &quot; &#60;&#60; (t_e - t_s) &#60;&#60; L&quot;\n&quot;;</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>Black_Dragon</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834003</guid>
        <pubDate>Wed, 08 Jul 2020 08:34:03 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3834003</link>
        <description><![CDATA[JoeUser: В общем, пока накидал свой алгоритм, который пользовал в самом первом сообщении на обычном Си:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;stdio.h&#62;</div><div class="code_line">#include &#60;string.h&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">const int Size = sizeof(unsigned int);</div><div class="code_line">unsigned int A[] = {1,2,3,4,5,6,7,8,9,10,11,12};</div><div class="code_line">&nbsp;</div><div class="code_line">void PrintArray(unsigned int *X, int len) {</div><div class="code_line">&nbsp;&nbsp;int Res = 1;</div><div class="code_line">&nbsp;&nbsp;for (int i=0; i&#60;len; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;printf(&quot;%d &quot;,*(X+i));</div><div class="code_line">&nbsp;&nbsp; &nbsp;Res *= *(X+i);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;printf(&quot;\nRes: %d\n&quot;,Res);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int main(void) {</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;int Len = sizeof(A)/Size;</div><div class="code_line">&nbsp;&nbsp;int End = Len-1;</div><div class="code_line">&nbsp;&nbsp;int Cur = End-1;</div><div class="code_line">&nbsp;&nbsp;int Cnt = 0;</div><div class="code_line">&nbsp;&nbsp;while (End&#62;0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;Cnt++;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (A[End] % A[Cur] == 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;memmove((A+Cur),(A+Cur+1),(Len-Cur)*Size);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Len--;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;End--;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;Cur--;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (Cur&#60;0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;End--;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Cur = End-1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;/* Печать результирующего набора и полученное число */</div><div class="code_line">&nbsp;&nbsp;PrintArray(A,Len);</div><div class="code_line">&nbsp;&nbsp;/* Печать количества итераций */</div><div class="code_line">&nbsp;&nbsp;printf(&quot;%d&quot;,Cnt);</div><div class="code_line">&nbsp;&nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
<strong class='tag-b'>Получилось следующее</strong><br>
<br>
Для набора [1,2,3,4,5,6,7,8,9,10,11,12]:<br>
<br>
Оставшийся набор = 7 8 9 10 11 12<br>
Полученное число = 665280<br>
Циклов = 23<br>
<br>
Для набора [17,19,23,29,31,37,41,43,47,53]:<br>
<br>
Оставшийся набор = 17 19 23 29 31 37 41 43 47 53<br>
Полученное число = 2085895579<br>
Циклов = 45<br>
<br>
Пока мне это нравится. Позже попробую алгоритмы от &quot;арифметической классики&quot; :)]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833999</guid>
        <pubDate>Wed, 08 Jul 2020 06:50:44 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833999</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833984'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-07T22:19:18+00:00">07.07.20, 22:19</time></span><div class='quote '>1) Это сколько?</div></div><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833988'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T04:22:11+00:00">08.07.20, 04:22</time></span><div class='quote '>Какие есть ограничения на значения чисел набора?</div></div><br>
<br>
для реализации для x32:<br>
количество чисел в наборе - 1..2<sup class='tag-sup'>32</sup><br>
значение числа в наборе - 1..2<sup class='tag-sup'>32</sup><br>
<br>
для реализации для x64:<br>
количество чисел в наборе - 1..2<sup class='tag-sup'>32</sup><br>
значение числа в наборе - 1..2<sup class='tag-sup'>64</sup><br>
<br>
Ну и результат может отсутствовать, если результирующее число не влезает в EAX (x32) / RAX (x64) без переполнения<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833987'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Black_Dragon &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T02:37:19+00:00">08.07.20, 02:37</time></span><div class='quote '>2) Каков критерий быстродействия?</div></div><br>
Ограничений по времени нет, а пожелание есть - меньшее время вычисления. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-07-08T06:59:04+00:00">08.07.20, 06:59</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833987'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Black_Dragon &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T02:37:19+00:00">08.07.20, 02:37</time></span><div class='quote '>И самое главное:<br>
Если для ускорения вычисления требуется трансформация данных или предварительные расчеты, то их надо, если имеется такая возможность, то производить их в момент чтения данных откуда-то (например, из файла)</div></div><br>
Не вопрос, пусть массив чисел на старте будет отсортирован и не иметь дублей. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-07-08T07:02:02+00:00">08.07.20, 07:02</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833988'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2020-07-08T04:22:11+00:00">08.07.20, 04:22</time></span><div class='quote '>Промежуточный вариант - хранимая таблица простых чисел в диапазоне значений чисел набора.</div></div><br>
В принципе можно и заценить скорость построения с помощью решета Эратосфена или Аткина. Но опять же - каков объем может получится...]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833988</guid>
        <pubDate>Wed, 08 Jul 2020 04:22:11 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833988</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833966'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-07T18:36:19+00:00">07.07.20, 18:36</time></span><div class='quote '>найти минимальное число, которое нацело делится на любое из чисел набора...</div></div><br>
Какие есть ограничения на значения чисел набора?<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833984'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-07T22:19:18+00:00">07.07.20, 22:19</time></span><div class='quote '>не вариант - слишком большой объем таких данных будет.</div></div><br>
Либо скорость, либо размер. Промежуточный вариант - хранимая таблица простых чисел в диапазоне значений чисел набора.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833987</guid>
        <pubDate>Wed, 08 Jul 2020 02:37:19 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833987</link>
        <description><![CDATA[Black_Dragon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833984'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-07T22:19:18+00:00">07.07.20, 22:19</time></span><div class='quote '>Это, увы, не вариант - слишком большой объем таких данных будет.</div></div><br>
1) Это сколько?<br>
2) Каков критерий быстродействия?<br>
<br>
И самое главное:<br>
Если для ускорения вычисления требуется трансформация данных или предварительные расчеты, то их надо, если имеется такая возможность, то производить их в момент чтения данных откуда-то (например, из файла)]]></description>
        <author>Black_Dragon</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833984</guid>
        <pubDate>Tue, 07 Jul 2020 22:19:18 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833984</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3833983'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>swf &#064; <time class="tag-quote__quoted-time" datetime="2020-07-07T21:45:33+00:00">07.07.20, 21:45</time></span><div class='quote '>Есть, наверно, готовые разложения натуральных чисел на простые множители</div></div><br>
Это, увы, не вариант - слишком большой объем таких данных будет. <br>
Но уже два подхода нарисовались - буду тестировать, замерять.]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833983</guid>
        <pubDate>Tue, 07 Jul 2020 21:45:33 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833983</link>
        <description><![CDATA[swf: Есть, наверно, готовые разложения натуральных чисел на простые множители. Сразу пользоваться этими разложениями.<br>А вот сравнение разложения проверяемого числа на простые множители с разложением НОК&#39;а на предмет недостающих сомножителей зависит от того, как эти разложения хранятся.<br>За счёт увеличения памяти можно ускорить процедуру сравнения.]]></description>
        <author>swf</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833968</guid>
        <pubDate>Tue, 07 Jul 2020 19:00:51 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833968</link>
        <description><![CDATA[JoeUser: <strong class='tag-b'>swf</strong>, сенкс за наводочку  :) Нашел какую-то теорему:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Пусть даны целые положительные числа a1, a2, …, ak, наименьшее общее кратное mk этих чисел находится при последовательном вычислении m2=НОК(a1, a2), m3=НОК(m2, a3), …, mk=НОК(mk−1, ak).</div></div><br>
Пока остается вопрос - как уменьшить количество вычислений для нахождения этого числа.]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833967</guid>
        <pubDate>Tue, 07 Jul 2020 18:54:26 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833967</link>
        <description><![CDATA[swf: Это НОК, наименьшее общее кратное.<br>В школе дети раскладывают каждое число на простые множители, затем переписывают в НОК любое число и дополняют недостающими множителями из оставшихся чисел (6 класс).<br>Видимо, есть готовые алгоритмы, но мне как-то не приходилось ими пользоваться.]]></description>
        <author>swf</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833966</guid>
        <pubDate>Tue, 07 Jul 2020 18:36:19 +0000</pubDate>
        <title>Поиск минимального числа при условии</title>
        <link>https://forum.sources.ru/index.php?showtopic=419125&amp;view=findpost&amp;p=3833966</link>
        <description><![CDATA[JoeUser: Всем привет&#33;<br>
<br>
Интересует сабж. <br>
<br>
<strong class='tag-b'>Условие</strong><br>
<br>
есть набор чисел, допустим [1,2,3,4,5,6,7,8,9,10,11,12], нужно найти минимальное число, которое нацело делится на любое из чисел набора...<br>
<br>
<strong class='tag-b'>Мое решение</strong><br>
<br>
Очевидное число, удовлетворяющее условию D=1*2*3*4*5*6*7*8*9*10*11*12 =  479001600, и оно явно избыточное<br>
Тогда я стал из произведения убирать множители:<br>
<br>
1) 6, если число делится на 12, значит будет делится и на 6<br>
2) 5, если число делится на 10, значит будет делится и на 5<br>
3) 4, если число делится на 12, значит будет делится и на 4<br>
4) 3, если число делится на 12, значит будет делится и на 3<br>
5) 2, если число делится на 12, значит будет делится и на 2<br>
6) 1, ну тут понятно<br>
<br>
Итого получилось: Dmin = 7*8*9*10*11*12 = 665280<br>
<br>
<strong class='tag-b'>Вопросы</strong><br>
<br>
Я действительно нашел минимальное число, удовлетворяющее условию?<br>
Как формализовать алгоритм нахождения такого минимального числа для произвольного набора чисел? Например [2,3,17,4,3,3]]]></description>
        <author>JoeUser</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	