25
Сен
2021

Случайные числа на СИ и цикл в Bash

У меня есть собственная программа на си печатающая в стандартный вывод случайные числа от 0 до заданного в аргументе числа.random_num:

<time.h>

srand(time(NULL)); 
int rnd = rand() % number;

Там еще много кода, но это то, чем я обеспечиваю свой рандом.

Еще есть такой скрипт:

#!/bin/bash

for (( count=1; count<100; count++ ))
    do
        ARG=$(./random_num 4);
        if [[ "$(./a.out $ARG | ./checker_Mac $ARG)" =~ "OK" ]]; then
            echo $ARG
        else
            echo "KO"
        fi
    done

a.out - моя программа по сортировке этих самых случайных чисел. Она выдает набор команд которыми можно отсортировать их. checker_Mac - чекер на правильность сортировки.

Вопрос: я хотел бы этим скриптом проверить правильность моей программы a.out, но запустив скрипт на 100 итераций проверяются всего 2-3 набора чисел. То ли из-за того что программа random_num использует время и быстро работающий скрипт при каждом ее запуске в переменную ARG кладет одни и те же числа, то ли скрипт не запускает random_num при каждой итерации цикла. Я не могу разобраться. Как мне сделать что бы на 1 итерацию скрипта шла проверка одного набора чисел?

Фото с выводом программ

Источник: https://ru.stackoverflow.com/questions/1332161/%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B5-%D1%87%D0%B8%D1%81%D0%BB%D0%B0-%D0%BD%D0%B0-%D0%A1%D0%98-%D0%B8-%D1%86%D0%B8%D0%BA%D0%BB-%D0%B2-bash

Тебе может это понравится...

Добавить комментарий