public static int rand7() {

int vals[][] = {

{ 1, 2, 3, 4, 5 },

{ 6, 7, 1, 2, 3 },

{ 4, 5, 6, 7, 1 },

{ 2, 3, 4, 5, 6 },

{ 7, 0, 0, 0, 0 }

};

int result = 0;

while (result == 0)

{

int i = rand5();

int j = rand5();

result = vals[i-1][j-1];

}

return result;

}

Another approach is

public static int rand7() {

while (true) {

int num = 5 * (rand5() - 1) + (rand5() - 1);

if (num < 21)

return (num % 7 + 1);

}

}

## No comments:

Post a Comment