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

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

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

> Комбинации, Комбинации
alecsandr
сообщение 5.01.2010 19:20
Сообщение #1


Пионер
**

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

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


Не подскажите, как найти все комбинации фактариала числа? (Пример:4!= 1234, его комбинации, 1243,1342,1324 и т.д.)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 17)
TarasBer
сообщение 5.01.2010 19:33
Сообщение #2


Злостный любитель
*****

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

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


> фактариала

Шо цэ таке?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
alecsandr
сообщение 5.01.2010 20:01
Сообщение #3


Пионер
**

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

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


Фактариал он и в африке факториал
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 5.01.2010 20:33
Сообщение #4


Злостный любитель
*****

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

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


Цитата(alecsandr @ 5.01.2010 20:01) *

Фактариал он и в африке факториал


Перечитай эту фразу ещё раз.
Между прочим, в десятой версии оперы спеллчекер стоит по умолчанию. Так что поставь себе последнюю версию оперы, поможет.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
alecsandr
сообщение 5.01.2010 21:01
Сообщение #5


Пионер
**

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

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


Пример: Факториал 4!=1*2*3*4=24, понятно?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 5.01.2010 21:06
Сообщение #6


Злостный любитель
*****

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

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


Ага, всё-таки фактОриал.
Следующий вопрос: что такое комбинации факториала?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
alecsandr
сообщение 5.01.2010 21:24
Сообщение #7


Пионер
**

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

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


Нужна не комбинация факториала, а комбинация из цифр которые входят в факториал. Пример: 4!=1234, комбинация из 1234, 1342,1324 и т.д. Ясно?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.01.2010 21:27
Сообщение #8


Гость






Ты уже определись,
Цитата(alecsandr @ 5.01.2010 18:20) *
Пример:4!= 1234
, или все-таки
Цитата(alecsandr @ 5.01.2010 20:01) *
Пример: Факториал 4!=1*2*3*4=24
?

А вообще, ты же читал вот эту тему: Комбинаторика (не надо говорить, что нет, ты в ней свой вопрос задавал - он удален, задавай его где положено, а не в FAQ-е), там есть алгоритм генерации перестановок N элементного множества... Чем он тебя не устроил?
 К началу страницы 
+ Ответить 
alecsandr
сообщение 5.01.2010 22:57
Сообщение #9


Пионер
**

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

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


когда я добавляю, очистку экрана(clrscr) и readkey он пишет
"ERROR 3: неизвестный идентфикатор"

 Program perms;
var
i, j, h, n, k: integer;
a:array[0 .. 100] of integer; { массив для хранения перестановки }

{процедура вывода полученной перестановки}
procedure output;
var i: integer;
begin
writeln;
for i:=1 to n do write(a[i],' ');
end;

begin
clrscr;
write('количество элементов перестановки: '); readln(n);
fillchar(a, sizeof(a), 0);

{ ввод элементов начальной перестановки }
for i:=1 to n do a[i]:=i;

repeat
output; { вывод текущей перестановки }
i:=n;
while a[i-1]>a[i] do dec(i); { поиск скачка }
j:=i-1;
h:=a[j];
while a[i+1]>h do inc(i); { поиск первого меньшего элемента }
a[j]:=a[i]; a[i]:=h;
i:=j+1; k:=n;
while i<k do begin { перестановка ”хвоста” }
h:=a[i]; a[i]:=a[k]; a[k]:=h;
inc(i); dec(k)
end
until j=0;
readkey;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 5.01.2010 23:03
Сообщение #10


Злостный любитель
*****

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

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


А в помощь заглянуть, и узнать, что для цэлэрэсэкэрэ надо юзес цээрте - я должен?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
alecsandr
сообщение 6.01.2010 20:44
Сообщение #11


Пионер
**

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

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


А почему не хочет записывать в файл?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 6.01.2010 21:29
Сообщение #12


Злостный любитель
*****

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

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


Покажи код, которым ты пытаешься обратиться к файлу.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rian
сообщение 6.01.2010 21:52
Сообщение #13


Знаток
****

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

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


комбинации фактоиала?...
эт так что ли?
для n=3
n(n-1)(n-2)


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
alecsandr
сообщение 7.01.2010 0:01
Сообщение #14


Пионер
**

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

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



Program perms;
uses crt;
var
i, j, h, n, k: integer;
a:array[0 .. 100] of integer; { ìàññèâ äëÿ õðàíåíèÿ ïåðåñòàíîâêè }
out,:text;
{ïðîöåäóðà âûâîäà ïîëó÷åííîé ïåðåñòàíîâêè}
procedure output;
var i: integer;
begin
writeln;
for i:=1 to n do write(a[i],' ');
end;

begin
clrscr;
assign(out,'c:\ out.txt');
rewrite (out);
write('êîëè÷åñòâî ýëåìåíòîâ ïåðåñòàíîâêè: '); readln(n);
fillchar(a, sizeof(a), 0);
{ ââîä ýëåìåíòîâ íà÷àëüíîé ïåðåñòàíîâêè }
for i:=1 to n do a[i]:=i;
repeat
output; { âûâîä òåêóùåé ïåðåñòàíîâêè }
i:=n;
while a[i-1]>a[i] do dec(i); { ïîèñê ñêà÷êà }
j:=i-1;
h:=a[j];
while a[i+1]>h do inc(i); { ïîèñê ïåðâîãî ìåíüøåãî ýëåìåíòà }
a[j]:=a[i]; a[i]:=h;
i:=j+1; k:=n;
while i<k do begin { ïåðåñòàíîâêà ”õâîñòà” }
h:=a[i]; a[i]:=a[k]; a[k]:=h;
inc(i); dec(k);
write(out,'kombinacii');
end
until j=0;
close(out);
end.

она останавливается на выделенной строчке
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 7.01.2010 0:38
Сообщение #15


Злостный любитель
*****

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

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


Во-первых, ты выводишь не в файл out, а на экран.
Во-вторых, в чём эта остановка выражается? Зависает, или показывает ошибку?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.01.2010 1:23
Сообщение #16


Гость






Цитата
в чём эта остановка выражается?
С пробелом в названии файла? В невозможности его создать и аварийной остановке, как пить дать...
 К началу страницы 
+ Ответить 
alecsandr
сообщение 7.01.2010 16:06
Сообщение #17


Пионер
**

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

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


VOLVO как сделать чтобы твоя задача в "Комбинаторика" записывала в файл а не на экран? Она не хочет записывать(
Program perms;
uses crt;
var
i, j, h, n, k: integer;
a:array[0 .. 100] of integer; { массив для хранения перестановки }
out:text;
{процедура вывода полученной перестановки}
procedure output;
var i: integer;
begin
writeln;
for i:=1 to n do write(a[i],' ');
end;

begin
clrscr;
assign(out,'c:\out.txt');
rewrite (out);
write('количество элементов перестановки: '); readln(n);
fillchar(a, sizeof(a), 0);
{ ввод элементов начальной перестановки }
for i:=1 to n do a[i]:=i;
repeat
output; { вывод текущей перестановки }
i:=n;
while a[i-1]>a[i] do dec(i); { поиск скачка }
j:=i-1;
h:=a[j];
while a[i+1]>h do inc(i); { поиск первого меньшего элемента }
a[j]:=a[i]; a[i]:=h;
i:=j+1; k:=n;
while i<k do begin { перестановка ”хвоста” }
h:=a[i]; a[i]:=a[k]; a[k]:=h;
inc(i); dec(k);
write(out);
end
until j=0;
close(out);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.01.2010 16:31
Сообщение #18


Гость






Цитата
Она не хочет записывать(
А ты попроси, как следует:
{процедура вывода полученной перестановки}
procedure output;
var i: integer;
begin
writeln(out); { <--- }
for i:=1 to n do write(out, a[i],' '); { <--- }
end;
, тогда будет запись в файл... Кстати, я бы не рекомендовал бросать файлы в корень диска С:... Во-первых, у тебя элементарно может не быть прав на запись туда, а во-вторых - это просто глупо, зачем писать что-то в корень системного диска? Пиши в ту же папку, где лежит твой EXE-шник:
clrscr;
assign(out,'out.txt');
rewrite (out);
 К началу страницы 
+ Ответить 

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

 



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