Другие языки программирования и технологии

Нужна программа для заполнения таблицы 9*2, чтобы в ней не было повторяющихся столбцов на языке lua (можно на С++)

Function lua_do()
coord={}
for i=1, 9 do
coord[i]={}
for j=1, 2 do
coord[i][j]=math.random(5)
end
end
end

В эту функцию нужно добавить условие, чтобы после заполнения таблицы программа проверяла, есть ли в таблице повторяющиеся столбцы и подбирала новый набор чисел, пока в таблице совсем не будет повторов столбцов. Например:
12314
52451
Неправильно, потому что есть столбцы 1,5
Когда я пытаюсь добавлять условия, выполняющие проверку на наличие совпадающих двух координат, у меня lua ругается
2 на 9 :
#include < iostream >
#include < cmath >
#include < set >
#include < algorithm >
#pragma GCC optimize("Ofast")

using ll = long long;
using ld = long double;

using namespace std;

const ll n = 2, m = 9;
ll a[n][m];
set used;

void put_cur(ll i){
ll x,y;
x = rand() % 9 + 1;
y = rand() % 9 + 1;
while(used.find({x,y}) != used.end()){
x = rand() % 9 + 1;
y = rand() % 9 + 1;
}
a[0][i] = x;
a[1][i] = y;
used.insert({x,y});
}
void print_matrix(){
for(ll i = 0; i < n; i++){
for(ll j = 0; j < m; j++)
cout << a[i][j] << " ";
cout << "\n";
}
}
signed main() {
srand(time(NULL));
for(ll i = 0; i < m; i++)
put_cur(i);
print_matrix();
}

9 на 2:
#include < iostream >
#include < cmath >
#include < set >
#include < vector >
#include < algorithm >
#pragma GCC optimize("Ofast")

using ll = long long;
using ld = long double;

using namespace std;

const ll n = 9, m = 2;
ll a[n][m];

void fill(){
for(ll i = 0; i < n; i++)
for(ll j = 0; j < m; j++)
a[i][j] = rand() % 100 + 1;
}

bool check(){
set used;
for(ll i = 0; i < m; i++){
for(ll j = 0; j < n; j++){
if(used.find(a[j][i]) != used.end())
return false;
used.insert(a[j][i]);
}
}
return true;
}
void print_matrix(){
for(ll i = 0; i < n; i++){
for(ll j = 0; j < m; j++)
cout << a[i][j] << " ";
cout << "\n";
}
}
signed main() {
srand(time(NULL));
fill();
while(!check())
fill();
print_matrix();
}
Владимир Трапезников
Владимир Трапезников
517
Лучший ответ
"Когда я пытаюсь добавлять условия, выполняющие проверку на наличие совпадающих двух координат, у меня lua ругается" - Не видя кода тяжело сказать что же не так.
пиши отдельную функцию проверки Цикл в цикле перебирай ячейки. Если совпадения нет то возврат ложь... если есть (coord[i][j]=math.random(5)) - в цикл "Пока"