Вы когда-либо получали решение для программирования из природы? [закрытый]

Вы можете попробовать это

. Создать данные

data1 = [['Name','B'],['A4',True],['A5',True],['A6',True],['A7',False]]
data2 = [['Name','B'],['A4',True],['A6',False],['C4',False],['C7',True]]
df1 = pd.DataFrame(data1[1:],columns=data1[0])
df2 = pd.DataFrame(data2[1:],columns=data2[0])

print(df1)
  Name      B
0   A4   True
1   A5   True
2   A6   True
3   A7  False

print(df2)
  Name      B
0   A4   True
1   A6  False
2   C4  False
3   C7   True

. из df1, затем используйте df1_filtered. Если вам требуется вывод из df1, используйте df2_filtered.

  • 34
    задан genesis 22 September 2011 в 15:53
    поделиться

    15 ответов

    Я не забываю читать книгу математика о поле математики, и он упомянул пример от природы. Его пример от природы помог мне улучшить дизайн, я продолжал работать.

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

    Это помогло мне в точке, когда я был довольно плохо знаком с OO. Я продолжал быть склонным делать вещи процедурными и централизовал аналитику в "объектах бога". Я считал это и понял, что отдельные объекты могли сфокусироваться только на вещах, которые они должны были знать и заботиться о, и все же что результат на большом уровне изображения мог все еще быть тем, что Вы хотите. То, что правильный результат может "появиться" без того, чтобы быть "управляемым".

    20
    ответ дан Charlie Flowers 27 November 2019 в 17:05
    поделиться

    Одна вещь, которую я понял хорошо от закона сохранения энергии природы, "Общая сумма ошибок в продукте являются постоянными. Ошибка никогда не исправляется. Это просто преобразовывается в другую ошибку"!!:-)

    Шутки независимо, я действительно благодарен использовать языки как C++ в моей работе где понятия (например: наследование, друг), получены из социальной системы.

    0
    ответ дан aJ. 27 November 2019 в 17:05
    поделиться

    Угроза утренней звезды постоянно вынуждает меня оценить и переоценить свои алгоритмы для максимальной эффективности.

    0
    ответ дан thedz 27 November 2019 в 17:05
    поделиться

    Один из самых известных является нейронными сетями.

    1
    ответ дан mouviciel 27 November 2019 в 17:05
    поделиться

    Безотносительно понятия в природе, где мы можем сделать математическую модель (Дифференциальное уравнение), мы можем применить их на программирование, так как последние основаны на логической и математической основе, еще одном, чем другие.

    Я думаю, что мы можем думать это назад также, например, шаблон "наблюдатель", существует много разновидностей, которые реализуют тот шаблон также, цепочку ответственности, и т.д.

    Интересный способ думать...

    Хороший один приятель!

    3
    ответ дан MRFerocius 27 November 2019 в 17:05
    поделиться

    Я работаю в обработке изображений, имея дело с бесформенными объектами, которые слишком близки для различения простой пороговой обработкой. Я реализовал алгоритм водораздела - идея, являющаяся, что, если Вы визуализируете объекты как выступы на карте, и вычисляют строку водораздела между этими двумя выступами, можно разработать, где один объект заканчивается, и другой начинается.

    Я хотел улучшить этот алгоритм и поскольку немного путешественник оказался высоко в Озерном крае, выходящем на обзор, нарезающий выступы и долины с моими пальцами (очень к затруднению моей другой половины). Я, как также было известно, обращался к поддерживающим ходокам с вопросами как, "где этот выступ заканчивается, и следующий начинаются? Почему? И почему Вы не считали тот пригорок?"

    Я не пошел, насколько вынуть мой ноутбук со мной все же все же.:)

    3
    ответ дан north5 27 November 2019 в 17:05
    поделиться

    Я лично никогда не решал проблему путем применения идей от природы. Однако я решил проблемы путем применения решений других людей, вдохновленных по своей природе.

    Много алгоритмов макета графика и алгоритмов макета в целом, основаны на механике (пружины, круглые резинки, сила тяжести) или простое подобное насекомому поведение (следуйте за своим лидером, максимизируйте/минимизируйте расстояние).

    И, конечно, мне нравится объектно-ориентированное программирование, которое было разработано Nygaard и Dahl для моделирований физических реальных объектов, и было усовершенствовано Alan Kay, микробиологом, который смоделировал OO явно после способа, которым простые ячейки могут сформировать сложные организмы, способные к сложному поведению. Так, в некотором смысле все, кто делает OO, косвенно получают его программу из природы.

    7
    ответ дан Jörg W Mittag 27 November 2019 в 17:05
    поделиться

    Однажды я работал с автором Террагена , чтобы включить некоторые его алгоритмы атмосферного рендеринга в программу рендеринга ландшафта, которую я написал. Больше всего меня впечатлило то, что код фактически имитировал атмосферу - вы использовали черный цвет в качестве основного цвета (потому что небо в космосе черное) и цвет источника света (фактически белый, возможно, с легким желтым оттенком), различные значения для высота атмосферы, плотность и распад красного / зеленого / синего цветов положили начало всему - в результате получилось красивое голубое небо с градациями и светящееся желтое солнце - или, если вы правильно расположили солнце, от красивого красного до темно-синего неба и заката.

    На самом деле это было не так ' Это особенно сложно - всего лишь несколько очень хорошо подобранных математических уравнений, имитирующих поведение не более дюжины различных параметров, - но все было прекрасно скомпоновано. После этого я потратил много времени, играя с ним - и в конечном итоге полностью переписав его для GLSL, но он определенно научил меня некоторым вещам о том, как подходить к определенному классу проблем.

    0
    ответ дан 27 November 2019 в 17:05
    поделиться

    Чрезвычайно простая концепция «обработки исключений» - это наиболее мощное и простое приложение природы в любом программном обеспечении.

    Любой живой организм делает все возможное, чтобы адаптироваться к меняющимся обстоятельствам вокруг него и продвигаться вперед в жизни. достижение своей цели выживания. Многие исключительные обстоятельства бывают между ними, чтобы удержать его от цели, но организмы бороться изо всех сил и пытается найти наиболее оптимальный способ, чтобы сделать работу на руку. Наша повседневная жизнь полна таких переживаний.

    Обработка исключений тоже помогает любому программному обеспечению работать для достижения своей цели, минуя любые возникающие трудности.

    Но одна вещь, которой не хватает в программах, - это то, что я действительно хочу, чтобы там было. Это звучит так:

    Человеческие существа продолжают учиться на своих ошибках, сохраняя все, с чем они сталкиваются, в своей голове, и в следующий раз, когда возникнет такая проблема, они знают, как ее избежать / решить. Но в первый раз, когда это происходит, они знают, что следует избегать этого из своих обычных привычек (обработка исключения с использованием общего базового класса Exception), но впоследствии они узнают, что существует специальный способ его обработки (специализированный класс исключений, например FileDoesNotExistException). Они никогда не ходят в ремонтную мастерскую, чтобы получить обновления, хотя и принимают советы друзей. Я надеюсь, что вы, люди, уловили суть того, что я пытаюсь сказать.

    Программное обеспечение тоже должно продолжать учиться, не показывая своим пользователям сообщение «Сайт обновляется» и не решая неизвестные проблемы с использованием простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    они знают, как избежать / решить. Но в первый раз, когда это происходит, они знают, что следует избегать этого из своих обычных привычек (обработка исключения с использованием общего базового класса Exception), но впоследствии они узнают, что существует специальный способ его обработки (специализированный класс исключений, например FileDoesNotExistException). Они никогда не ходят в ремонтную мастерскую, чтобы получить обновления, хотя и принимают советы друзей. Я надеюсь, что вы, люди, уловили суть того, что я пытаюсь сказать.

    Программное обеспечение тоже должно продолжать учиться, не показывая своим пользователям сообщение «Сайт обновляется» и не решая неизвестные проблемы с использованием простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    они знают, как избежать / решить. Но в первый раз, когда это происходит, они знают, что следует избегать этого из своих обычных привычек (обработка исключения с использованием общего базового класса Exception), но впоследствии они узнают, что существует специальный способ его обработки (специализированный класс исключений, например FileDoesNotExistException). Они никогда не ходят в ремонтную мастерскую, чтобы получить обновления, хотя и принимают советы друзей. Я надеюсь, что вы, люди, уловили суть того, что я пытаюсь сказать.

    Программное обеспечение тоже должно продолжать учиться, не показывая своим пользователям сообщение «Сайт обновляется» и не решая неизвестные проблемы с использованием простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    Но в первый раз, когда это происходит, они знают, что следует избегать этого из своих обычных привычек (обработка исключения с использованием общего базового класса Exception), но впоследствии они узнают, что существует специальный способ его обработки (специализированный класс исключений, например FileDoesNotExistException). Они никогда не ходят в ремонтную мастерскую, чтобы получить обновления, хотя и принимают советы друзей. Я надеюсь, что вы, люди, уловили суть того, что я пытаюсь сказать.

    Программное обеспечение тоже должно продолжать учиться, не показывая своим пользователям сообщение «Сайт обновляется» и не решая неизвестные проблемы с использованием простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    Но в первый раз, когда это происходит, они знают, что следует избегать этого из своих обычных привычек (обработка исключения с использованием общего базового класса Exception), но впоследствии они узнают, что существует специальный способ его обработки (специализированный класс исключений, например FileDoesNotExistException). Они никогда не ходят в ремонтную мастерскую, чтобы получить обновления, хотя и принимают советы друзей. Я надеюсь, что вы, люди, уловили суть того, что я пытаюсь сказать.

    Программное обеспечение тоже должно продолжать учиться, не показывая своим пользователям сообщение «Сайт обновляется» и не решая неизвестные проблемы с использованием простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    они знают, что следует избегать этого из своих обычных привычек (обработка исключения с использованием общего базового класса Exception), но впоследствии они узнают, что существует специальный способ его обработки (специализированный класс исключений, такой как FileDoesNotExistException). Они никогда не ходят в ремонтную мастерскую, чтобы получить обновления, хотя и принимают советы друзей. Я надеюсь, что вы, люди, уловили суть того, что я пытаюсь сказать.

    Программное обеспечение тоже должно продолжать учиться, не показывая своим пользователям сообщение «Сайт обновляется» и не решая неизвестные проблемы с использованием простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    они знают, что следует избегать этого из своих обычных привычек (обработка исключения с использованием общего базового класса Exception), но впоследствии они узнают, что существует специальный способ его обработки (специализированный класс исключений, такой как FileDoesNotExistException). Они никогда не ходят в ремонтную мастерскую, чтобы получить обновления, хотя и принимают советы друзей. Я надеюсь, что вы, люди, уловили суть того, что я пытаюсь сказать.

    Программное обеспечение тоже должно продолжать учиться, не показывая своим пользователям сообщение «Сайт обновляется» и не решая неизвестные проблемы с использованием простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    но впоследствии они узнают, что существует специальный способ его обработки (специализированный класс исключений, например FileDoesNotExistException). Они никогда не ходят в ремонтную мастерскую, чтобы получить обновления, хотя и принимают советы друзей. Я надеюсь, что вы, люди, уловили суть того, что я пытаюсь сказать.

    Программное обеспечение тоже должно продолжать учиться, не показывая своим пользователям сообщение «Сайт обновляется» и не решая неизвестные проблемы с использованием простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    но впоследствии они узнают, что существует специальный способ его обработки (специализированный класс исключений, например FileDoesNotExistException). Они никогда не ходят в ремонтную мастерскую, чтобы получить обновления, хотя и принимают советы друзей. Я надеюсь, что вы, люди, уловили суть того, что я пытаюсь сказать.

    Программное обеспечение тоже должно продолжать учиться, не показывая своим пользователям сообщение «Сайт обновляется» и не решая неизвестные проблемы с использованием простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    Программное обеспечение также должно продолжать обучение, не показывая своим пользователям сообщение «Сайт обновляется» и обрабатывая неизвестные проблемы с помощью простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    Программное обеспечение также должно продолжать обучение, не показывая своим пользователям сообщение «Сайт обновляется» и обрабатывая неизвестные проблемы с помощью простого класса Exception. Тем не менее, публикуются новые версии, но я бы хотел, чтобы мы разработали постоянно работающее и самообучающееся программное обеспечение, которое обновляется само по себе, никогда не выходя из строя.

    0
    ответ дан 27 November 2019 в 17:05
    поделиться

    Я еще не решил проблему, но думаю, что окончательное решение проблемы репутации, «кармы» или любого другого варианта нахождения консенсуса среди группы людей лежит в работе Мейнарда Смита, описанной в Эволюция и теория игр. В частности, он разрабатывает концепцию эволюционно стабильной стратегии (ESS), которая представляет собой образец поведения, устойчивый к внешним злоумышленникам.

    Если мы предположим, что все альтруисты, тогда все будет просто. То, что Мейнард Смит называет стратегией «Голубь» - всегда полагаться на других, - это эффективная стратегия в том смысле, что никто не тратит время на борьбу. Но это не ESS, потому что в него могут вторгнуться извне эгоистичные актеры. Это будет аналогично сайту, на котором есть только голоса за. Это не получится, потому что любой может проголосовать за что угодно.

    Более сложные системы, такие как Stack Overflow и Slashdot, поощряют в первую очередь положительные голоса, но позволяют и отрицательные. Они более устойчивы к людям, которые не «сотрудничают», но все же уязвимы для «игр». В обоих случаях легко быстро повысить репутацию, опубликовав сообщение первым, опубликовав что-то забавное, а не полезное, и подобные действия.

    1
    ответ дан 27 November 2019 в 17:05
    поделиться

    Редактировать : После прочтения других ответов здесь я подумал, что должен упомянуть одну вещь. Если вы попробуете один сервер, репозитории, которые вы просите его обслуживать, не будут отличаться от репозиториев, которые вы запрашиваете у другого типа сервера.

    Другими словами, если вы решите попробовать один сервер сейчас, вы можете переключиться на другой тип сервера позже, без потери ваших репозиториев. Конечно, рабочие копии и любые абсолютные внешние ссылки, которые вы сделали в своих проектах, должны быть изменены, но вы можете сохранить свои репозитории с историей и всем остальным.


    Я установил VisualSVN Server , когда он был анонсирован, и какое-то время был им вполне доволен.

    Однако проблемы со скоростью заставили меня переключиться на основной сервер svnserve, который поставляется как часть пакета командной строки Subversion.

    Основная проблема заключается в том, что я работаю с .NET, и я решил добавить несколько внешних ссылок Subversion в свои проекты.

    Прежде всего, каждый проект, который я делаю в моей библиотеке классов, подписан моим ключом . Во-вторых, внешние сторонние библиотеки, такие как SQLite и NUnit , были добавлены как внешние ссылки.

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

    Итак, мое решение библиотеки классов содержит около 15-20 проектов, каждый из которых имеет хотя бы одну внешнюю ссылку на ключ подписи, все мои проекты данных имеют внешние ссылки на библиотеку SQLite, а библиотека модульных тестов имеет 4-5 внешних ссылок.

    В итоге одно обновление на уровне решения, даже если у меня уже были все последние файлы, каталоги, все, заняло около 2 минут. Каждая отдельная внешняя ссылка занимала от 10 до 20 секунд, просто чтобы убедиться, что у меня есть нужная мне ревизия.

    Когда я переключился на svnserve, эти 2 минуты были сокращены до примерно 3 секунд. Имейте в виду, что это местный трафик, поэтому, конечно, в Интернете все будет иначе. Проблема в том, что эти 2 минуты также были локальным трафиком.

    Итак, хотя мне очень понравился интерфейс, который мне предоставил VisualSVN Server, включая возможность легко настраивать права доступа и пользователей, скорость, которую предоставил мне серверный модуль Apache, была совершенно ужасной по сравнению с тем, что делает svnserve и собственный протокол Subversion.

    Обратите внимание, что у меня есть с тех пор установил отдельный сервер Apache, перебрал множество файлов конфигурации и настроил Subversion с Apache, отличным от сервера VisualSVN, просто чтобы убедиться, что это не просто VisualSVN, и я подтвердил, что наблюдаемая мной скорость не работа команды VisualSVN. Похоже, что протокол HTTP или модули Apache работают не так быстро.

    Мой совет - по возможности использовать основной сервер svnserve. Может потребоваться некоторая работа, чтобы узнать файлы конфигурации для авторизации и т.п., но только фактор раздражения (т.е. г. для фильтрации спама по электронной почте.

    Лично я реализовал такие алгоритмы только на университетских курсах или в своих личных экспериментах по программированию. Я думаю, что их обычно учат, что они мощные, хотя во многих случаях менее эффективны, чем «классические» детерминированные алгоритмы. Поэтому всегда следует отдавать предпочтение детерминированному алгоритму - если есть такой, который решает проблему! Только когда проблема слишком сложна для решения с помощью детерминированных алгоритмов, естественные вычисления могут предложить лучшее решение. По моему личному опыту, это действительно так. Один небольшой пример: На реализацию стратегии эволюции, которую я реализовал для решения головоломок судоку, у меня ушло полдня, и я провел несколько часов, чтобы найти то же решение, что и классический алгоритм поиска с возвратом менее чем за секунду (что заняло у меня меньше тридцати минут ;-))

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

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

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

    1
    ответ дан 27 November 2019 в 17:05
    поделиться

    Различным людям, которые отмечали, что книга xyz непростая, я бы указал, что алгоритмика - непростая тема. Чтобы понять концепции, вам понадобится математика не ниже начального уровня, а также способность рассуждать о вычислениях на подходящем абстрактном уровне. Если вы когда-нибудь найдете книгу «Алгоритмика для чайников», не тратьте зря!

    Я хочу отметить, что алгоритмика - непростая тема. Чтобы понять концепции, вам понадобится математика не ниже начального уровня, а также способность рассуждать о вычислениях на подходящем абстрактном уровне. Если вы когда-нибудь найдете книгу «Алгоритмика для чайников», не тратьте зря!

    Я хочу отметить, что алгоритмика - непростая тема. Чтобы понять концепции, вам понадобится математика не ниже начального уровня, а также способность рассуждать о вычислениях на подходящем абстрактном уровне. Если вы когда-нибудь найдете книгу «Алгоритмика для чайников», не тратьте зря!

    bool? эквивалентно Nullable .

    bool - это тип значения , это означает, что он не может быть null , поэтому тип Nullable в основном позволяет вам обернуть типы значений и присвоить им null .

    bool? может содержать три разных значения: true , false и null .

    Кроме того, нет коротких операторов (&& ||) определен для bool?

    Определяются только логические операторы AND, включая OR, и они ведут себя следующим образом:

    x        y      x & y   x | y   
    true    true    true    true
    true    false   false   true
    true    null    null    true
    false   true    false   true
    false   false   false   false
    false   null    false   null
    null    true    null    true
    null    false   false   null
    null    null    null    null
    

    Тип Nullable - это в основном общая структура, которая имеет следующие общедоступные свойства :

    public struct Nullable<T> where T: struct
    {
        public bool HasValue { get; }
        public T Value { get; }
    }
    

    Свойство HasValue указывает, имеет ли текущий объект значение,

    1
    ответ дан 27 November 2019 в 17:05
    поделиться

    Очень часто.

    Иногда я прогуливался по лесу, размышляя о проблеме. И чаще всего решения, с которыми я сталкиваюсь, как-то связаны с деревьями.

    Я также работал над идеями пользовательского интерфейса, вдохновленными физикой. Использование таких понятий, как гравитация, магнетизм или электрическое отталкивание, для организации элементов на дисплее.

    Я также однажды слышал интересный доклад о SOA, хотите верьте, хотите нет. Центральная идея доклада заключалась в том, что различные подсистемы в архитектуре SOA должны взаимодействовать подобно клеткам в биологической системе. Тема очень показала, как на самом деле может работать сложная система, даже если она построена из слабо связанных компонентов.

    2
    ответ дан 27 November 2019 в 17:05
    поделиться

    Я использовал генетические алгоритмы , которые основаны на эволюционной биологии для обнаружения неисправностей в очень больших интегральных схемах

    Следующие ссылки дадут вам базовое объяснение генетического алгоритма и библиотеки генетического алгоритма C ++.

    Введение в генетические алгоритмы

    Библиотека компонентов генетических алгоритмов C ++

    1
    ответ дан 27 November 2019 в 17:05
    поделиться

    Мы создали "ошибку" программно ... однажды ...

    3
    ответ дан 27 November 2019 в 17:05
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: