Newsgroup: it.scienza.fisica
Titolo: punti a coordinate intere nell'intersezione fra due iper-solidi

Ho un parallelepipedo n-dimensionale i cui lati hanno lunghezza intera e
un vertice è in (0,0,...,0). Interseco questo con un iper-piano
(n-1)dimensionale perpendicolare al vettore (1,1,....,1) quindi ottengo
in generale un'intersezione che è una porzione di un iper-piano. Faccio
passare questo iper-piano attraverso i punti a coordinata intera del
parallelepipedo. Vorrei trovare un modo intelligente rapido veloce
(wow!) per contare quanti sono i punti a coordinate intere di questa
intersezione. Potete aiutarmi con aiuti suggerimenti consigli o links
dove guardare ?
vi ringrazio in anticipo
crossposto su it.scienza.fisica perchè in effetti questo mi serve per
un'applicazione di fisica
Wentu
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

dimenticavo.. i lati del parallelepipedo n dimensionale sono paralleli
agli assi
grazie ancora per l'aiuto che vorrete darmi


Ho un parallelepipedo n-dimensionale i cui lati hanno lunghezza intera
Problema interessante. Equivale al seguente problema di
calcolo combinatorio: in quanti modi si possono disporre N
oggetti indistinguibili in M contenitori ognuno dei quali
puo` contenerne solo fino a un certo numero massimo.
Mi sembra un po' dura. Puoi fornire maggiori dettagli a scopo
di ottimizzazione? Es. ti serve fare quel conto per parecchie
sezioni dello stesso parallelepipedo? In tal caso, vai a
scandire il parallelepipedo a passo costante?
Ciao
Paolo Russo (da it.scienza.fisica)

 wrote in message
news:585.819T172T1...@libero.it...

Esatto !! io sono arrivato a questo problema proprio partendo da quello
che dici tu.
Stavo studiando le catene di Markov con modellini urne-palline e dopo
aver esaminato quello con due urne..volevo generalizzare.
Ma non appena sono passato da due a tre urne mi sono subito scontrato
col problema di indicizzazione degli stati.
Non so nemmeno quanti stati ci sono. Pensavo che trasformare questo
problema in un problema geometrico fosse più semplice ma non è stato
così !
In pratica sono interessato a tutte le intersezioni possibili fra i due
ipersolidi perchè devo sapere tutti i modi possibili di disporre N
oggetti in M urne ma con N che va da 1 a M.
se mi sai dire dove rivolgere la mia attenzione... ti saro' molto grato!
ciao
Wentu
PS: qualcuno mi ha parlato dei numeri di seconda specie di Stirling...
ma non mi sembrano ancora la soluzione definitiva.


ma non mi sembrano ancora la soluzione definitiva.
Non so cosa siano. Non so molto di matematica.
Ciao
Paolo Russo
#define MAX_BOX 100    /* actually max+1 */
#define MAX_K 100        /* actually max+1 */
unsigned long Max[MAX_BOX];
unsigned long maxk;
unsigned long number;
unsigned long a[MAX_K],b[MAX_K];
MakeComb()
{
register unsigned long s;
register int j,m,k;
int i;
for (j=0; j<=maxk; j++) a[j]=0;
a[0]=1;
for (i=0; i<number; i++) {
    for (j=0; j<=maxk; j++) {
        m=Max[i];
        if (m>j) m=j;
        for (s=0,k=0; k<=m; k++) s+=a[j-k];
        b[j]=s;
        }
    for (j=0; j<=maxk; j++) a[j]=b[j];
    }
}
main(argc,argv)
    int argc;
    char **argv;
{
register unsigned long i;
if (argc<3) {
    printf("Syntax: COMB maxK {max1 max2 ... maxN}\n");
    printf("(K objects in N boxes)\n");
    return 0;
    }
maxk=atoi(argv[1]);
number=argc-2;
for (i=0; i<number; i++) Max[i]=atoi(argv[i+2]);
MakeComb();
for (i=0; i<=maxk; i++) printf("k=%lu: comb=%lu\n",i,a[i]);
}