Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [javascript] tutte le combinazioni

    ho trovato su questo sito questo codice che stampa le combinazioni possibili di 5 numeri
    codice:
    #include <iostream>
    #include <fstream>
    #include <cstdlib>
    
    class Combinations
    {
    	private:
    		int *Elements;
    		int *Indexes;
    		int Length;
    		bool End;
    	int i;
    	public:
    
    		Combinations (int *Elements,int NumElem)
    			{
    		    
    		this->Length = NumElem;
            this->Elements = new int[Length];
    
    		memset(this->Elements,0,Length * sizeof(int));
    
            if (Length > 0)
                this->Indexes = new int[Length-1];
    			memset(this->Indexes,0,sizeof(int) * Length - 1);
    
            for (int i = 0; i < Length; i++)
                this->Elements[i] = Elements[i];
    
            End = Length < 1;
        }
    
        bool hasNext()
        {
            return !End;
        }
    
        int* next ()
        {
            if (End)
                return NULL;
    
            int *result = new int[this->Length];
    
            memset(result,0,this->Length * sizeof(int));
    		for (int i = 0; i < Length; i++)
                result[i] = Elements[i];
    
            for (i = 0; i < Length-1; i++)
            {
                int obj = result[i+Indexes[i]];
    
                for (int j = i+Indexes[i]; j > i; j--)
                    result[j] = result[j-1];
    
                result[i] = obj;
            }
    
            int carry = 1;
    
            for (i = Length-2; i >= 0; i--)
            {
                Indexes[i] += carry;
    
                if (Indexes[i] > Length-i-1)
                {
                    Indexes[i] = 0;
                    carry = 1;
                }
                else
                    carry = 0;
            }
    
            if (carry == 1)
                End = true;
    
            return result;
        }
    };
    
    using namespace std;
    
    int main(void)
    {
    	int elems;
    	cout <<"Number Generator by Peppe Mercury & Ciccio Cat, 2007" <<endl <<endl;
    	cout <<"Quanti elementi vuoi inserire?" << endl;
    	cin >> elems;
    
    	int *pNumbers = new (nothrow) int[elems];
    	cout <<"Inserire gli elementi." << endl;
    
    	for (int i = 0; i < elems; i++)
    		cin >> pNumbers[i];
    		
    	cout << endl;	
    
    	Combinations *c = new Combinations(pNumbers,elems);
    			
    	ofstream f;
    	f.open("Combo.txt",ios::out);
    
    	while (c->hasNext())
    		{
    			int *arr = c->next ();
    
    			for (int i = 0; i < elems; i++)
    				{
    					cout << arr[i] << " ";
    					f << arr[i] << " ";
    				}
    				cout <<endl;
    				f <<endl;
    				
    			
    			delete arr;
    		}
    	
    	f.close();
    	cout <<"Combinazioni salvate nel file Combo.txt " << endl;
    
    	system("PAUSE");
    
    	delete[] pNumbers;
    	delete c;
    
    	
    	
    	return 0;
    }
    ora.... mi servirebbe farlo con javascript:
    vorrei che le combinazioni siano inserite in un link es. http:www.html.it/*****.html

    si può fare ma io sono un capra in javascript, mi aiutate?
    Peppe

  2. #2
    non vi accalcate, mi raccomando.
    provo a venirvi in aiuto postandovi questo codice javascript che ho scritto. ci deve essere qualche errore di sintassi, chi mi aiuta a farlo funzionare???
    codice:
    <body>
    <script type="text/javascript" language="javascript">
    var code=0;
    var x3=0;
    var x7=0;
    var x5=0;
    var x4=0;
    var x9=0;
    var ax3=0;
    var ax7=0;
    var ax5=0;
    var ax4=0;
    var ax9=0;
    var bx3=0;
    var bx7=0;
    var bx5=0;
    var bx4=0;
    var bx9=0;
    var cx3=0;
    var cx7=0;
    var cx5=0;
    var cx4=0;
    var cx9=0;
    var dx3=0;
    var dx7=0;
    var dx5=0;
    var dx4=0;
    var dx9=0;
    var p2=0;
    var p3=0;
    var p4=0;
    for(x=0;x<1;x++) {
    if(x3==0){code=3; x3=1;} else { 
    	if(x7==0){code=7; x7=1;} else {
    		if(x5==0){code=5; x5=1;} else {
    			if(x4==0){code=4; x4=1;} else {
    				if(x9==0){code=9; x9=1;} else {}}}}}
    
    if(code!=3 && ax3==0){code=code*10+3; x3=1; p2=3;} else { 
    	if(code!=7 && ax7=0){code=code*10+7; x7=1; p2=7;} else {
    		if(code!=5 && ax5=0){code=code*10+5; x5=1; p2=5;} else {
    			if(code!=4 && ax4=0){code=code*10+4; x4=1; p2=4;} else {
    				if(code!=1 && ax9=0){code=code*10+9; x9=1; p2=9;} else {}}}}
    				
    if((x3!=1 && p2!=3) && bx3==0){code=code*10+3; x3=1; p3=3;} else { 
    	if((x7!=1 && p2!=7) && bx7==0){code=code*10+7; x7=1; p3=7;} else {
    		if((x5!=1 && p2!=5) && bx5==0){code=code*10+5; x5=1; p3=5;} else {
    			if((x4=1 && p2!=4) && bx4==0){code=code*10+4; x4=1; p3=4;} else {
    				if((x9!=1 && p2!=9) && bx9==0){code=code*10+9; x9=1; p3=9;} else {}}}}
    				
    if((x3!=1 && p2!=3) && (p3!=3 && cx3==0)){code=code*10+3; x3=1; p4=3;} else { 
    	if((x7!=1 && p2!=7) && (p3!=7 && cx7==0)){code=code*10+7; x7=1; p4=7;} else {
    		if((x5!=1 && p2!=5) && (p3!=5 && cx5==0)){code=code*10+5; x5=1; p4=5;} else {
    			if((x4!=1 && p2!=4) && (p3!=4 && cx4==0)){code=code*10+4; x4=1; p4=4;} else {
    				if((x9!=1 && p2!=9) && (p3!=9 && cx9==0)){code=code*10+9; x9=1; p4=9;} else {}}}}
    
    if((x3!=1 && p2!=3) && (p3!=3 && p4!=3) && dx3==0){code=code*10+3; x3=1;} else { 
    	if((x4!=1 && p2!=4) && (p3!=4 && p4!=7) && dx7==0){code=code*10+7; x7=1;} else {
    		if((x5!=1 && p2!=5) && (p3!=5 && p4!=5) && dx5==0){code=code*10+5; x5=1;} else {
    			if((x4!=1 && p2!=4) && (p3!=4 && p4!=4) && dx4==0){code=code*10+4; x4=1;} else {
    				if((x9!=1 && p2!=9) && (p3!=9 && p4!=9) && dx9==0){code=code*10+9; x9=1;} else {}}}}
    document.write("ok");
    document.write("<a href=http://www.hwupgrade.it/");
    document.write(code);
    document.write(".html>");
    document.write(code);
    document.write("<\/a>");
    }
    </script>
    </body>
    non ho incluso gli altri tag dell'html ma sono giusti al 100%
    Peppe

  3. #3
    Originariamente inviato da djpeppe
    non vi accalcate, mi raccomando.
    perdona la franchezza ma qui c'è gente che ha problemi con onload e tu proponi codice C++ per una classe sul calcolo combinatorio da replicare tramite JS?

    Ok, parliamone ... che tipo di combinazione ti serve?

    Dn,k
    Pn,k
    Cn,k

    cosa ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    vorrei che venissero stampate a video tutte le possibili combinazioni che si ottengono accostando i numeri 12345 senza ripeterli e che vengano concatenati come url. per esempio
    12345
    12435
    53124
    <a href=www.html.it/53142.html>53142</a>
    ecc..
    naturalmente a me arrivano come link e non come codice html.
    Peppe

  5. #5
    Originariamente inviato da djpeppe
    si ottengono accostando i numeri 12345 senza ripeterli

    Originariamente inviato da djpeppe
    12354
    queste sono già due ripetizioni ... Cn,k - Dn,k o Pn,k ???
    Ti serve calcolo combinatorio, dicci quale tipo e con quali regole ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da andr3a
    queste sono già due ripetizioni ... Cn,k - Dn,k o Pn,k ???
    Ti serve calcolo combinatorio, dicci quale tipo e con quali regole ...
    gli servono le 120 permutazioni semplici dei 5 numeri

    Guarda questi link
    http://snippets.dzone.com/posts/show/1032
    http://jsfromhell.com/array/permute

    e sostituisci l'array con le cifre da 1 a 5. Poi modifica la funzione che stampa le permutazioni includendo i link
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.