forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   JavaScript / HTML (http://forum.boolean.name/forumdisplay.php?f=136)
-   -   Вывод всех подмножеств данного множества (http://forum.boolean.name/showthread.php?t=14566)

KingMaks 10.04.2011 21:26

Вывод всех подмножеств данного множества
 
Нужно написать программу, которая будет выводить все подмножества введенного множества. Например если ввести множество 1,2,3,4,5 то должны получить:

1
2
3
4
5
12
13
14
15
23
24
25
34
35
45
123
124
125
134
135
145
234
235
245
345
1234
1235
1245
1345
2345
12345
Я сделал пару попыток но ни один вариант не выводит все подмножества, а только их часть:
Вариант 1:
Цитата:

<html>

<head>
<title>Индивидуальная работа</title>
</head>

<body bgcolor='DarkSeaGreen'>

<form name='form1'>

Введите множество елементов через кому:<br>
<input type='text' name='mn' size=50>
<input type='button' name='do' value='Выполнить' OnClick='func();'><br><br>
Список всех подмножеств:<br>
<textarea name='otv' cols=50 rows=10 wrap='vrtual'></textarea>

</form>

<script type='text/javascript'>

function func()
{
var m=document.form1.mn.value.split(',');
var st='';

for(i=0; i<m.length; i++)
{
for(j=0; j<=m.length; j++)
{
if(j+i>m.length-1){break}
st=st+'(';
for(k=j; k<=j+i; k++)
{
if(k>m.length-1){break}
st=st+m[k]+',';
}
st=st.slice(st,-1);
st=st+'); ';
}
}
document.form1.otv.value=st;
}



</script>

</body>

</html>
Вариант 2:
Цитата:

<html>

<head>
<title>Индивидуальная работа</title>
</head>

<body bgcolor='DarkSeaGreen'>

<form name='form1'>

Введите множество елементов через кому:<br>
<input type='text' name='mn' size=50>
<input type='button' name='do' value='Выполнить' OnClick='func();'><br><br>
Список всех подмножеств:<br>
<textarea name='otv' cols=50 rows=10 wrap='vrtual'></textarea>

</form>

<script type='text/javascript'>

function func()
{
var m=document.form1.mn.value.split(',');
var mas=[];
var st=[];
for(i=0; i<m.length; i++)
{
for(s=0; s<=i; s++){mas[s]=m[s]};
for(k=i; k>=0; k--)
{
for(j=k; j<m.length; j++)
{
mas[k]=m[j];
st=st+mas+'| ';

}
}
}
document.form1.otv.value=st;
}


</script>

</body>

</html>
Помогите исправить одну из этих программ, чтобы выводила все подмножества.

impersonalis 10.04.2011 21:58

Ответ: Вывод всех подмножеств данного множества
 
ты уверен, что вопрос не чисто алгоритмический ( http://forum.boolean.name/forumdisplay.php?f=21 ) или математический ( http://forum.boolean.name/forumdisplay.php?f=85 ) ?
Выбирая нужный раздел ты облегчаешь жизнь будущим искателям и сам не изобретаешь велик.


Часовой пояс GMT +4, время: 03:48.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot