Итак, моя задача состоит в том, чтобы произвести случайную генерацию веса и прибыли для партий предметов (для задачи о рюкзаке 0/1). Я представил партии в массивах в пакете []. Моя проблема в том, что:
rand() не генерирует уникальные случайные значения во втором цикле for. Это из-за вложенных циклов?
Второй цикл for присваивает значения p[j] и w[j], но, как следует из j, при каждой итерации присвоение значений начинается с j, как я могу каждый раз начинать его с 0?
Выход:
| 231 |25
| 231 |25
| 231 |25
| 231 |25
| 0 | 0
|19 | 4
|19 | 4
|19 | 4
|19 | 4
|19 | 4
main(){
srand(time(NULL));
int i, j, t;
int batch[] = { 4, 5 };
int sizeOfBatch = sizeof(batch) / sizeof(batch[0]);
for (i = 0; i < sizeOfBatch ; i++){
int *p = (int*)calloc(batch[i], sizeof(int));
int *w = (int*)calloc(batch[i], sizeof(int));
for (j = 0; j < batch[i]; j++){
p[j] = rand() % 500;
printf("\n| %d ", p[i]);
w[j] = rand() % 100;
printf("| %d ", w[i]);
}