Search
Write a publication
Pull to refresh
6
0
Андрей Макаровский @Lakedemon

Разработчик C++

Send message

Работа проверялась в Debian на моём компьютере и Ubuntu в firstvds, но в Linux кодировка русских букв другая, добавлено описание функций клиента на английском языке. Теперь буду все комментарии переводить на английский язык и писать новые комментарии.

Версия 1.0 готова, закачана в GitHub (AndrewMakarovsky/nn_mathserver и AndrewMakarovsky/nn_mathclient).

Правильно. Но случайное число мне пришлось получать таким образом:

double d = ((double)rand()) / RAND_MAX;
int r = (int)(d * (i + 1));
r = (r == i + 1) ? i : r;

Иначе случайные числа не будут равновероятны. Можно проще:

int r = rand() % (i + 1);

Но с действительными числами для меня привычнее. В Википедии было написано, что в результате ошибок может получиться алгоритм Сандры Саттоло, в котором диапазон случайных чисел на 1 меньше, это у меня первоначально получился такой алгоритм, поэтому его пришлось дорабатывать. Скорее всего, Сандра Саттоло именно такого рода алгоритм и получила, какой написан выше, а по поводу его ошибочности в Википедии написано неправильно. Но для всех i от n − 1 до 1 - тоже правильно, просто о методах получения случайных чисел в диапазоне от 0 до i ничего не написано. Они должны быть равновероятны.

На всякий случай напишу, что 2 программы - сервер и клиент хранятся в GitHub (AndrewMakarovsky/nn_mathserver и AndrewMakarovsky/nn_mathclient), посмотреть их можно. Но требуется небольшая чистка кода, окончательное тестирование и более подробные комментарии.

Сделано для Linux, компилируются с помощью make.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Application Developer
SQL
Linux
Database
C++
OOP
MySQL
PostgreSQL
C#
.NET
Visual Studio