He he, jeg kunne bare ikke ligge denne her fra mig :)
Foreløbig har jeg kodet det i php. Jeg ved ikke om du har mulighed for at bruge php men anyhow så er jeg igang med at se om jeg kan få det konverteret til javascript :)
Følgende giver dig mulighed for at indtaste en række med unikke tal.
Dernæst indtaste hvor mange tal du vil have i hver klynge.
Og til sidst kan du markere om du kun vil have klynger hvor hvert tal er efterfulgt af et højere. Hvis ikke du vælger dette vil du få alle kombinations muligheder af de tal du har skrevet.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/REC-html40/strict.dtd"><html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<title>Test.</title>
<script type="text/javascript"></script>
</head>
<body>
<form action="test2.php" method="post">
<table style="width: 400px; margin: 0px auto; border: 1px solid #AAA898;">
<tr>
<td>Talrække :</td>
<td><input type="text" name="tal" value="<?php echo $_POST['tal']; ?>"></td>
</tr><tr>
<td>Antal tal i hver klynge :</td>
<td><input type="text" name="antal" value="<?php echo $_POST['antal']; ?>"></td>
</tr><tr>
<td colspan="2"><input type="checkbox" name="box"> : Mindste tal --> største tal.</td>
</tr><tr>
<td colspan="2" style="text-align: center;"><input type="submit" value="Send"></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['tal'])) {
$tal=array();
$res=array();
$b=array("0");
for($i=0; $i<strlen($_POST['tal']); $i++) {
array_push($tal, $_POST['tal']{$i}); }
$t="1"; $e="";
for($i=1; $i<count($tal); $i++) {
$t.="0"; array_push($b, strval($i)); $e.="0"; }
$start=0;
$slut=base_convert(intval($t*10), count($tal), 10);
for($i=$start; $i<$slut; $i++) {
$temp=base_convert($i, 10, count($tal));
$temp=substr(strval($e.$temp), -count($tal));
$t_array=array();
for($a=0; $a<count($tal); $a++) {
array_push($t_array, $temp{$a}); }
if(count(array_diff($b, $t_array))==0) {
$output="";
for($c=0; $c<$_POST['antal']; $c++) {
$output.=$tal[$t_array[$c]]; }
$stat="ok";
if(isset($_POST['box'])) {
for($d=0; $d<(strlen($output)-1); $d++) {
if(intval($output{$d})>intval($output{$d+1})) {
$stat="dump"; } } }
if($stat=="ok") {
array_push($res, $output); } }
}
$res=array_merge(array_unique($res));
for($a=0; $a<count($res); $a++) {
echo $res[$a]."<br>"; }
}
?>
</body>
</html>
Mvh. Johan