5 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 10
1

Рекурсия: выстроить из костяшек домино правильную последовательность максимальной длины

20.01.2012, 20:31. Показов 4960. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
Задача:
Имеется N костей из нескольких комплектов домино. Выстроить из них правильную последовательность максимальной длины.
Например:
Пусть дано 6 костей: 1-1, 1-2, 4-4, 1-1, 2-3, 2-1.
Ответ будет 5.
Одна из правильных цепочек: 2-1, 1-1, 1-1, 1-2, 2-3.
Если у кого есть мысли как это можно реализовать, пожалуйста.
Буду премного благодарен любой помощи.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2012, 20:31
Ответы с готовыми решениями:

Задача "Домино": сгенерировать рандомно 28 костяшек домино
Надо написать код, который задавал бы рандомно 28 пар неповторяющихся элементов от 0 до 6. то есть...

Построение цепочки из костяшек домино
Берутся случайных N костяшек из одного набора домино (1<=N<=28). Задача состоит в том,...

Цепочка из N (2-3 тысячи шт примерно) костяшек домино
Буду рад, если натолкнете на мысль в какую сторону копать по поиску оптимизированного алгоритма для...

Проверить правильность расстановки костяшек домино
Дан массив из 22 целых чисел из интервала от 0 до 66, представляющих собой условные обозначения...

4
250 / 71 / 18
Регистрация: 10.04.2010
Сообщений: 532
Записей в блоге: 3
20.01.2012, 21:41 2
Не понятно Я так понял у тебя это будет Строковыми. Ну я даже не знаю попробуй наверное парсом строки по порядку. а там уже в условии а лучше в цикле смотри какие строки совпадают последним и первым числом.
1
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
22.01.2012, 00:10 3
Объявить новый тип данных
Delphi
1
2
3
4
5
type 
Kostyashka = record
 a, b: 0 .. 6;
    end;
 Domin_Arr = array [1 ..10] of Kostyashka;
Сделать эти переменные глобальными
Delphi
1
2
3
4
var
    n, i, max: byte;
    b, rer, rezult: Domin_Arr;
    busy: array [1 .. 10] of Boolean;
Сама программа
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
procedure TForm4.Button8Click(Sender: TObject);
   
  Function yes(z, x: Kostyashka): Boolean;
    begin
      if x.a = z.b then
        yes := true
      else
        yes := false;
    end;
   
  Procedure Built(j, k: byte);
    var
      v: byte; 
    begin
      busy[j] := true;
      rer[k] := b[j];
      For v := 1 to n do 
        if not busy[v] then
          if yes(rer[k], b[v]) then
            Built(v, k + 1);
           busy[j] := false; 
      if k > max then
      begin
        max := k;
        rezult := rer;
      end; 
    end;
 
  begin
    max := 0;
    n := strtoint(InputBox('Количество костяшек ', 'Максимально - 10', '5'));
    for i := 1 to n do
    begin
      b[i].a := strtoint(InputBox('Кость № ' + inttostr(i), 'Левая сторона',inttostr(random(7))));
      b[i].b := strtoint(InputBox('Кость № ' + inttostr(i), 'Правая сторона',inttostr(random(7))));
    end;
    for i := 1 to n do
       Built(i, 1);
     For i := 1 to max do { вывод результата }
      Memo1.Lines.Add(inttostr(rezult[i].a) + ':' + inttostr(rezult[i].b));
      end;
2
5 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 10
22.01.2012, 09:44  [ТС] 4
Z3oM, Большое спасибо. За отзыв и совет.
antikiler_, не ожидал такого ответа. Огромнейшее Вам спасибо.
0
5 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 10
22.01.2012, 10:14  [ТС] 5
На случай, если кому понадобится.
пс. чуть изменены ввод/вывод.
Вложения
Тип файла: zip Domino.zip (383.7 Кб, 134 просмотров)
1
22.01.2012, 10:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2012, 10:14
Помогаю со студенческими работами здесь

Цепочка из N (2-3 тысячи шт примерно) костяшек домино
Сразу оговорюсь, что не прошу готовый код =) Буду рад, если натолкнете на мысль в какую сторону...

Реализовать алгоритм заполнения костяшек домино значениями
Не знаю как реализовать алгоритм заполнения костяшек значениями. Изначально мне дано только M -...

Определить, возможно ли построить из заданных костяшек домино непрерывные цепочки
Совершенно не знаю синтаксис языка Prolog, но надо написать программу для зачёта. d(2,6) это...

Найти все цепи, которые можно составить из N костяшек, взятых из одного набора домино
Домино. Костяшки домино можно выложить в цепь, состыковывая их половинками с равными количествами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru