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

    [VB Net] Disporre casualmente i dati

    Framework di destinazione .Net 2.0. (non posso usare LINQ)
    Ho una LISTA di LISTE strutturata in questo modo:

    elemento 0 della 1^ lista -> contiene 7 elementi della 2^ lista -> a b c d e f g
    elemento 1 della 1^ lista -> contiene 7 elementi della 2^ lista -> a b c d e f g
    elemento 2 della 1^ lista -> contiene 7 elementi della 2^ lista -> a c d e f g h
    elemento 3 della 1^ lista -> contiene 7 elementi della 2^ lista -> h i l m n o p
    elemento 4 della 1^ lista -> contiene 6 elementi della 2^ lista -> h n o p q r
    ...

    Come potete notare alcuni elementi della 2^ lista sono ripetuti (a, b,c,d...) e alcuni di essi si trovano sempre nella stessa posizione:
    "a" è sempre in prima posizione;
    "b" è sempre in seconda posizione;
    ...
    "h" si trova due volte in prima posizione e una volta in settima...

    Ho bisogno di sparpagliare TUTTI gli elementi in modo tale che nessuno di essi venga mai a trovarsi per più di una volta in una stessa posizione mantenendo intatta la composizione degli elementi della lista 1. Nell'esempio precedente devo spostare gli elementi [a b c d e f g h]


    Una soluzione potrebbe essere questa:
    elemento 0 della 1^ lista -> contiene 7 elementi della 2^ lista -> a b c d e f g
    elemento 1 della 1^ lista -> contiene 7 elementi della 2^ lista -> g a b c d e f
    elemento 2 della 1^ lista -> contiene 7 elementi della 2^ lista -> f g d a c h e
    elemento 3 della 1^ lista -> contiene 7 elementi della 2^ lista -> p h i l m n o
    elemento 4 della 1^ lista -> contiene 6 elementi della 2^ lista -> h n o p q r

    Avete qualche suggerimento?

  2. #2

    Re: [VB Net] Disporre casualmente i dati

    Più difficile che trovare la soluzione è determinare se una soluzione esiste. Assumendone l'esistenza, puoi semplicemente andare di brute-force.
    Non so consigliarti un algoritmo migliore, ma dato che questo problema è simile al sudoku puoi provare a vedere se riesci a convertirlo in un problema topologico.

  3. #3
    Ciao Totem,
    la tua proposta è una di quelle che ho vagliato per prima (circa due anni fa realizzai un Sudoku), ma per quanto possa condurre alla SOLUZIONE migliore non è molto efficiente, in caso di molti elementi. Purtroppo NON conosco a priori il numero dei dati da elaborare: possono essere poche unità o diverse decine.

    Grazie comunque.

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.