получить все комбинации этого классического приложения для шариков

63
7

Я не знаю, есть ли название для этой проблемы, но это: есть 10 мячей (пронумерованы 1,2,3...10) и 3 коробки (по имени A,B,C). Мы хотим найти шары в любом из трех ящиков. Я хочу получить все возможные комбинации {(ball1,box A),(ball2,box A),(ball3, box B)...}, {(ball1,box B),(ball2,box A),(ball3, box B)...}, {(ball1,box C),(ball2,box B),(ball3, box B)...}... Как запрограммировать поиск всех комбинаций.

спросил(а) 2021-01-25T18:25:48+03:00 4 месяца, 2 недели назад
1
Решение
127

Это будет 3 ^ 10 комбинаций, так как нет никаких ограничений на количество шаров в коробке. Самая прямолинейная идея заключается в рекурсивном вычислении. простой код sudo выглядит следующим образом:

void Function(int Number_balls, int combs[10])
{
if(Number_balls == 10)
for(int i=0; i<10; i++)
printf("%d \t ", combs[i])
else{
combs[Number_balls] = 1;
Function(Number_balls++ , combs[10]);
combs[Number_balls] = 2;
Function(Number_balls++ , combs[10]);
combs[Number_balls] = 3;
Function(Number_balls++ , combs[10]);}
}
int main()
{
int combs[10];
int Number_balls=0;
combs[Number_balls] = 1;
Function(Number_balls++ , combs[10]);
combs[Number_balls] = 2;
Function(Number_balls++ , combs[10]);
combs[Number_balls] = 3;
Function(Number_balls++ , combs[10]);

}

ответил(а) 2021-01-25T18:25:48+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема