如何在数组中选择随机行?

问题描述 投票:0回答:1

我有遗传算法的项目。我用我的代码制作随机数组。随机两行选择我需要你的帮助。如果你能给我示例代码,因为我尝试了太多次但我找不到解决方案。

这是我的代码,

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 20 

void init(int a[SIZE][SIZE], int sum[SIZE]);
void dump(int a[SIZE][SIZE], int sum[SIZE]);

int main()
{
  int a[SIZE][SIZE]; 
  int sum[SIZE]; 
  init(a, sum);
  dump(a, sum);
  return 0;
}

void init(int a[SIZE][SIZE], int sum[SIZE])
{
  srand(time(NULL));
  int i,j;
  for (i=0; i<SIZE; ++i)
  {
    sum[i] = 0;
    for(j=0; j<SIZE; ++j)
    {
      a[i][j] = rand() % 2;
      sum[i] += a[i][j];
    }
  }
}
void dump(int a[SIZE][SIZE], int sum[SIZE])
{
  int i,j;
  for (i=0; i<SIZE; ++i)
  {
    for(j=0; j<SIZE; ++j)
      printf("% 2d", a[i][j]);
    printf(" sum = %d\n", sum[i]);
  }
}
c genetic-algorithm
1个回答
0
投票

你可以使用随机函数 - rand()

如果使用rand()% RAND_MAX,rand()将生成从0到RAND_MAX-1的随机数,即rand()%100将生成0到99之间的随机数。

最小和最大之间的随机数可以通过以下方式生成:

minimum + (rand() % (maximum – minimum + 1));

但是,无论何时需要生成随机数序列,都应该使用srand()函数。

© www.soinside.com 2019 - 2024. All rights reserved.