IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Генерация 9 значных чисел...
reill
сообщение 4.04.2003 4:26
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Задали преподователи задачку:
Придумать алгоритм записи девятизначного числа,в котором нет повторяющихся цифр и которое делится без остатка на 11.Число делится на 11,если разность между суммой цифр,стоящих на четных местах суммой -на нечетных делится на 11 или равна нулю. Определить минимальное и максимальное среди этих чисел.
Минимальное: 102347586; S1=1+2+4+5+6=18; S2=0+3+7+8=18.

Я тут пару часиков посидел вот катала начало:

Код
program cz;
type  mn=set of byte;
masiv=array[1..9] of string;
var cch: masiv;
cn: masiv;
c:longint;
obr: string;
i:byte;
function mnog(var b: string): boolean;
var f,z integer;
begin
val(b,f,z);
for i:=0 to 9
begin
if f=i then
end;
begin
randomize;
c:=trunc(random*1000000000);
str(c,obr);
for i:=1 to 9 do
begin
if odd(i) then
begin
cn[i]:=copy(obr,i,1);
writeln('cn[',i,']:=',cn[i]);
end
else
begin
cch[i]:=copy(obr,i,1);
writeln('cch[',i,']:=',cch[i]);
end
end;

end.


Но чего то мне этот алгоритм не нравится у кого есть другие идеи буду рад обсудить....

Сообщение отредактировано: volvo - 17.12.2004 11:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
GLuk
сообщение 10.04.2003 15:29
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Данная прога генерить все комбинации из набора "23456789", потом просто подставляется единица, описанная как FN. Чтобы получить действительно все комбинации для "123456789", единицу надо 9 раз поменять с другими цифрами. Думаю теперь уж доделаешь сам smile.gif

А комбинаций кстати всего - 362.880 для одного набора, а для девяти 3.265.920. Поначалу не так посчитал, через факториал надобно...

Сразу оговорюсь - алгоритм опять таки страшный, но рабочий и считает в 327.987 раз быстрее, чем предыдущий...

Код
Uses
   Crt;
Const
    S:array[1..9] of String = ('123456789','103456789','120456789',
                               '123056789','123406789','123450789',
                               '123456089','123456709','123456780');
Function Fact(N:LongInt):LongInt;
var
  T:LongInt;
  i:LongInt;
begin
    T:=1;
    For i:=1 to N do T:=T*i;
    Fact:=T;
end;
Const
    O:String = '6789';
    L:String = '2345';
    FN:Char  = '1';
    K:Char = #1;
    N=3;
Var
  T,i,Sum1,Sum2:LongInt;
  j:Byte;
  F:Text;
  V:LongInt;
  Code:Integer;
Procedure Form2;
var
  i,j:Integer;
  Tm:String;
begin
    Tm:=L;
    For j:=1 to N+1 do
    begin
    For i:=1 to 3 do
    begin
         Val(FN+L+O,V,Code);
         If V MOD 11 = 0 then WriteLn(F,V);
         K:=L[N+1];
         L[N+1]:=L[N];
         L[N]:=K;
         Val(FN+L+O,V,Code);
         If V MOD 11 = 0 then WriteLn(F,V);
         If Odd(i) then
         begin
              K:=L[N+1];
              L[N+1]:=L[N];
              L[N]:=K;
         end;
         K:=L[2];
         L[2]:=L[N+1];
         L[N+1]:=K;
    end;
    L:=Tm;
    K:=L[N-j+2];
    L[N-j+2]:=L[1];
    L[1]:=K;
    end;
end;
Procedure Form1;
var
  i,j:Integer;
  Tm:String;
begin
    Tm:=O;
    For j:=1 to N+1 do
    begin
    For i:=1 to 3 do
    begin
         Form2;
         K:=O[N+1];
         O[N+1]:=O[N];
         O[N]:=K;
         Form2;
         If Odd(i) then
         begin
              K:=O[N+1];
              O[N+1]:=O[N];
              O[N]:=K;
         end;
         K:=O[2];
         O[2]:=O[N+1];
         O[N+1]:=K;
    end;
    O:=Tm;
    K:=O[N-j+2];
    O[N-j+2]:=O[1];
    O[1]:=K;
    end;
end;

Begin
    ClrScr;
    Assign(F,'output.txt');
    ReWrite(F);
    Form1;
    Close(F);
End.


Сообщение отредактировано: volvo - 17.12.2004 11:46
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
reill   Генерация 9 значных чисел...   4.04.2003 4:26
GLuk   Re: Генерация 9 значных чисел...   4.04.2003 19:10
reill   Re: Генерация 9 значных чисел...   5.04.2003 7:34
GLuk   Re: Генерация 9 значных чисел...   6.04.2003 16:40
reill   Re: Генерация 9 значных чисел...   7.04.2003 5:36
GLuk   Re: Генерация 9 значных чисел...   7.04.2003 5:46
reill   Re: Генерация 9 значных чисел...   8.04.2003 4:48
reill   Re: Генерация 9 значных чисел...   8.04.2003 4:55
GLuk   Re: Генерация 9 значных чисел...   8.04.2003 5:28
reill   Re: Генерация 9 значных чисел...   8.04.2003 13:21
GLuk   Re: Генерация 9 значных чисел...   8.04.2003 13:27
reill   Re: Генерация 9 значных чисел...   8.04.2003 15:32
GLuk   Re: Генерация 9 значных чисел...   8.04.2003 16:48
Ivs   Re: Генерация 9 значных чисел...   8.04.2003 17:05
GLuk   Re: Генерация 9 значных чисел...   8.04.2003 17:28
reill   Re: Генерация 9 значных чисел...   9.04.2003 4:57
GLuk   Re: Генерация 9 значных чисел...   9.04.2003 5:51
reill   Re: Генерация 9 значных чисел...   9.04.2003 12:02
GLuk   Re: Генерация 9 значных чисел...   9.04.2003 13:17
reill   Re: Генерация 9 значных чисел...   9.04.2003 16:27
GLuk   Re: Генерация 9 значных чисел...   9.04.2003 17:11
reill   Re: Генерация 9 значных чисел...   9.04.2003 19:51
GLuk   Re: Генерация 9 значных чисел...   10.04.2003 5:20
reill   Re: Генерация 9 значных чисел...   10.04.2003 5:40
GLuk   Re: Генерация 9 значных чисел...   10.04.2003 15:29
reill   Re: Генерация 9 значных чисел...   11.04.2003 11:49
GLuk   Re: Генерация 9 значных чисел...   11.04.2003 12:24
reill   Re: Генерация 9 значных чисел...   11.04.2003 21:32
reill   Re: Генерация 9 значных чисел...   11.04.2003 21:34
GLuk   Re: Генерация 9 значных чисел...   12.04.2003 8:59
reill   Re: Генерация 9 значных чисел...   13.04.2003 10:43
GLuk   Re: Генерация 9 значных чисел...   13.04.2003 11:41
reill   Re: Генерация 9 значных чисел...   14.04.2003 12:41
reill   Re: Генерация 9 значных чисел...   15.04.2003 20:27
GLuk   Re: Генерация 9 значных чисел...   19.04.2003 4:19
reill   Re: Генерация 9 значных чисел...   23.04.2003 5:01
GLuk   Re: Генерация 9 значных чисел...   23.04.2003 15:59
reill   Re: Генерация 9 значных чисел...   24.04.2003 4:14


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 30.07.2025 9:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"