Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Анжела олеговна
4 / 3 / 0
Регистрация: 14.01.2010
Сообщений: 58
1

Последовательность Хемминга

28.01.2010, 17:18. Просмотров 2514. Ответов 13

последовательность Хемминга образуют натуральные числа не имеющие других простых делителей, кроме 2,3,5. найти первые А чисел данной последовательности.
1
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2010, 17:18
Ответы с готовыми решениями:

Последовательность Хемминга
последовательность Хемминга образуют натуральные числа не имеющие других...

Код Хемминга
Определить положение одиночной ошибки в искаженном двоичном k-битном слове кода...

Код Хемминга
Определить положение одиночной ошибки в искаженном двоичном k-битном слове кода...

Считать последовательность цифр и преобразовать ее в последовательность соответствующих латинских букв
Все что сам смог написать в Паскале Program lit; Var A,N:char; Begin...

Задана последовательность из N чисел. Найти самую длинную последовательность, обладающую данным свойством
Прошу помощи мастеров решить ОДНУ задачкУ: 1) Задана последовательность из N...

13
Puporev
Модератор
54585 / 42091 / 29061
Регистрация: 18.05.2008
Сообщений: 99,290
28.01.2010, 17:23 2
должна исключать те числа которые не деляться на 2, 3 и 5
Я Вам написал в программе в этой теме
http://www.cyberforum.ru/pascal/thread89835.html
Pascal
1
if ((a mod 2=0)or(a mod 3=0)or(a mod 5=0)) and Hemming(a) then
Это значит что подходят те числа, которые делятся на 2, или 3, или 5 и не делятся на другие простые числа.
Что Вам еще нужно, для чего Вы нарушаете правила и создаете клон своей темы?
1
Eugeniy
3119 / 1312 / 156
Регистрация: 19.12.2009
Сообщений: 1,808
28.01.2010, 17:30 3
Puporev, Вы не заметили, что человек среди таких чисел ищет А числа.

Добавлено через 1 минуту
http://renuar911.narod.ru/A_numbers.mht
1
Puporev
Модератор
54585 / 42091 / 29061
Регистрация: 18.05.2008
Сообщений: 99,290
28.01.2010, 17:32 4
Eugeniy, А Вы программу по моей ссылке смотрели? Прогоняли?
1
Eugeniy
3119 / 1312 / 156
Регистрация: 19.12.2009
Сообщений: 1,808
28.01.2010, 17:39 5
Puporev, не сомневаюсь, что она работает, просто в задании сказано, что
среди таких чисел, которые не имеют других простых делителей, кроме 2,3,5 надо найти
А числа. Конечно мне легко судить не предлагая кода, просто Ваша программа реализует,
только первую половину задания.
1
Puporev
Модератор
54585 / 42091 / 29061
Регистрация: 18.05.2008
Сообщений: 99,290
28.01.2010, 17:49 6
Eugeniy, Моя программа выводит по условию, только не А первых чисел, а N первых чисел Хэмминга. Это так принципиально?
1
Eugeniy
3119 / 1312 / 156
Регистрация: 19.12.2009
Сообщений: 1,808
28.01.2010, 17:50 7
Посмотрите эту ссылку
http://renuar911.narod.ru/A_numbers.mht
1
Puporev
Модератор
54585 / 42091 / 29061
Регистрация: 18.05.2008
Сообщений: 99,290
28.01.2010, 17:53 8
Это нехорошая ссылка, мой браузер не хочет ее открывать.
1
Анжела олеговна
4 / 3 / 0
Регистрация: 14.01.2010
Сообщений: 58
28.01.2010, 18:01  [ТС] 9
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
Program sacet;
uses crt;
var a:array[1..100]of integer;
    i,j,n:integer;
    change:boolean;
begin
writeln('введите последовательность');
readln(n);
for i:=1 to n do
begin
for i:=1 to n do
begin
a[i]:=random(12);
write(a[i],' ');
end;
writeln;
writeln('ответ');
for i:=1 to n do
if (a[i] mod 2=0)or(a[i] mod 3=0)or(a[i] mod 5=0) then write(a[i],' ') else a[i]:=a[i+1];
repeat
change:=false;
for i:=2 to i+1 do
if i mod j=0 then
begin
write(a[i],' ');
change:=true;
end;
until not change;
end;
end.
Добавлено через 29 секунд
ее можно исправить как нибудь?
1
Eugeniy
3119 / 1312 / 156
Регистрация: 19.12.2009
Сообщений: 1,808
28.01.2010, 18:03 10
Странно у меня Kasper и всё нормально. Обидно поскольку у
меня есть ссылки только на другие форумы, а их здесь размещать нельзя.
1
Puporev
Модератор
54585 / 42091 / 29061
Регистрация: 18.05.2008
Сообщений: 99,290
28.01.2010, 18:20 11
Вот результат работы программы, тут немного лишнее. Выводятся первые N чисел, не имеющих простых делителей кроме 2,3,5.
0
Миниатюры
Последовательность Хемминга  
AndruxaIX
0 / 0 / 1
Регистрация: 04.04.2013
Сообщений: 31
01.09.2017, 21:09 12
Вот результат работы программы, тут немного лишнее. Выводятся первые N чисел, не имеющих простых делителей кроме 2,3,5.
Чё го то не то в конце. По крайней мере 1546 делится на 773 будет 2.
Если что есть такой вариант, но фиг его знает как по оптимизации.
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
42
43
44
45
46
47
48
49
50
51
52
procedure TForm1.Button3Click(Sender: TObject);
var
nado,est,nsh,el,kol,p,l,m:integer;
begin
a[1] := 2;
a[2] := 3;
a[3] := 5;
nado:= StrToInt(Edit1.Text);
est:=3;                         
nsh:=3;
el:=1;
kol :=3;
for l:=1 to nado do begin
  a[kol+1] := a[el]*2;
  a[kol+2] := a[el]*3;
  a[kol+3] := a[el]*5;
    kol := kol + 3;
    i:= 1;
 
m:=kol;
i:=1;
while i<=m do
 begin
  j:=i+1;
  while j<=m do
   begin
    if a[j]=a[i] then
     begin
      for k:=j to m-1 do
      a[k]:=a[k+1];
      m:=m-1;
      end
     else j:=j+1;
   end;
  i:=i+1;
 end;
 kol := m;
    for i:=1 to kol do
        for j:=1 to kol-i do
            if A[j]>A[j+1] then begin
                p:=A[j];
                A[j]:=A[j+1];
                A[j+1]:=P;
            end;
 
el := el+1;
end;
 
edit2.Text := '';
for j:=1 to nado do
Edit2.Text:= Edit2.Text+' '+inttostr(a[j]);
end;
0
Puporev
Модератор
54585 / 42091 / 29061
Регистрация: 18.05.2008
Сообщений: 99,290
02.09.2017, 09:18 13
В моем коде по ссылке ошибка. В Турбо Паскаль нельзя писать a in [2,3,5] при числах не входящих в интервал 0..255. У меня был отключен Range Error и программа компилировалась с косяками.
Нужно написать так
Pascal
1
2
for i:=7 to n div 2 do
if Prost(i)and(i<>2)and(i<>3)and(i<>5) and(n mod i=0) then
Будет так
Последовательность Хемминга

В Паскль АВС все работает правильно и при неисправленном коде.
Последовательность Хемминга
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3894 / 2554 / 2082
Регистрация: 22.11.2013
Сообщений: 7,135
02.09.2017, 11:55 14
Лучший ответ Сообщение было отмечено bormant как решение

Решение

Пожалуй, решение на очередях должно быть пошустрее:
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
41
42
43
44
45
46
procedure Hamming(n: Integer); { max 1654 for Longint }
type
  TQueue = record
    h, t, c: Word; d: array [0..149] of Longint;
  end;
procedure init(var q: TQueue);
begin with q do begin
  h:=0; t:=High(d); c:=0;
end; end;
procedure push(var q: TQueue; e: Longint);
begin with q do begin
  {$IFOPT R+}if c=High(d) then RunError(201);{$ENDIF}
  Inc(c); Inc(t); if t>High(d) then t:=0; d[t]:=e;
end; end;
function  pop(var q: TQueue): Longint;
begin with q do begin
  {$IFOPT R+}if c=0 then RunError(201);{$ENDIF}
  pop:=d[h]; Dec(c); Inc(h); if h>High(d) then h:=0;
end; end;
function  front(var q: TQueue): Longint;
begin with q do begin
  {$IFOPT R+}if c=0 then RunError(201);{$ENDIF}
  front:=d[h]; 
end; end;
 
var
  q2, q3, q5: TQueue;
  p2, p3, p5, q: Longint;
begin
  init(q2); init(q3); init(q5);
  push(q2,1); push(q3,1); push(q5,1);
  while n>0 do begin
    p2:=front(q2)*2; p3:=front(q3)*3; p5:=front(q5)*5;
    if (p2<p3) and (p2<p5) then begin
      q:=p2; pop(q2); push(q2,q);
    end else if p3<p5 then begin
      q:=p3; pop(q3); push(q2,q); push(q3,q);
    end else begin
      q:=p5; pop(q5); push(q2,q); push(q3,q); push(q5,q);
    end;
    Dec(n); WriteLn(q);
  end;
end;
begin
  Hamming(1654);
end.
Добавлено через 2 минуты
Если 1 входит в последовательность первым членом, добавить перед строкой 32:
Pascal
32
  Dec(n); WriteLn(1);
0
02.09.2017, 11:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2017, 11:55

Если последовательность чисел а1..а12 упорядоченны по условию а1=<a2=<...=<a12, то оставить последовательность без изменений...
Если последовательность чисел а1..а12 упорядоченны по условию а1=&lt;a2=&lt;...=&lt;a12,...

Сгенерировать последовательность 100 случайных чисел Х. Сформировать новую последовательность, состоящую из элементов yi=yi-1+xi (y1=x1). Для получен
Сгенерировать последовательность 100 случайных чисел Х. Сформировать новую...

Дана последовательность целых чисел, за которой следует ноль. Определите, содержит ли последовательность числа, являющиеся степенями 2
Задача: Дана последовательность целых чисел, за которой следует ноль. ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru