već prije sam na tutorijali.net (
http://tutorijali.net/forum/permutacije-t-1349.html
) napravio skriptu, ali u ASP.NETu,
pokušavam prebaciti sad ovo u php
ali mi neide negdje sam zapeo, a php i debugiranje=0 bodova…
ovo je kod u ASP.NETu
using System.Web;
using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
namespace test
{
public class test : IHttpHandler
{
int min = 4; //koliko od
int max = 6; //koliko 4/6
int index = 0;
int pozicija = 0;
Boolean PromjenaPozicije = false;
List<List<int>> polje = new List<List<int>>();
public void ProcessRequest(HttpContext context)
{
pozicija = min - 1;
NapraviPrviRed();
index++;
while (true)
{
KopirajZadnjiRed();
if (polje[index][pozicija] < max - (min - (pozicija + 1)))
{
polje[index][pozicija]++;
if (PromjenaPozicije)
{
posloži();
PostaviPoziciju();
PromjenaPozicije = false;
}
}
else
{
if (pozicija > 0)
{
pozicija--;
polje[index][pozicija]++;
posloži();
PostaviPoziciju();
}
else
//to je to ispis i brisanje zadnjeg reda jer na početku odmah kopiram predzadnji red u zadnji...
{
polje.RemoveAt(polje.Count-1);
for (int i = 0; i < polje.Count; i++)
{
context.Response.Write(i.ToString() + " -> ");
for (int j = 0; j < polje[i].Count; j++)
{
context.Response.Write(polje[i][j].ToString());
}
context.Response.Write("
");
}
return;
}
}
index++;
}
}
private void NapraviPrviRed()
{
polje.Add(new List<int>(min));
for (int i = 1; i <= min; i++)
polje[0].Add(i);
}
private void KopirajZadnjiRed()
{
polje.Add(new List<int>(min));
for (int i = 0; i < min; i++)
polje[index].Add(polje[index-1][i]);
}
private void posloži()
{
if (pozicija == min - 1)
return; //zadnja brojka nemam što slagati
for (int i = pozicija + 1; i < min; i++)
polje[index][i] = polje[index][i - 1] + 1;
}
private void PostaviPoziciju()
{
int startnaPozicija = pozicija;
pozicija = min - 1;
while (true)
{
//zadnja brojka mora biti jednaka maximumu, predzadnja max-1 itd...
if ((pozicija>0)&&(polje[index][pozicija] >= max - (min - (pozicija + 1))))
pozicija--;
else
{
if (startnaPozicija != pozicija)
PromjenaPozicije = true;
return;
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
ovo sam ja prebacio u php, međutim negdje mi preskače, e sad ja najviše sumnjam na pogrešnu poziciju, ali ne mogu biti siguran uglavnom evo php-a