Programma per selezionare N interi con vincoli [chiuso]

2

Ho bisogno di scrivere un programma che prende 4 input come segue

  • N = Il numero di interi da generare (10 < N < 10000)
  • Inizio = Il valore minimo degli interi (100 < Inizio)
  • Fine = Il valore massimo degli interi
  • Passaggio = La differenza minima tra due numeri interi (100 < Step)

e genera N interi all'interno dell'intervallo [Inizio, Fine]

Chiamerò gli interi generati come GI

Sono soggetti ai seguenti vincoli:

  • Ogni GI deve essere unico
  • La differenza tra qualsiasi 2 GI deve essere almeno uguale al valore "Step"
  • Nessun GI deve essere una combinazione lineare di uno qualsiasi degli altri GI

per combinazione lineare, intendo

GI[i] != a1*GI[1] + a2*GI[2] + a2*GI[3] + ... an*GI[n]
where n!=i for any n,i within [1,N] and {a1,a2,a3...an} are some integers
and != means 'Not equal to'

Che cos'è un buon (se non il migliore) metodo per codificarlo?

Ho pensato a un algoritmo per trovare i primi all'interno di quell'intervallo usando setaccio di Atkin . Ora se il numero di numeri primi è maggiore di N, allora procedi con il controllo della condizione di linearità, altrimenti generi numeri casuali che soddisfano la condizione del passo fino a raggiungere N valori e poi procedi con il controllo ... Questo non mi sembra molto elegante. Quindi sono interessato ai metodi migliori

    
posta Injitea 31.12.2015 - 10:22
fonte

0 risposte

Leggi altre domande sui tag