Я решил изучить параллелизм и хотел узнать, как много способов могут перекрывать инструкции из двух разных процессов. Код для обоих процессов представляет собой всего лишь 10 циклов итерации с тремя инструкциями, выполняемыми на каждой итерации. Я выяснил, что проблема заключалась в том, чтобы оставить X-инструкции фиксированными в точке, а затем поместить другие инструкции X из другого процесса между пространствами, принимая во внимание, что они должны быть заказаны (инструкция 4 процесса B должна всегда поступать перед инструкцией 20).Таинственная комбинация
Я написал программу для подсчета этого числа, посмотрев на результаты, я выяснил, что решение n. Комбинация k, где k - количество команд, выполняемых по всему циклу одного процесса, поэтому для 10 итераций это будет 30, а n - k * 2 (2 процесса). Другими словами, n число объектов с n/2 фиксировано и должно соответствовать n/2 среди пространств без последнего n/2, теряющего свой порядок.
Ok проблема решена. Нет, не совсем. Я понятия не имею, почему это так, я понимаю, что определение комбинации состоит в том, сколько способов вы можете взять k элементов из группы из n, чтобы все группы были разными, но порядок, в котором вы принимаете элементы, . В этом случае у нас есть n элементов, и мы фактически берем их все, потому что выполняются все инструкции (n C n).
Если вы объясните это, указав, что в сумке есть 2k синих (A) и красных (B) предметов, и вы берете k предметов из сумки, вы все еще принимаете только k инструкций, когда фактически выполняются инструкции 2k. Не могли бы вы пролить свет на это?
Заранее спасибо.
Для любви к Богу абзацы перерывы. –