Написать небольшую программу на Rust

1 500 руб. за проект
24 декабря 2021, 11:53 • 5 откликов • 25 просмотров
Если ваша цена чуть выше - пишите.

Нужен человек хорошо знающий синтаксис, циклы, структуры на rust. Простая программа, состоящая из этих базовых компонентов. Большие массивы - несколько массивов под 50 млн. Возможно нужно будет поставить пакет rand. Хорошо если есть github где можно посмотреть что у вас есть хотя бы pet проект из 1 файла, где есть циклы и структуры. Если боитесь что я возьму ваш проект и переделаю - в интернете полно информации по циклам и структурам на rust, но у меня exeшник так и не запустился - stack overflow в main thread.

Если алгоритм, условия и т.д. не понятны - не стесняйтесь, пишите вопросы, отвечу на все вопросы.

Необходимо написать программу на Rust. Алгоритм примерный, во вложении точный алгоритм в программе на Java. Могу предоставить исходники на Go, C++. Цель написать точно такую же программу на Rust, скомпилировать и запустить. Запуск под Linux Ubuntu 20.04, rust из стандартных пакетов.

Алгоритм:
- есть константа MAX_COUNT = 50_000_000
- есть структура T, поля idx - номер по порядку int64, n - рандомное число от 0 до 100.
- есть структура Result, поля idx1 int64 [MAX_COUNT], idx2 int64 [MAX_COUNT].
- в main создается 2 массива из 50 млн структур T называется data1, data2. Создается структура Result, называется result.
- в циклах (2 отдельных цикла) data1, data2 заполняются idx - номер по порядку, n - случайное число от 0 до 100. Вся суть программы проверка скорости циклов. По-этому важно чтобы везде где в задании написано "в циклах" - это были именно циклы. Если циклы описаны отдельными пунктами, то и в программе они должны быть отдельными циклами.
- в цикле заполняется структура result - idx1 - нулями, idx2 - нулями.
- запускается цикл n от 0 до < 10. Дальнейшие шаги внутри этого цикла.
- создается переменная с int64 = 0, создаются 2 переменные find, find2 int64, заполняются случайными числами от 0 до 100, создается переменная count = 0 int64.
- начинается подсчет времени выполнения циклов.
- проходится цикл по data1, если n = find, то в result.idx1 ставится data1.idx. Проще говоря находим числа n, которые равны find и запоминаем idx. "c" увеличивается на 1 при каждой итерации этого цикла.
- аналогично цикл по data2. "c" увеличивается на 1 при каждой итерации этого цикла.
- проходим по массиву result, находим все индексы, где и idx1 != 0 и idx2 != 0, т.е. грубо говоря нашли число и в data1 и в data2 по одному и тому же индексу. Если такое число нашли, то count увеличивается на 1. "c" увеличивается на 1 при каждой итерации этого цикла.
- заканчивается подсчет времени. Вычисляется дельта в миллисекундах.
- на экран выводятся: c, find, count, время в мс.
- цикл n завершается.

Результат: исходники программы на rust, если надо Cargo.toml файл и что еще необходимо для сборки, инструкция по сборке.
Файлы
Отзывы
R50 b96c911027a83b8e559ccb59eca7c350
Заказчик
Заказывал небольшую программу на Rust - цель протестировать скорость работы в сравнении с Golang. Фрилансер справился, быстро сделал программу, помог ее запустить. Спасибо.
2 года назад
Приятный в общении заказчик с ясным ТЗ. Рекомендую к сотрудничеству!
2 года назад