Алгоритм с очень непохожей веткой - PullRequest
1 голос
/ 07 марта 2019

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

Это может быть любая обычная задача программирования.Но это должно быть современным и немного проблематичным.Любой алгоритм в любой прикладной области, связанный с информатикой и не связанный.

Может содержать несколько уровней if-else.

Пример:

if cond
{
    highly possible;
}
else
{
    almost impossible;
    but unavoidable;
}

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Одна проблема, которая приходит на ум, - это генерация UUID и их использование в качестве идентификаторов, например, в базе данных. После генерации UUID вам (теоретически) придется проверить, есть ли столкновение с каким-то ранее сгенерированным UUID, но вероятность столкновения астрономически мала.

0 голосов
/ 07 марта 2019

Трудно говорить о «вероятности» в отношении нерандомизированных алгоритмов, где сложность времени обычно задается относительно худшего случая.Тем не менее, пример, который мне сразу приходит в голову, это «Алгоритм D» Кнута, который выполняет деление на несколько слов.Он содержит этап условной коррекции, который выполняется для случайно выбранных n-битных слов с вероятностью порядка 2^-n.При тестировании алгоритма вам действительно нужно специально сформулировать кейс, который будет выполнять это условие, потому что иначе вы никогда не увидите его запуска.

...