Допустим, у меня есть набор чисел от [0, , 499] . Комбинации в настоящее время генерируются последовательно с использованием C++ std::next_permutation . Для справки, размер каждого кортежа, который я вытаскиваю, равен 3, поэтому я возвращаю последовательные результаты, такие как [0,1,2], [0,1,3], [0,1,4], ... [497,498,499] .
Теперь я хочу распараллелить код, в котором это находится, так что последовательная генерация этих комбинаций больше не будет работать. Существуют ли какие-либо существующие алгоритмы для вычисления комбинации ith из 3 из 500 чисел?
Я хочу убедиться, что каждый поток, независимо от итераций цикла, который он получает, может вычислить автономную комбинацию, основанную на i , с которым он итерирует. Поэтому, если мне нужна комбинация для i=38 в потоке 1, я могу вычислить [1,2,5] , одновременно вычисляя i=0 в потоке 2 как [0,1,2] .
Объяснение:
Поделитесь своими знаниями, ответьте на вопрос:
Try to explain the words in bold in the text from the context they are found in e.g. tutor = teacher. Check in the Word List.
blind: unable to see (слепой: без возможности видеть)
deaf: unable to hear (глухой: без возможности слышать)
tutor: teacher (репетитор: учитель)
strict: firm enforcing the rules (строгий: жесткие сильные правила)
progress: improve and get better (развиваться: улучшать и становиться лучше)
ordinary: normal (обычный: нормальный)
graduate: successfully complete university (окончить: успешно завершить учебу в университете)
degree: the award one gets for completing a 3 or 4 year course at university (степень: вознаграждение, которое получают за завершение 3 или 4 летнего курса в университете)
inspiration: influence people to achieve things (вдохновение: влияние на людей, чтобы достичь чего-то)