Distribuzione di punti su di una linea

lucalbero
Salve a Tutti Voi, sono nuovo nel Forum e nell'ambito della Matematica "Spinta" applicata all'Informatica... "purtroppo" sono un tipo curioso e spesso mi vengono certe idee alle quali non so dare una risposta... mi auguro di trovare almeno qualche utile informazione da Voi che masticate bene la Matematica...

Il problema che mi sono posto riguarda la ricerca di un algoritmo che mi permetta di:
poter conoscere la distribuzione (posizione) di alcuni punti su di una linea considerando i seguenti vincoli imprescindibili:
1) i punti sono in numero finito;
2) la distanza tra due punti (campata) non può essere inferiore a 1 e superiore a 50;
3) la differenza tra due campate contigue deve essere inferiore o uguale a 10;
4) è possibile trovare sulla linea dei punti fissi la cui posizione è conosciuta.

La risoluzione di un tale problema è possibile?

Risposte
Rggb1
Il problema è posto, a mio vedere, in modo troppo generico. Inoltre:
- ci sono condizioni iniziali note?
- non riesco a comprendere il punto (4); cosa intendi esattamente?

Rggb1
[ Rispondo sul forum ]
Credo di aver capito la natura del problema, e credo si possa creare un algoritmo che lo risolve.

Riformulo il problema; dato un segmento lungo LTot, e dati [eventuali] punti intermedi a distanza L1, L2, ... (che definiscono rispettivamente segmenti successivi lunghi D1, D2, ...) aggiungere il numero MINIMO di punti tali che:
- la distanza fra due punti successivi (L1, L2-L1, L3-L2, ...) deve essere compresa fra un minimo ed un massimo valore (nel ns. caso 1 e 50)
- la differenza fra ogni segmento e quelli vicini (D1-D2, D2-D3, ...) in valore assoluto deve essere inferiore o uguale ad un dato valore (nel caso, 10)

Idea: dividere il segmento più lungo nel minimo possibile, ovvero partendo dal massimo Di, per la distanza massima ammissibile (50); ottengo un certo numero N che, considerato intero (al limite più uno) mi dice quanti segmenti vi posso fare; se tali segmenti sono "incompatibili" con quelli già trovati aumento N e così via; continuo finché il segmento più lungo non è minore di 50 e quindi deve essere diviso;

Idea alternativa: simile alla precedente, ma partendo dal segmento più corto ("a naso" direi che è un approccio migliore).

Ovviamente possono anche esserci altri approcci. Credo anche ci sia la possibilità che l'algoritmo non trovi soluzione: tutto sommato, c'è anche da rispettare il valore minimo di quella che tu chiami campata.

lucalbero
Grazie Rggb hai dato una risposta più che esauriente per risolvere il mio problema... Grazie infinite

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.