Обновить
4
0
Сергей@BarabashkaS

Инженер-программист

Отправить сообщение

попробуйте из примера отсюда - https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.stopwatch.frequency?view=net-8.0#system-diagnostics-stopwatch-frequency - вычислить разрешение вашего таймера, если оно меньше микросекунды, таково свойство CP2102, если больше - значит измерения нужно делать на другом компьютере

гляньте еще тут - https://ru.stackoverflow.com/questions/758708/Как-точно-измерить-время-выполнения-операции-С - чтобы понять проблематику

P.S Ну и C# не очень хороший инструмент для коротких измерений, слишком многое нужно учитывать

"DateTime.Now.Ticks основана на функции WinAPI GetSystemTimeAsFileTime(). Она выражается в сотых наносекунды. Фактическая точность DateTime.Ticks зависит от системы. В Windows XP приращение системных часов составляет около 15,6 мс. В Windows 7 его точность составляет 1 мс. Однако при использовании схемы энергосбережения (обычно на ноутбуках) оно может уменьшиться до 15,6 мс. На Windows 10 и 11 я не в курсе." - взято из 1го ответа отсюда https://stackoverflow.com/questions/243351/environment-tickcount-vs-datetime-now

в комментариях кто-то добавил что в windows 10 точность у него составила чуть более 1мс

P.S Замерил у себя на работе (на windows 10, core i3-10100, .Net 8). Разница двух подряд идущих считываний тиков (в цикле считывал два раза подряд тики и выводил на экран разницу) давало от 0,1мс до 4мс с лишним, иногда выбросы были больше ( у меня было 18 мс)

По поводу

Полученные таблицы со временем работы функций оказались немного странными.

в C# использовать DateTime.Now для оценки времени не самая удачная идея. Можно посмотреть, например, здесь - https://habr.com/ru/companies/tbank/articles/454058/ или тут - https://ru.stackoverflow.com/questions/758708/Как-точно-измерить-время-выполнения-операции-С

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

Для примера представьте, что в классе Person существует метод, который должен иметь тип string, передаваемый как единственный параметр, и возвращать int:

Метод должен иметь тип string? Очередной корявый перевод, по-моему даже google лучше переводит

(оригинал - "For example, imagine there is a method in the Person class that must have a string type passed as its only parameter, and it returns an int type, as shown in the following code:")

перебор можно было упростить, если заметить, что остаток от деления на 5 дает 1, а значит число должно заканчиваться на 1 (6-ку естественно отбрасываем), а значит число, на которое нужно умножить 7 должно оканчиваться на 3, тогда в перебор войдут только числа 13, 23 и 43

Информация

В рейтинге
Не участвует
Откуда
Саратовская обл., Россия
Зарегистрирован
Активность

Специализация

Десктоп разработчик, Бэкенд разработчик
Ведущий
C#
WPF
.NET
Linq
SQL
Git