Это информация, которую должен предоставить пользователь.Добавьте параметр linear
true / false, по умолчанию false (я предполагаю, что код для нелинейного будет работать и для линейного, просто занимает больше времени).
Проблема со случайным тестированием заключается в том, чтоВы классифицируете нелинейную функцию как линейную рано или поздно, и тогда у пользователя возникнет проблема, потому что ваша функция непредсказуемо дает неверные результаты (в зависимости от того, какие точки вы выбираете случайно), это может быть достаточно близко к правильным результатам, то есть люди могут не заметить в течение loooong time -> это рецепт для катастрофы.
Действительно, пользователь должен знать это вВо-первых, это очень важно, чтобы избежать ложных срабатываний, и, как уже было сказано, нет абсолютно надежного способа проверить это.Избавьте себя от хлопот и добавьте дополнительный параметр.