Torna indietro   Hardware Upgrade Forum > Software > Programmazione

MG4, due settimane al volante dell'elettrica popolare: pregi, difetti e autonomia
MG4, due settimane al volante dell'elettrica popolare: pregi, difetti e autonomia
Abbiamo guidato per circa due settimane la MG4 Electric, l'auto elettrica cinese del rinato marchio europeo, che offre specifiche interessanti ad un prezzo competitivo
Tre giorni in Finlandia con OnePlus Watch 2 Nordic Blue. La nostra prova a temperature estreme
Tre giorni in Finlandia con OnePlus Watch 2 Nordic Blue. La nostra prova a temperature estreme
Siamo volati a Helsinki, in Finlandia, per testare a fondo il nuovo OnePlus Watch 2 Nordic Blue Edition. L'orologio ci ha convinti durante i test invernali a Helsinki, grazie al design raffinato, alle prestazioni impeccabili, alla resistenza agli ambienti estremi e all'ottima autonomia garantita dalla modalità intelligente.
Lenovo Factory Tour: siamo entrati nella fabbrica ungherese che produce PC, storage e server
Lenovo Factory Tour: siamo entrati nella fabbrica ungherese che produce PC, storage e server
Edge9 ha visitato lo stabilimento produttivo di Lenovo nei pressi di Budapest in Ungheria, che serve tutta la zona EMEA per i prodotti “business”: PC, storage e server. Un impianto all’avanguardia, con altissimi tassi di efficienza ma anche una grande attenzione alle condizioni lavorative dei dipendenti e alla sostenibilità ambientale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-06-2009, 16:24   #21
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4400
...qui viene proposta una applet con diversi sistemi di solver...l'algoritmo proposto risolve il caso richiesto dal thread in una manciata di secondi...volevo chiedere all'autore del thread se la difficoltà di risoluzione di questo sudoku sta solo nella scelta di usare una scala di valori decrescente per la prima riga (un brute force incrementando il valore per ogni riquadro arriverà a ricostruire la sequenza 9-8-7... nel maggior tempo possibile) o ci sono altri giochini dietro?...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 16:30   #22
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
Ok, dai, posto la mia: il codice è per lo più una traduzione di un post che ho trovato, ma solo per una questione di eleganza. Infatti ho sempre reputato l'uso di un po' di constraint programming la via più comoda e dunque appoggiarsi a un solver era secondo me naturale
Il codice è come al solito in F# (4.0), ed in questo caso è richiesta la presenza di Microsoft Solver Foundation (l'express edition gratuita basta).
Il tempo impiegato sul mio misero T7700 @ 2.4ghz è 500ms e gran parte del tempo è spesa per il caricamento/inizializzazione del solver e non per la ricerca della soluzione.
Codice:
open System
open System.IO
open Microsoft.SolverFoundation.Common
open Microsoft.SolverFoundation.Services

module Sudoku =
    type SudokuCell(row, col, value) =
        let mutable _value = value
        member x.Row = row
        member x.Col = col
        member x.Value with get() = _value and set(v) = _value <- v
        member x.FloatValue with get() = float _value and set(v:float) = _value <- int v
    
    type Block = { KeyRow : int; KeyCol : int; IsIn : Rational }
                
    let Solve(src:int array array) =
        let rational (i:int) = Rational.op_Implicit i
        let ctx = SolverContext.GetContext()
        let model = ctx.CreateModel()
        let line = Set(Domain.IntegerRange(rational 0, rational 9), "line")
        let board = Array2D.init 9 9 (fun r c -> SudokuCell(r, c, src.[r].[c]))
        let boardDec = Decision(Domain.IntegerRange(rational 1, rational 9), "board", line, line)
        boardDec.SetBinding(board |> Seq.cast<SudokuCell>, "FloatValue", "Row", "Col")
        let presetBoard = Parameter(Domain.IntegerRange(rational 0, rational 9), "presetBoard", line, line)
        presetBoard.SetBinding(board |> Seq.cast<SudokuCell>, "Value", "Row", "Col")
        model.AddDecision boardDec
        model.AddParameter presetBoard
        model.AddConstraint(null,  Model.ForEach(line, fun i -> Model.ForEachWhere(line, (fun j -> Term.op_Equality(boardDec.[i,j],presetBoard.[i, j])), fun j -> Term.op_GreaterThan(presetBoard.[i, j], 0 |> rational |> Term.op_Implicit)))) |> ignore
        model.AddConstraint(null, Model.ForEach(line, fun j -> Model.AllDifferent (Model.ForEach(line, fun i -> boardDec.[i,j])))) |> ignore
        model.AddConstraint(null, Model.ForEach(line, fun i -> Model.AllDifferent (Model.ForEach(line, fun j -> boardDec.[i,j])))) |> ignore
        let isInBlock i j row col = if i * 3 <= row && row <= i * 3 + 2 && j * 3 <= col && col <= j * 3 + 2 then rational 1 else rational 0
        for i in 0..2 do 
            for j in 0..2 do
                let boardBlock = Parameter(Domain.IntegerNonnegative, "boardBlock", line, line)
                model.AddParameters boardBlock
                boardBlock.SetBinding(board |> Seq.cast<SudokuCell> |> Seq.map(fun c -> { KeyRow = c.Row; KeyCol = c.Col; IsIn = isInBlock i j c.Row c.Col }), "IsIn", "KeyRow", "KeyCol")
                model.AddConstraint(null, Model.AllDifferent(Model.ForEach(line, fun keyi -> Model.ForEachWhere(line, (fun keyj -> boardDec.[keyi, keyj]), fun keyj -> boardBlock.[keyi,keyj])))) |> ignore
        let solution = ctx.Solve()
        if solution.Quality = SolverQuality.Feasible then
            ctx.PropagateDecisions()
            Some [| for i in 0..8 -> [| for j in 0..8 -> board.[i,j].Value |] |]
        else None
        
let main() =
    let puzzle = "sudoku.csv" |> File.ReadAllLines |> Array.Parallel.map(fun ln -> ln.Split([|','|], StringSplitOptions.RemoveEmptyEntries) |> Array.Parallel.map(int))
    let sw = System.Diagnostics.Stopwatch.StartNew()
    match Sudoku.Solve puzzle with
    | Some b -> sw.Stop()
                let lines = b |> Array.Parallel.map(fun r -> (r |> Array.fold(fun acc b -> sprintf "%s,%i" acc b) String.Empty).Substring 1)
                File.WriteAllLines("solved.csv", lines)
                lines |> Seq.iter(fun ln -> printfn "%s" ln)
                printfn "Parsed and solved in %ims" sw.ElapsedMilliseconds
    | None -> printfn "failed"
    Console.ReadKey() |> ignore
    
do main();;

Ultima modifica di !k-0t1c! : 08-06-2009 alle 18:22.
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 16:39   #23
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
@ally: Il puzzle proposto è preso da QUI e l'ho scelto apposta perché ero curioso di vedere quanto avrebbe stimolato la gente ad andare 1po' oltre il mero brute force
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 16:43   #24
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4400
Quote:
Originariamente inviato da !k-0t1c! Guarda i messaggi
Codice:
1,4,5,7,8,2,6,3,9
3,7,9,1,6,4,5,2,8
2,6,8,3,9,5,4,1,7
5,2,1,4,7,8,3,9,6
4,3,7,6,1,9,2,8,5
8,9,6,2,5,3,1,7,4
7,8,4,5,2,1,9,6,3
6,1,3,9,4,7,8,5,2
9,5,2,8,3,6,7,4,1
Codice:
0,0,0,0,0,0,0,0,0
0,0,0,0,0,3,0,8,5
0,0,1,0,2,0,0,0,0
0,0,0,5,0,7,0,0,0
0,0,4,0,0,0,1,0,0
0,9,0,0,0,0,0,0,0
5,0,0,0,0,0,0,7,3
0,0,2,0,1,0,0,0,0
0,0,0,0,4,0,0,0,9
...le grigle sembrano diverse...prendo come riferimento la posizione del numero uno sul primo quadrante...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 18:24   #25
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
http://tbn3.google.com/images?q=tbn:...y-facepalm.jpg
Mi ero dimenticato una riga, quella che impone che i valori iniziali diversi da 0 ed i valori finali nelle stesse posizioni coincidano...Fixed, il tempo è salito di qualche millisecondo ma siamo sempre li
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 18:40   #26
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Quote:
Originariamente inviato da !k-0t1c! Guarda i messaggi
Applicando solo le regole, senza "indovinare" mai, la cosa è fattibile in 15righe Tutto sta nel saper usare le regole inizialmente e poi "indovinare" intelligentemente. Se comunque hai la parte di verifica delle regole e di riempimento secondo le regole implementare la parte che "indovina" ed eventualmente fa backtracking non dovrebbe essere traumatico
Vero.
Un'altro conto è invece fare che ci mette 13 ms a risolverlo

Ora provo a metterci il "guessing" spero che non faccia aumentare assurdamente i tempi...
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 20:46   #27
rеpne scasb
Senior Member
 
Iscritto dal: May 2008
Messaggi: 530

Ultima modifica di rеpne scasb : 18-06-2012 alle 15:35.
rеpne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 20:57   #28
d_traveler
Junior Member
 
Iscritto dal: Jun 2009
Messaggi: 14
Quote:
Originariamente inviato da rеpne scasb Guarda i messaggi
Linguaggio: C
Algoritmo: Non utilizza la forza bruta.
Tempo: Il tempo impiegato e molto minore di 1 millesimo di secondo

Codice:
#include <stdio.h>
#include <time.h>

#define N_CLK 10
#define INPUT_FILE_NAME "SUDOKU.DAT"
#define SIZE 9
#define CELL (SIZE/3)

int main(void)

{
    clock_t clk[N_CLK];
    FILE *input_file_handle;
    int b,i,j,k,l,m,n,o,s,sp,sv=SIZE*SIZE,sk[SIZE][SIZE],ts[SIZE][SIZE];

    if((input_file_handle=fopen(INPUT_FILE_NAME,"rt"))==NULL)
    {
	fprintf(stderr,"Non trovo il file " INPUT_FILE_NAME "\n");
	return 1;
    }

    for(i=0;i<SIZE;i++)
    {
	for(j=0;j<SIZE;j++)
	{
	    fscanf(input_file_handle,"%d,",&sk[i][j]);
	    if(sk[i][j])
		sv--;
	}
    }

    if(fclose(input_file_handle))
    {
	fprintf(stderr,"Errore durante fclose\n");
	return 1;
    }

    printf("*** Input ***\n\n");

    for(i=0;i<SIZE;i++)
    {
	for(j=0;j<SIZE;j++)
	    printf("%d ",sk[i][j]);
	printf("\n");
    }

    clk[0]=clock();

    do
    {
	for(i=0;i<SIZE;i++)
	{
	    for(j=0;j<SIZE;j++)
	    	ts[i][j]=0;
	}
	for(i=0;i<SIZE;i++)
	{
	    for(j=0;j<SIZE;j++)
	    {
		if(sk[i][j])
		{
		    for(k=0;k<SIZE;k++)
			ts[k][j]|=1<<(sk[i][j]-1);
		    for(k=0;k<SIZE;k++)
			ts[i][k]|=1<<(sk[i][j]-1);
		    for(k=(i/CELL)*CELL;k<((i/CELL)*CELL+CELL);k++)
		    {
		        for(l=(j/CELL)*CELL;l<((j/CELL)*CELL+CELL);l++)
		            ts[k][l]|=1<<(sk[i][j]-1);
		    }
		}
	    }
	}
	for(b=0;b<SIZE;b++)
	{
	    for(i=0;i<SIZE;i++)
	    {
	        for(l=j=0;j<SIZE;j++)
		{
		    if(sk[i][j]==0)
		    {
		        if((ts[i][j]&(1<<b))==0)
			{
			    l++;
			    m=j;
			}
		    }
		}
		if(l==1)
		{
		    sk[i][m]=b+1;
		    sv--;
		    for(k=0;k<SIZE;k++)
			ts[k][m]|=1<<b;
		    for(k=0;k<SIZE;k++)
			ts[i][k]|=1<<b;
		    for(k=(i/CELL)*CELL;k<((i/CELL)*CELL+CELL);k++)
		    {
		        for(l=(m/CELL)*CELL;l<((m/CELL)*CELL+CELL);l++)
		            ts[k][l]|=1<<b;
		    }
		}
	    }
	    for(j=0;j<SIZE;j++)
	    {
	        for(l=i=0;i<SIZE;i++)
	        {
	    	    if(sk[i][j]==0)
		    {
		        if((ts[i][j]&(1<<b))==0)
			{
			    l++;
			    m=i;
			}
		    }
		}
	        if(l==1)
		{
		    sk[m][j]=b+1;
		    sv--;
		    for(k=0;k<SIZE;k++)
			ts[k][j]|=1<<b;
		    for(k=0;k<SIZE;k++)
			ts[m][k]|=1<<b;
		    for(k=(m/CELL)*CELL;k<((m/CELL)*CELL+CELL);k++)
		    {
		        for(l=(j/CELL)*CELL;l<((j/CELL)*CELL+CELL);l++)
		            ts[k][l]|=1<<b;
		    }
		}
	    }
	    for(i=0;i<SIZE;i+=CELL)
	    {
		for(j=0;j<SIZE;j+=CELL)
		{
		    for(n=0,k=i;k<(i+CELL);k++)
		    {
			for(l=j;l<(j+CELL);l++)
			{
	    	    	    if(sk[k][l]==0)
		    	    {
		                if((ts[k][l]&(1<<b))==0)
			        {
			    	    n++;
			    	    m=k;
				    o=l;
			  	}
			    }
			}
		    }			
	            if(n==1)
		    {
		        sk[m][o]=b+1;
		        sv--;
		        for(k=0;k<SIZE;k++)
			    ts[k][o]|=1<<b;
		        for(k=0;k<SIZE;k++)
			    ts[m][k]|=1<<b;
		        for(k=(m/CELL)*CELL;k<((m/CELL)*CELL+CELL);k++)
		        {
		            for(l=(o/CELL)*CELL;l<((o/CELL)*CELL+CELL);l++)
		                ts[k][l]|=1<<b;
		        }
		    }
		}
	    }
	}

        for(sp=i=0;i<SIZE;i++)
        {
	    for(j=0;j<SIZE;j++)
	    {
	        if(sk[i][j]==0)
	        {
		    for(s=k=0;k<SIZE;k++)
		        s|=1<<sk[k][j];
		    for(k=0;k<SIZE;k++)
		        s|=1<<sk[i][k];
		    for(k=(i/CELL)*CELL;k<((i/CELL)*CELL+CELL);k++)
		    {
		        for(l=(j/CELL)*CELL;l<((j/CELL)*CELL+CELL);l++)
		            s|=1<<sk[k][l];
		    }
		    for(s>>=1,l=k=0;k<SIZE;k++)
		    {
			if(s&(1<<k))
			    l++;
			else
			    m=k;
		    }
		    if(l==(SIZE-1))
		    {
		        sk[i][j]=m+1;
			sv--;
			sp=1;
			break;
		    }		
	        }	    
	        if(sp)
		    break;
	    }
	    if(sp)
	        break;
        }

    } while (sv);

    clk[1]=clock();

    printf("\n*** Soluzione ***\n\n");

    for(i=0;i<SIZE;i++)
    {
	for(j=0;j<SIZE;j++)
	    printf("%d ",sk[i][j]);
	printf("\n");
    }

    printf("\nTempo per ricercare la soluzione: %7.3f secondi\n",(double)(clk[1]-clk[0])/CLK_TCK);

    return 0;
}
Tipico Output:

Codice:
*** Input ***

0 0 0 0 0 0 0 0 0 
0 0 0 0 0 3 0 8 5 
0 0 1 0 2 0 0 0 0 
0 0 0 5 0 7 0 0 0 
0 0 4 0 0 0 1 0 0 
0 9 0 0 0 0 0 0 0 
5 0 0 0 0 0 0 7 3 
0 0 2 0 1 0 0 0 0 
0 0 0 0 4 0 0 0 9 

*** Soluzione ***

9 8 7 6 5 4 3 2 1 
2 4 6 1 7 3 9 8 5 
3 5 1 9 2 8 7 4 6 
1 2 8 5 3 7 6 9 4 
6 3 4 8 9 2 1 5 7 
7 9 5 4 6 1 8 3 2 
5 1 9 2 8 6 4 7 3 
4 7 2 3 1 9 5 6 8 
8 6 3 7 4 5 2 1 9 

Tempo per ricercare la soluzione:   0.000 secondi
P.S. Se riscontrare errori avvertitemi.
P.P.S. Se c'e' un numero sufficiente di persone interessare a sapere come funziona, saro' lieta di spiegarlo.
in c, difficilissimo.
d_traveler è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 20:57   #29
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Quote:
Originariamente inviato da rеpne scasb Guarda i messaggi
P.S. Se riscontrare errori avvertitemi.
P.P.S. Se c'e' un numero sufficiente di persone interessare a sapere come funziona, saro' lieta di spiegarlo.
Per me o hai un pc sperimentale oppure usi magia nera
Mi interesserebbe capire da dove iniziare per leggerlo più che altro

Ma c'è qualche "guideline" per avere dei risultati prestazionali eccellenti come fai sempre oppure serve solamente un'esperienza eccessiva?
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 21:05   #30
rеpne scasb
Senior Member
 
Iscritto dal: May 2008
Messaggi: 530

Ultima modifica di rеpne scasb : 18-06-2012 alle 15:35.
rеpne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 21:10   #31
rеpne scasb
Senior Member
 
Iscritto dal: May 2008
Messaggi: 530

Ultima modifica di rеpne scasb : 18-06-2012 alle 15:35.
rеpne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 21:38   #32
d_traveler
Junior Member
 
Iscritto dal: Jun 2009
Messaggi: 14
Quote:
Originariamente inviato da rеpne scasb Guarda i messaggi
Affatto, il tempo stimato per scrivere il sorgente e' stato di circa 30 minuti (non ti fare impressionare c'e' un sacco di copia&incolla).
in poco tempo anche. mi sembra difficilissimo il c, io non riesco a farlo neanche in java o in python che conosco un pò meglio.
d_traveler è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 22:02   #33
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
Bene bene, festa delle bitmasks
Codice illeggibile, specie senza commenti, ma è comunque comprensibile il principio, complimenti

Direi che questo contest è stato risolto interessantemente, il prossimo lo penserò per qualcosa di molto parallelizzabile

P.S.: "lieta" <- donna in questo campo? doppi complimenti. Anche se qualcuno potrebbe fare la classica battuta "ecco perché scrive codice così contorto"
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2009, 22:48   #34
rеpne scasb
Senior Member
 
Iscritto dal: May 2008
Messaggi: 530

Ultima modifica di rеpne scasb : 18-06-2012 alle 15:35.
rеpne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2009, 01:34   #35
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2745
@rеpne scasb: Una domanda: gli or + shift servono a segnare in una casella che il numero corrente non può starci? Molto interessante, io nel risolvere i sudoku a mano ho sempre fatto il contrario invece con questo metodo una volta segnata la casella non devi più cancellare il segno che fai. Anche se in effetti facendolo a mano quando i segni diventano tanti diventa un po' un pasticcio...
E un'altra cosa: pensavo che senza il bruteforce non si potesse risolvere qualsiasi schema. Sbaglio?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2009, 08:44   #36
rеpne scasb
Senior Member
 
Iscritto dal: May 2008
Messaggi: 530

Ultima modifica di rеpne scasb : 18-06-2012 alle 15:36.
rеpne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2009, 09:24   #37
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Bravissima, repne
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2009, 09:52   #38
rеpne scasb
Senior Member
 
Iscritto dal: May 2008
Messaggi: 530

Ultima modifica di rеpne scasb : 18-06-2012 alle 15:36.
rеpne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2009, 09:54   #39
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Bravissima, repne
Vero. Non possiamo che inchinarci.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2009, 10:10   #40
rеpne scasb
Senior Member
 
Iscritto dal: May 2008
Messaggi: 530

Ultima modifica di rеpne scasb : 18-06-2012 alle 15:36.
rеpne scasb è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


MG4, due settimane al volante dell'elettrica popolare: pregi, difetti e autonomia MG4, due settimane al volante dell'elettrica pop...
Tre giorni in Finlandia con OnePlus Watch 2 Nordic Blue. La nostra prova a temperature estreme Tre giorni in Finlandia con OnePlus Watch 2 Nord...
Lenovo Factory Tour: siamo entrati nella fabbrica ungherese che produce PC, storage e server Lenovo Factory Tour: siamo entrati nella fabbric...
Acer Nitro V 15, alla prova il notebook gaming essenziale con RTX 4050 Laptop Acer Nitro V 15, alla prova il notebook gaming e...
Stellar Blade: l'action RPG di Shift Up sfoggia uno stile (quasi) unico su PS5 - Recensione Stellar Blade: l'action RPG di Shift Up sfoggia ...
Asteroid Institute e Google Cloud hanno ...
NASA Perseverance ha catturato nuove imm...
L'IA generativa richiede nuove professio...
Se le formule vi annoiano, potete usare ...
Amazon Seconda Mano (ex Warehouse): ecco...
Warren Buffett: l'intelligenza artificia...
La serie Realme 12 5G arriva in Italia p...
Incentivi auto elettriche annunciati ma ...
SpaceX presenta le tute spaziali per l'a...
Splunk State of Security 2024: cos&igrav...
Boom di investimenti per la produzione d...
Come disabilitare gli annunci pubblicita...
Joby Aviation ha completato i test di pr...
Apple 'Let Loose': cosa aspettarsi dall'...
Proton 9 rimuove il limite dei core: mig...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www2v