Моё меню Общее меню Сообщество Правила форума Все прочитано
Вернуться   uForum.uz > ИКТ и телеком > IT-индустрия > Софт > Программирование > Pascal, Delphi & Builder
Сообщения за день Поиск
Знаете ли Вы, что ...
...инструкция по установке аватара описана в Правилах форума.
<< Предыдущий совет - Случайный совет - Следующий совет >>

Pascal, Delphi & Builder Вопросы программирования касающиеся Pascal и Delphi


Ответить

 
Опции темы Опции просмотра
Старый 14.05.2009 16:52   #31  
Аватар для Наташа
Оффлайн
Сообщений: 1,306
+ 885  788/480
– 0  51/26

Germany
Оффтоп:
я тож придумала закономерность -она другая чем у
Nadir Zaitov, даж доказала что будет функционировать... но очень уж сложна в реализации алгоритма...
Ответить 
Старый 14.05.2009 21:27   #32  
Real ID Group uParty Member Ultimate
Аватар для Nadir Zaitov
Оффлайн
Сообщений: 13,210
+ 4,958  9,176/3,940
– 170  137/105

UzbekistanОтправить сообщение для Nadir Zaitov с помощью Skype™
Код:
Program Perebor;
uses WinDos, WInCrt;
Const C = 4;
var A: array[1..C] of Integer;
    P: array[1..C] of Integer;
    X: array[1..C] of Integer;
    I,J:Integer;
Procedure swp(N,S:Integer);
var T:Integer;
begin
    T:=X[N];
    X[N]:=X[N+S];
    X[N+S]:=T;
    For T:=1 to C do P[X[T]]:=T;
end;
begin
   For I:=1 to C do
       begin
            a[i]:=1;
            P[i]:=i;
            X[i]:=i;
       end;
   Writeln ('Begin');
   write ('X:');
      for i:=1 to C do
          write (X[i]);
      writeln;
   while a[C]=1 do
   begin
      for i:=1 to C do
          case A[i] of
           -1:if P[i]=1 then a[i]:=-a[i] else if X[P[i]-1]<X[P[i]] then a[i]:=-a[i] else begin swp(P[i],-1); break end;
            1:if P[i]=C then a[i]:=-a[i] else if X[P[i]+1]<X[P[i]] then a[i]:=-a[i] else begin swp(P[i],+1); break end;
          end; {Case}
      If i=C then swp(P[i],+1);
      write ('X:');
      for i:=1 to C do
          write (X[i]);
      writeln;
   end;
end.
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.

Последний раз редактировалось Nadir Zaitov; 14.05.2009 в 21:52.
Ответить 
Старый 14.05.2009 21:35   #33  
Real ID Group uParty Member Ultimate
Аватар для Nadir Zaitov
Оффлайн
Сообщений: 13,210
+ 4,958  9,176/3,940
– 170  137/105

UzbekistanОтправить сообщение для Nadir Zaitov с помощью Skype™
Оффтоп:
Цитата:
Сообщение от Nadir Zaitov Посмотреть сообщение
Код:
Использовал BPW (см. uses), так как под Вистой ни Дельфи 7, ни Turbo Pascal не рабоают, а при эммуляции DOS приходится работать в очень маленьком окне - ноутбук, блин!
При изменении параметра С (длинна подстановок) получим ВСЕ подстановки всего ровно одной перестановкой соседних чисел. НО КАК Я ЗАПАРИЛСЯ! Мой вариант (только для иллюстрации) печатает первую перестановку дважды , можно убрать либо сверху либо снизу, но я оставил для наглядности и красоты результата. Больше 9 не делать - все слипнится и нужно будет вставлять пробел... но в этом случае считать будет долго и нудно. 9!=362880 - столько подстановок будет выведено на экран!
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.

Последний раз редактировалось Nadir Zaitov; 14.05.2009 в 21:41.
Ответить 
Старый 14.05.2009 21:45   #34  
Real ID Group uParty Member Ultimate
Аватар для Nadir Zaitov
Оффлайн
Сообщений: 13,210
+ 4,958  9,176/3,940
– 170  137/105

UzbekistanОтправить сообщение для Nadir Zaitov с помощью Skype™
Цитата:
Сообщение от DarkUser Посмотреть сообщение
похоже, но закономерность не уловил...
Закономерность такая - сначала плавает единичка (проследите ее позицию), затем в "остатке" плавает двойка, в остатке от единички и двойки "плавает" тройка и т.д. Плавает - значит переберает все возможные позиции. Остаток от единички - это когда 1-ка пробежала все позиции, то смотрим на последовательность без единички.
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.

Последний раз редактировалось Nadir Zaitov; 14.05.2009 в 21:47.
Ответить 
Старый 14.05.2009 21:50   #35  
Real ID Group uParty Member Ultimate
Аватар для Nadir Zaitov
Оффлайн
Сообщений: 13,210
+ 4,958  9,176/3,940
– 170  137/105

UzbekistanОтправить сообщение для Nadir Zaitov с помощью Skype™
Цитата:
Сообщение от Наташа Посмотреть сообщение
я тож придумала закономерность -она другая чем у Nadir Zaitov, даж доказала что будет функционировать... но очень уж сложна в реализации алгоритма...
Нарисуйте пожалуйста результат в ручную для длинны перестановок в 4 цифры. Мне интересно посмотреть, если можно.
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.
Ответить 
Реклама и уведомления
Старый 14.05.2009 22:34   #36  
Аватар для Наташа
Оффлайн
Сообщений: 1,306
+ 885  788/480
– 0  51/26

Germany
Цитата:
Сообщение от Nadir Zaitov Посмотреть сообщение
Нарисуйте пожалуйста результат в ручную для длинны перестановок в 4 цифры. Мне интересно посмотреть, если можно.
1234
1243
1423
1324
1342
1432
4132
3142
3124
4123
2143
2134
2314
2413
4213
3214
3412
4312
4321
3421
3241
4231
2431
2341
как видно у меня не заканчиваеться тем же числом, но в этом и нет необходимости поскольку будь у нас например еще одно число 6 то его просто можно добавить с переди последовательности затем переписать последовательность в обратном порядке и вставить число 6 вторым номером затем сново в обратном порядке а число 6 3м номером и т.д. затем можно добавить таким образом еще числа.... сколько угодно...))

и алгоритм уже есть, ток паскаля не знаю -как соберусь -нарисую блок схему...)

Последний раз редактировалось Наташа; 14.05.2009 в 22:55.
Ответить 
"+" от:
Старый 15.05.2009 00:31   #37  
Real ID Group uParty Member Ultimate
Аватар для Nadir Zaitov
Оффлайн
Сообщений: 13,210
+ 4,958  9,176/3,940
– 170  137/105

UzbekistanОтправить сообщение для Nadir Zaitov с помощью Skype™
Цитата:
Сообщение от Наташа Посмотреть сообщение
и алгоритм уже есть, ток паскаля не знаю -как соберусь -нарисую блок схему...)
Этот алгоритм мне тоже приходил в голову, когда говорил о перестановках, однако в последнем алгоритме, что я представил каждая следующая подстановка вычисляется из предыдущей перестановкой двух соседних чисел. У меня такого скачка как у Вас: 1423 --> 1324 нет .
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.
Ответить 
Старый 15.05.2009 00:34   #38  
Real ID Group uParty Member Ultimate
Аватар для Nadir Zaitov
Оффлайн
Сообщений: 13,210
+ 4,958  9,176/3,940
– 170  137/105

UzbekistanОтправить сообщение для Nadir Zaitov с помощью Skype™
Предлагаю подумать над другим алгоритмом перебора перестановок.
Нужно придумать "функцию", которая одну перестановку превращает в другую и если ее много много раз (N! раз) применять, то она оббежит все перестановки.
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.
Ответить 
Старый 15.05.2009 01:09   #39  
Real ID Group uParty Member Ultimate
Аватар для Nadir Zaitov
Оффлайн
Сообщений: 13,210
+ 4,958  9,176/3,940
– 170  137/105

UzbekistanОтправить сообщение для Nadir Zaitov с помощью Skype™
Обращение к модераторам:
Уважаемые модераторы, возможно ли перенести тему в "Разминку для мозгов", так как топикстартер пропал, а тема получилась в стиле "реши задачку", а не "нюансы/возможности Паскаля".
__________________
Тот факт, что медуза выжила 650 миллионов лет без мозгов, даёт надежду многим.
Ответить 
"+" от:
Старый 15.05.2009 13:12   #40  
Аватар для Наташа
Оффлайн
Сообщений: 1,306
+ 885  788/480
– 0  51/26

Germany
Оффтоп:
Цитата:
Сообщение от Nadir Zaitov Посмотреть сообщение
Этот алгоритм мне тоже приходил в голову, когда говорил о перестановках, однако в последнем алгоритме, что я представил каждая следующая подстановка вычисляется из предыдущей перестановкой двух соседних чисел. У меня такого скачка как у Вас: 1423 --> 1324 нет
ну, да, все как всегда -опять условие прошляпила..))
Ответить 
Ответить




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Advertisement System V2.5 By Branden
OOO «Единый интегратор UZINFOCOM»


Новые 24 часа Кто на форуме Новички Поиск Кабинет Все прочитано Вверх