﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Программирование / Программирование  / Задача простая - решение сложное / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Wed, 03 Dec 2008 05:58:21 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Задача простая - решение сложное</title><link>http://www.relib.com/forums/Topic761286-15-1.aspx</link><description>Спасибо за советы. Неплохая идея с битами, я попробую ее реализовать. В действительности мне нужны не все комбинации (мат. языком - сочитания), а те, которые удовлетворяют некоторое условие. По сути, эти комбинации являются шифром более сложного объекта, окончательный вид которого можно определить только полным перебором.&lt;BR&gt;Для тех, кому интересно что делает эта прога, могу посвятить несколько строчек:&lt;BR&gt;Сейчас существуют много программ, даже проектов, посвященных решению всем известных нонограмм - японских кроссвордов. Но до сих пор я не встретил, полного решения этой проблемы, тоесть проги которая может решить любую нонограмму, в широком смысле этого слова (решается или не решается, одно или много решений, как убить неоднозначность, решение поисковых задач, и т. п.) Поэтому я решил посвятить лишнее время созданию более углубленного алгоритма (алгоритмов), который(е) мог бы быстро все порешать (Может в будущем получится не плохая РешалкА). Но поскольку я не програмист, а математик, у меня возникают большие трудности в реализации своих идей.&lt;BR&gt;Люди, если кто-то заинтерисовался, и имеет лишнее время, приглашаю к сотрудничеству! А может, знаете тех, кто тоже &amp;quot;болеет&amp;quot; этим - забейте стрелу!(Я не исключаю, возможности совмещения полезного с прятным: вместе немного заработать).  Только так: Я НУЖДАЮСЬ НЕ В РЕКЛАМЕ, А В ПОДДЕРЖКЕ!</description><pubDate>Mon, 23 Sep 2002 12:50:00 GMT</pubDate><dc:creator>Polirom</dc:creator></item><item><title>RE: Задача простая - решение сложное</title><link>http://www.relib.com/forums/Topic761286-15-1.aspx</link><description>2 Disketka:&lt;BR&gt;нет у него другая проблема, ему не все нужны, а только некоторые.&lt;BR&gt;поэтому простым прибавлением бита к предыдущему результату не получится. Надо после каждого прибавления подсчитывать количество включенных битов, и если оно равно определенному числу тогда один из результатов найден.</description><pubDate>Mon, 23 Sep 2002 11:45:00 GMT</pubDate><dc:creator>t1k</dc:creator></item><item><title>RE: Задача простая - решение сложное</title><link>http://www.relib.com/forums/Topic761286-15-1.aspx</link><description>Что ломаешь-то? Может проблема не в оптимизации данного алгоритма, а в принципе подхода, может и не стоит все комбинации перебирать.</description><pubDate>Mon, 23 Sep 2002 09:01:00 GMT</pubDate><dc:creator>Mavr</dc:creator></item><item><title>RE: Задача простая - решение сложное</title><link>http://www.relib.com/forums/Topic761286-15-1.aspx</link><description>Перестановки бинарных разрядов на k - позициях - не что иное, как обычный десятичный счет от 0 до 2^к-1.&lt;BR&gt;Начинаешь считать в цикле, а смотришь в двоичном виде.&lt;BR&gt;А быстрее как? &lt;BR&gt;Ведь это просто скорость вывода* на константу. Все равно выводить результаты надо.&lt;BR&gt;Или тебе определенные комбинации нужны?&lt;BR&gt;1)Посмотри книжку &lt;BR&gt;М.О. Асанов &amp;quot;Дискретная оптимизация&amp;quot;.&lt;BR&gt;2)Растяни циклы.&lt;BR&gt;3)Перейди на циклы с пост-условиями. &lt;BR&gt;4)Всегда сравнивай с нулем.&lt;BR&gt;5)Перепиши куски на ассемблере.</description><pubDate>Mon, 23 Sep 2002 07:06:00 GMT</pubDate><dc:creator>Disketka</dc:creator></item><item><title>RE: Задача простая - решение сложное</title><link>http://www.relib.com/forums/Topic761286-15-1.aspx</link><description>проблема в том, что результатов очень много&lt;BR&gt;&lt;BR&gt;c из n по к&lt;BR&gt;&lt;BR&gt;n!/(k!*(n-k)!) максимальное количество когда k = n/2&lt;BR&gt;&lt;BR&gt;поищи в yandex &amp;quot;генерация перестановок&amp;quot; приводятся некоторые алгоритмы&lt;BR&gt;или в google &amp;quot;permutation generation&amp;quot;</description><pubDate>Thu, 19 Sep 2002 12:05:00 GMT</pubDate><dc:creator>t1k</dc:creator></item><item><title>Задача простая - решение сложное</title><link>http://www.relib.com/forums/Topic761286-15-1.aspx</link><description>Предистория.&lt;BR&gt;В процессе создания одной непростой проги, я встретился с проблемой ее быстродействия. После некоторых тестов, оказалось, что тормозит часть ядра основного алгоритма. Но оптимизировать ее оказалось не так уж и просто. Некие ошибки, исправить конечно удалось, но общая картина от этого не изменилась.&lt;BR&gt;Я задался вопросом: можно ли вообще физически ускорить этот фрагмент алгоритма (или придумать другой более быстрый)?&lt;BR&gt;Так как я новичок в решении таких задач, я хочу обратится к професионалам в этом деле (или просто за советом).&lt;BR&gt;&lt;BR&gt;В чем суть задачи.&lt;BR&gt;Сгенерировать все комбинации из k элементов на n позициях. (Пример: k=2, n=4 : 1100, 1010, 1001, 0101, 0110, 0011)&lt;BR&gt;&lt;BR&gt;Какое должно быть решение.&lt;BR&gt;Из всех существующих алгоритмов придумать самый быстрый.&lt;BR&gt;&lt;BR&gt;Вопросы в тему.&lt;BR&gt;Каким образом можно обосновать, что алгоритма быстрее данного, в решении некоторой задачи, нет?&lt;BR&gt;Какие существуют методы (или проги) с помощью которых можно ускорить существующий алгоритм?</description><pubDate>Wed, 18 Sep 2002 14:25:00 GMT</pubDate><dc:creator>Polirom</dc:creator></item></channel></rss>