Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задачка / 11 сообщений из 11, страница 1 из 1
24.03.2012, 00:27
    #37720985
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
Есть целочисленный массив. Надо представить его в виде "числа" в котором каждый элемент массива это число обозначающее максимальную цифру для соответствующей позиции "числа". Надо "просчитать" от нуля до максимума.

Например, если имеется массив: {0, 2, 1, 4, 0}
Надо напечатать:
0, 0, 0, 0, 0
0, 0, 0, 1, 0
0, 0, 0, 2, 0
0, 0, 0, 3, 0
0, 0, 0, 4, 0
0, 0, 1, 0, 0
0, 0, 1, 1, 0
0, 0, 1, 2, 0
0, 0, 1, 3, 0
0, 0, 1, 4, 0
0, 1, 0, 0, 0
0, 1, 0, 1, 0
0, 1, 0, 2, 0
0, 1, 0, 3, 0
0, 1, 0, 4, 0
0, 1, 1, 0, 0
0, 1, 1, 1, 0
0, 1, 1, 2, 0
0, 1, 1, 3, 0
0, 1, 1, 4, 0
0, 2, 0, 0, 0
0, 2, 0, 1, 0
0, 2, 0, 2, 0
0, 2, 0, 3, 0
0, 2, 0, 4, 0
0, 2, 1, 0, 0
0, 2, 1, 1, 0
0, 2, 1, 2, 0
0, 2, 1, 3, 0
0, 2, 1, 4, 0
...
Рейтинг: 0 / 0
24.03.2012, 01:23
    #37721030
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
Грубо говоря это последовательность чисел в смешанной
позиционной системе счисления.
...
Рейтинг: 0 / 0
24.03.2012, 03:53
    #37721094
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
А на каком языке-то?
И вообще, это полное множество состояний... Считается обычно рекурсией.
Если надо оптимизировать (или есть условия оптимизации) - то по скорости будет будет быстрее через ДП.
...
Рейтинг: 0 / 0
24.03.2012, 11:10
    #37721183
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
Код: pascal
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.
type
  TMyArray= array of integer;

function MyNext(var Point, Bound: TMyArray): boolean;
var
  i: integer;
begin;
  for i:=Length(Point)-1 downto 0 do begin;
    if Point[i]<Bound[i] then begin;
      inc(Point[i]);
      Result:=true;
      exit;
      end
    else Point[i]:=0;
    end;
  Result:=false;
  end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Point, Bound: TMyArray;
begin;
  SetLength(Point,5);
  Point[0]:=0;
  Point[1]:=0;
  Point[2]:=0;
  Point[3]:=0;
  Point[4]:=0;

  SetLength(Bound,5);
  Bound[0]:=0;
  Bound[1]:=2;
  Bound[2]:=1;
  Bound[3]:=4;
  Bound[4]:=0;

  repeat;
    Memo1.Lines.Add(Format('%d%d%d%d%d',[Point[0],Point[1],Point[2],Point[3],Point[4]]));
    until not MyNext(Point,Bound);
  end;
...
Рейтинг: 0 / 0
24.03.2012, 11:41
    #37721197
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
White Owl,

а, так сказать, "средствами баз данных" - нипайдёт ?
...
Рейтинг: 0 / 0
24.03.2012, 13:00
    #37721244
kDnZP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
White Owl, лехко

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
; WITH cte AS (
SELECT 0 a, 2 b, 1 c, 4 d, 0 e
)
SELECT t1.number a, t2.number b, t3.number c, t4.number d, t5.number e
FROM cte t
JOIN master..spt_values t1 ON t1.number<=t.a AND t1.type='p'
JOIN master..spt_values t2 ON t2.number<=t.b AND t2.type='p'
JOIN master..spt_values t3 ON t3.number<=t.c AND t3.type='p'
JOIN master..spt_values t4 ON t4.number<=t.d AND t4.type='p'
JOIN master..spt_values t5 ON t5.number<=t.e AND t5.type='p'
ORDER BY 1,2,3,4,5
...
Рейтинг: 0 / 0
24.03.2012, 13:12
    #37721255
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
with  
a as (select 0 as dig union all select dig+1 from a where dig<0),
b as (select 0 as dig union all select dig+1 from b where dig<2),
c as (select 0 as dig union all select dig+1 from c where dig<1),
d as (select 0 as dig union all select dig+1 from d where dig<4),
e as (select 0 as dig union all select dig+1 from e where dig<0)

select a.dig, b.dig, c.dig, d.dig, e.dig
from a, b, c, d, e
order by 1, 2, 3, 4, 5
...
Рейтинг: 0 / 0
24.03.2012, 21:52
    #37721549
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
AndreTMА на каком языке-то?Да на каком хочешь, на таком и делаешь :)
Мне просто сама задача понравилась. В принципе довольно простая, но оптимальный алгоритм ее решения не самый очевидный.
...
Рейтинг: 0 / 0
24.03.2012, 21:56
    #37721551
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
По счастливым билетикам напомнилось.
...
Рейтинг: 0 / 0
25.03.2012, 03:39
    #37721687
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
maytonПо счастливым билетикам напомнилось.Неа. Источник задачи - scheduler с приоритетными очередями.
...
Рейтинг: 0 / 0
25.03.2012, 10:08
    #37721725
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка
White Owl,

это совсем другая опера.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задачка / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]