Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Il REDMAGIC Astra Gaming Tablet rappresenta una rivoluzione nel gaming portatile, combinando un display OLED da 9,06 pollici a 165Hz con il potente Snapdragon 8 Elite e un innovativo sistema di raffreddamento Liquid Metal 2.0 in un form factor compatto da 370 grammi. Si posiziona come il tablet gaming più completo della categoria, offrendo un'esperienza di gioco senza compromessi in mobilità.
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese di utilizzo intensivo e l'analisi di oltre 50 scatti, l'articolo offre una panoramica approfondita di Nintendo Switch 2. Vengono esaminate le caratteristiche che la definiscono, con un focus sulle nuove funzionalità e un riepilogo dettagliato delle specifiche tecniche che ne determinano le prestazioni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-08-2008, 12:09   #41
grigor91
Senior Member
 
L'Avatar di grigor91
 
Iscritto dal: Dec 2007
Città: brianza
Messaggi: 717
Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
Ciao Grigor, si, è decisamente interessante! Fammi sapere il titolo del libro quando esce(che evito di comprarlo).
A dire la verità è gia uscito da 15 anni, ho detto futuro perchè sistemi ce l'ho da settembre.
comunque il titolo è :"Affrontare l'Informatica"
autori : Daniela Cappelletti Sandra Frigiolini Luigi Giacchetti
editore: Loescher
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Turing!
Ahh la fretta...

Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Ci ha messo appena 35 minuti.
Codice:
Lettura completata in 2500.54476273 millisecondi. Caricata una matrice 200x200. Inizio la ricerca... completata in 2115368.25458 millisecondi. Risultato: posizione (94, 59) larghezza 56 somma 3185
Considerando che il mio Contest 4 in Python ci ha messo 13 minuti sulla mia macchina e 38 secondi su quella di grigor91, questo mio Contest 5B dovrebbe impiegare sulla sua macchina la bellezza di 1 minuto e 42 secondi. Considerando anche che il Contest 4 tradotto in C sono riuscito a farlo scendere a 4 minuti su questo catorcio, sul PC di grigor91 il Contest 5B dovrebbe arrivare intorno a... 30 secondi.
perchè 200x200? mica era 1000x1000? comunque i miei risultati sono questi:
Codice:
 Lettura completata in 120.084256519 millisecondi.Caricata una matrice 200x200. Inizio la ricerca... completata in 103166.230345 millisecondi. Risultato: posizione (94, 59) larghezza 56 somma 3185 Script terminated.
Con Psyco i risultati migliorano notevolmente:
Codice:
Inizio la ricerca... completata in 5039.79835426 millisecondi.Risultato: posizione (94, 59) larghezza 56 somma 3185
Script terminated.
Senza GC i miglioramenti sono minimi:
Codice:
Inizio la ricerca... completata in 4981.60464528 millisecondi.Risultato: posizione (94, 59) larghezza 56 somma 3185
Script terminated.
__________________
AMD Ryzen 9700X MSI RX 480 Gaming X 8G ASRock B850 Pro-A Windows 11 Pro RAM DDR5 16GBx2 TEAMGROUP T-Create Expert 6000 MHz CL30 SSD Crucial T500 4TB case Corsair Carbide 200R
grigor91 è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 13:15   #42
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
E' 20 volte più veloce!!!
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 14:06   #43
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Lo metto subito a scaricare, anche se so che la maggior parte della colpa non è di Python, ma di questa anticaglia da cui vi scrivo.

Comunque visto che è interessante e poco invasivo, da quel che vedo, lo provo e poi rilancio il programma.

ciao
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 14:53   #44
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Bene. Mi ci sono messo un pò, e ora dichiaro a tutti voi il vostro PWNAGE!

matrix loading, su matrix2.txt (200x200) funzionante richiede.......

3 millisecondi!

Chi ci riesce con phyton gli do la bambolina

Tuttavia c'ha solo un minimo problema, legge le cifre al contrario. Quando avrò tempo vedrò di fixarlo...
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 15:21   #45
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
E' 20 volte più veloce!!!
È davvero pazzesco, su questo stesso PC di prima mi ha ridotto il tempo di esecuzione da 35 minuti a 4 minuti!

E dal momento che a grigor il tempo viene già così di 5 secondi, voglio provare una modifica che evita un pochino di cicli inutili. Se poi ho tempo lo traduco anche in C e vedo fin dove lo posso spingere.
Quote:
Originariamente inviato da Tommo Guarda i messaggi
matrix loading, su matrix2.txt (200x200) funzionante richiede.......

3 millisecondi!
EDIT: avevo capito male io...
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!

Ultima modifica di DanieleC88 : 18-08-2008 alle 09:56.
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 16:06   #46
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Aggiornamento: ho spremuto ancora un po' il codice, da 4 minuti sono sceso a poco più di 2 minuti sulla mia macchina:
Codice:
Lettura completata in 1204.76541679 millisecondi.
Caricata una matrice 200x200.
Inizio la ricerca... completata in 128279.977036 millisecondi.

Risultato: posizione (94, 60) larghezza 56 somma 3185
Se la velocità è raddoppiata anche sul PC di grigor91, sono intorno ai 2.6 secondi.
Psyco è davvero forte.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 16:08   #47
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12814
Ci siamo finalmente, sono stato un po' tardo, ma per il 1° punto sembra che tutto finalmente vada per il verso giusto.

Ecco il codice (ho escluso la parte del caricamento da file) in C#:

Codice:
static int findSub(int[,] mat) {
            int p = 0;
            int next_i = 0;
            int next_j = 0;
            int max_i = 0;
            int max_j = 0;
            int max = 0;

            for (int i = 0; i < dim - 1; i++) {
                for (int j = 0; j < dim - 1; j++) {

                    if (mat[i, j] == 0) {
                        next_i = i;
                        next_j = j;
                        p = 1;
                        for (int k = p - 1; k >= 0 && k <= dim && i < dim - 1 && j < dim - 1; k--) {
                            if (mat[i - k, j + 1] == 0 && mat[i + 1, j - k] == 0) {
                                if (k == 0 && mat[i + 1, j + 1] == 0) {
                                    i++;
                                    j++;
                                    k = ++p;
                                }
                            } else break;
                        }
                        i = next_i;
                        j = next_j;
                        if (p > max) {
                            max = p;
                            max_i = next_i;
                            max_j = next_j;
                        }
                    }
                }
            }
            Console.WriteLine("Max dimension found: " + max + " at index (" + max_i + ", " + max_j + ")");
            // viewMatrix(mat, max_i, max_j, max);
            return max;
        }
Ecco l'output:

Codice:
Matrix dimensions: 1000
Max dimension found: 10 at index (110,257)
Elapsed: 26,7577ms
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 16:46   #48
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Giuro che questa è l'ultima versione del primo punto che posto. Tempo impiegato circa 1/3 della precedente
Codice:
require 'tools'

def min(a,b,c)
  a < b ? a < c ? a : c : b < c ? b : c
end

def contest5a(matrix)
  best = best_row = best_col = 0
  
  c = r = matrix.size - 1
  while c >= 0 do
    matrix[r][c] = matrix[r][c] == 0 ? 1 : 0
    c -= 1
  end
  
  c = r = matrix.size-1
  while r >= 0 do
    matrix[r][c] = matrix[r][c] == 0 ? 1 : 0
    r -= 1
  end
  
  c = r = matrix.size - 2
  while r >= 0 do
    while c >= 0 do
      matrix[r][c] = matrix[r][c] == 0 ? 1 + min(matrix[r+1][c], matrix[r][c+1], matrix[r+1][c+1]) : 0
      if matrix[r][c] > best
        best, best_row, best_col = matrix[r][c], r, c
      end
      c -= 1
    end
    c = matrix.size - 2
    r -= 1
  end
  
  return "best:#{best}  row:#{best_row}  col:#{best_col}"   
end

test_function :contest5a, 'Matrix1.txt'
Codice:
mirco@Macintosh:Contest5> ruby contest-a.rb 
carico la matrice... fatto (1.064655 secondi)
trovo la sottomatrice... fatto (0.611063 secondi)
best:10  row:110  col:257
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 19:33   #49
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da Tommo Guarda i messaggi
3 millisecondi!

Chi ci riesce con phyton gli do la bambolina

Tuttavia c'ha solo un minimo problema, legge le cifre al contrario. Quando avrò tempo vedrò di fixarlo...
Codice:
require 'tools.rb'


start = Time.now()
matrix = fast_load_matrix()
puts "Carico la matrice.... ok. (" + (Time.now - start).to_s + " secondi)"
Codice:
mirco@Macintosh:Contest5> ruby prova.rb 
Carico la matrice.... ok. (0.000311 secondi)
Aspetto la bambolina
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 19:43   #50
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Ah ma lui intendeva il solo caricamento! Pensavo la ricerca, LOL.

E comunque quello non è Python...
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 19:46   #51
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Ah ma lui intendeva il solo caricamento! Pensavo la ricerca, LOL.

E comunque quello non è Python...
Ruby è più lento di Python quindi la mia soluzione vale ancora di più.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 19:48   #52
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
Giuro che questa è l'ultima versione del primo punto che posto. Tempo impiegato circa 1/3 della precedente
Solo un dubbio: sbaglio o modifichi la matrice? (è ammessa la modifica?)
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2008, 19:52   #53
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Solo un dubbio: sbaglio o modifichi la matrice? (è ammessa la modifica?)
Penso di si. Al massimo si può allocare una matrice di appoggio su cui scrivere. La memoria richiesta raddoppia e le prestazioni ridursi di pochissimo per via di qualche cache miss in più.

Ultima modifica di VICIUS : 18-08-2008 alle 01:13.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2008, 09:32   #54
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Portata in C anche la soluzione al secondo punto:
Codice:
Lettura completata in 380 millisecondi.
Inizio la ricerca...
Ricerca completata in 21.42000 secondi.

Sottomatrice quadrata di somma massima:
	-> index: 12094
	-> side: 56
	-> sum: 3185

Devo stampare il sottoquadrato (94; 60)-(150; 116).
[...]
Sul PC di grigor91 la versione Python, che da me impiegava 4 minuti, girava in 5 secondi, questa dovrebbe essere più veloce, anche considerando che al momento uso TCC come compilatore, quindi l'eseguibile non dovrebbe nemmeno essere ottimizzato.

Per comodità allego un file .zip con le soluzioni, postarle qui occuperebbe troppo spazio.
Allegati
File Type: zip Contest 5.zip (3.3 KB, 7 visite)
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!

Ultima modifica di DanieleC88 : 18-08-2008 alle 09:52.
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2008, 10:11   #55
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
Giuro che questa è l'ultima versione del primo punto che posto. Tempo impiegato circa 1/3 della precedente
[...cut...]
Bello è migliorata molto anche la "strutturazione" del codice e il suo valore estetico (almeno a me piace molto: non saprei bene come spiegarlo a parole però la sensazione che ho al colpo d'occhio è che ci sia una "bella ritmica". Certo questo non è direttamente correlato alla logica dell'algortimo, ed è soggettivo)
Bravo Vicius!
__________________

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 18-08-2008, 11:01   #56
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515


Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <time.h>

#define BUFFER_SIZE 4096

typedef enum tagStati
{
	S_ERROR = -1, S0, S1, S2
} Stati;

int GetArraySize(const char *szFileName)
{
	int array_size;
	FILE *fp;
	char buffer[BUFFER_SIZE + 1];
	int numread;
	int k;
	char c;

	fp = fopen(szFileName, "rb");
	if ( fp == NULL )
	{
		printf("Errore nell'apertura del file %s\n", szFileName);
		return S_ERROR;
	}

	numread = fread(buffer, 1, BUFFER_SIZE, fp);
	if (numread == 0)
	{
		fclose(fp);
		printf("Errore 4 nella lettura del file %s\n", szFileName);
		return S_ERROR;
	}
	*(buffer + numread + 1) = '\0';

	k = 0;
	c = *(buffer + k);
	array_size = 0;
	while ( c != '\n' )
	{
		if ( c >= '0' && c <= '9' )
		{
			array_size = array_size * 10 + c - '0';

		}
		c = *(buffer + k++);
	}

	fclose(fp);

	return array_size;
}

Stati DFA(const char *szFileName, int **a, int array_size)
{
	Stati stato = S0;
	FILE *fp;
	unsigned char buffer[BUFFER_SIZE + 1];
	int numblocks;
	int numread;
	char c;
	int k, x;
	int riga, colonna;
	int num;
	int segno;

	fp = fopen(szFileName, "rb");
	if ( fp == NULL )
	{
		printf("Errore nell'apertura del file %s\n", szFileName);
		return S_ERROR;
	}

	if ( fseek(fp, 0, SEEK_END) )
		return 0;

	numblocks = ftell(fp)/BUFFER_SIZE;
	if ( numblocks == 0 )
	{
		numblocks = 1;
	}
	else
	{
		if ( ftell(fp) % BUFFER_SIZE != 0 )
			numblocks++;
	}

	fseek(fp, 0, SEEK_SET);
	numread = fread(buffer, 1, BUFFER_SIZE, fp);
	if (numread == 0)
	{
		fclose(fp);
		printf("Errore 1 nella lettura del file %s\n", szFileName);
		return S_ERROR;
	}

	k = 0;
	c = *(buffer + k++);
	while ( c != '\n' )
	{
		if (c == '\0')
		{
			printf("Errore 2 nella lettura del file.\n");
			fclose(fp);
			return S_ERROR;
		}
		c = *(buffer + k++);
	}

	riga = colonna = 0;
	num = 0;
	x = 0;
	while ( x < numblocks )
	{
		c = *(buffer + k++);

		switch ( stato )
		{
		case S0:
			segno = 1;
			if ( c >= '0' && c <= '9' )
			{
				num = c - '0';
				stato = S1;
			}
			else if ( c == '-' )
			{
				num = 0;
				stato = S2;
			}
			else if ( c == '\r' )
			{
			}
			else if ( c == '\n' )
			{
				colonna = 0;
				riga++;
				if (riga >= array_size)
					return stato;
			}
			else
			{
				printf("Automa: Stato S0 errore sul carattere -> '%c' k -> %d\n", c, k);
				return S_ERROR;
			}
			break;
		case S1:
			if ( c >= '0' && c <= '9' )
			{
				num = num * 10 + c - '0';
			}
			else if ( c == ' ' )
			{
				a[riga][colonna] = num * segno;
				num = 0;
				colonna++;
				stato = S0;
			}
			else 
			{
				printf("Automa: Stato S1 errore sul carattere -> '%c'\n", c);
				return S_ERROR;
			}
			break;
		case S2:
			if ( c >= '0' && c <= '9' )
			{
				num = c - '0';
				segno = -1;
				stato = S1;
			}
			else 
			{
				printf("Automa: Stato S2 errore sul carattere -> '%c'\n", c);
				return S_ERROR;
			}
			break;
		}

		if ( k >= BUFFER_SIZE )
		{
			numread = fread(buffer, 1, BUFFER_SIZE, fp);
			if (numread == 0)
			{
				fclose(fp);
				printf("Errore 3 nella lettura del file %s\n", szFileName);
				return S_ERROR;
			}
			k = 0;
			x++;
		}
	}

	fclose(fp);

	return stato;
}

int main()
{
	clock_t c_start, c_end;
 
	int **m;
	int x, y, k;
	int array_size;
	Stati stato;
	char *szFileName = "matrix2.txt";

	int riga, colonna;
	int dim;
	int somma;

	int riga2, colonna2;

	int riga_temp, colonna_temp;
	int dim_temp;
	int somma_temp;

	c_start = clock();

	array_size = GetArraySize(szFileName);
	if ( array_size <= 0 )
		return;

	m = (int**)malloc(sizeof(int*)*array_size);
	if ( m != NULL )
	{
		for ( x = 0; x < array_size; x++ )
		{
			m[x] = (int*)malloc(sizeof(int)*array_size);
			if ( m[x] == NULL )
			{
				printf("Memoria insufficiente.\n");
				return S_ERROR;
			}
		}
	}
	else
	{
		printf("Memoria insufficiente.\n");
		return S_ERROR;
	}

	stato = DFA(szFileName, m, array_size);
	if ( stato == S_ERROR )
	{
		printf("L'automa ha restituito un errore.\n");
		return;
	}

	c_end = clock();
	printf("\nTempo impiegato per la lettura del file -> %5.5f secondi\n", (double)(c_end - c_start) / CLOCKS_PER_SEC);

	c_start = clock();

	x = y = 0;
	while ( x < array_size - x && y < array_size - y )
	{
		somma = somma_temp = 0;
		dim = array_size/2;
		while ( dim > 1 )
		{
			for ( riga = y; riga <= y + dim; riga++ )
			{
				for ( colonna = x; colonna <= x + dim; colonna++ )
				{
					somma += m[riga][colonna];
				}
				if ( somma > somma_temp )
				{
					riga_temp = riga - dim;
					colonna_temp = colonna - dim;
					dim_temp = dim;
					somma_temp = somma;
				}
			}
			somma = 0;
			--dim;
		}
		x++;
		y++;
	}

	riga = riga_temp - 1;
	colonna = colonna_temp - 1;
	dim = dim_temp + 1;
	k = 0;
	somma = somma_temp;
	while ( riga >= 0 )
	{
		y = riga--;
		x = colonna--;

		for ( k = 0; k < dim; k++ )
		{
			somma += m[y][x+(k+1)];

			if ( somma > somma_temp )
			{
				riga_temp = riga;
				colonna_temp = colonna;
				dim_temp = dim;
				somma_temp = somma;
			}
		}
		dim++;
	}

	riga = riga_temp + 1;
	colonna = colonna_temp + 1;
	dim = dim_temp;
	somma = 0;

	for ( y = riga; y <= riga + dim; y++ )
	{
		for ( x = colonna; x <= colonna + dim; x++ )
		{
			somma += m[y][x];
		}
	}

	if ( somma > somma_temp )
	{
		riga_temp = riga;
		colonna_temp = colonna;
		dim_temp = dim;
		somma_temp = somma;
	}

	c_end = clock();

	printf("\nRiga       -> %d\nColonna    -> %d\nDimensione -> %d\nSomma      -> %d\n", riga_temp, colonna_temp, dim_temp, somma_temp);

	printf("\nTempo impiegato per la ricerca -> %5.5f secondi\n", (double)(c_end - c_start) / CLOCKS_PER_SEC);

	for ( x = 0; x < array_size; x++ )
		free(m[x]);
	free(m);

	return 0;
}
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2008, 11:29   #57
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12814
Incredibile Complimenti Vincenzo... io ancora sto cercando di capire perché non funziona sulla matrice grande (o meglio non mi tornano i vostri risultati), con una matrice di prova 4x4 funziona (anche logicamente sembra) ma con quella da usare no.

In sostanza parto dall'origine (0,0) sommando tutti gli elementi della 2x2 dopodiché vi aggiungo quelli della 3x3, poi quelli della 4x4 e così via facendo sempre confronti col massimo attuale... poi cambio posizione (0,1), (0,2) e così via...

Ultima modifica di WarDuck : 18-08-2008 alle 11:37.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2008, 11:45   #58
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
Tu mi fai paura.

A parte scherzi, ottimo risultato.
Già che ci sei proveresti anche a lanciare la mia soluzione per il punto? Sono curioso di vedere quanto tempo impiega su un computer degno di tale nome.

ciao
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2008, 12:02   #59
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Comunque, sbaglio io o la sottomatrice è 56x56, e non 55x55? Ho visto l'output stampato dal mio programma (che è 56x56) una volta terminata la ricerca e sommando i numeri mi viene effettivamente 3185...
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2008, 12:14   #60
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
Codice:
require 'tools.rb'


start = Time.now()
matrix = fast_load_matrix()
puts "Carico la matrice.... ok. (" + (Time.now - start).to_s + " secondi)"
Codice:
mirco@Macintosh:Contest5> ruby prova.rb 
Carico la matrice.... ok. (0.000311 secondi)
Aspetto la bambolina
"Ma questo è un mostro" (cit.)

Beh davvero complimenti... lo sospettavo che le versioni migliori sarebbero uscite più in là...
cmq come diavolo hai fatto? Io ho tolto qualsiasi cosa, cioè la conversione in float la faccio con un elenco di else if
Dev'essere iostream che non è esattamente velocissimo. Magari una macchina a stati andrebbe di più. Peccato che non abbia idea di come si fa

Cmq niente bambolina, l'hai fatto in Ruby, non in Phyton
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Gigabyte Aero X16 Copilot+ PC: tanta potenza non solo per l'IA Gigabyte Aero X16 Copilot+ PC: tanta potenza non...
vivo X200 FE: il top di gamma si è fatto tascabile? vivo X200 FE: il top di gamma si è fatto ...
2 minuti: il tempo per scorrere le 25 of...
Mini LED TCL: confronto tra le migliori ...
Robot aspirapolvere: questi sono i più a...
Portatile tuttofare Lenovo Core i5/16GB ...
Scende a 99€ il tablet 11" 2,4K con...
Amiga: quali erano i 10 giochi più belli
Driver più sicuri: Microsoft alza...
Ego Power+ ha la giusta accoppiata per l...
Scompiglio nei listini Amazon: prezzi im...
Sotto i 105€ il robot Lefant che lava, a...
Mini proiettori smart in offerta: uno co...
Smartwatch Amazfit in offerta: Balance o...
Windows XP ritorna: ecco come usarlo sub...
Arrow Lake in saldo: Intel taglia i prez...
LG C4 da 55'' a 899€ è il top per...
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: 22:18.


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