Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-11-2006, 12:02   #21
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
ognuno mette in mostra il proprio cavallo ma nessuno ci sale sopra...
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 12:09   #22
dupa
Senior Member
 
L'Avatar di dupa
 
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
Quote:
Originariamente inviato da Syphilis
ognuno mette in mostra il proprio cavallo ma nessuno ci sale sopra...
Eccoti la documentazione Java:
http://java.sun.com/j2se/1.5.0/docs/index.html

buon divertimento per la conversione del programma.
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino.
dupa è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 12:23   #23
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
hahaahh
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 12:37   #24
ekerazha
 
Messaggi: n/a
Quote:
Originariamente inviato da dupa
bè se è per questo allora un programma scritto in ASM potrebbe esser più veloce del rispettivo C++
Il fatto che come spiega anche l'articolo nel confronto Java VS C++, se il programmatore C++ non è molto bravo, allora probabilmente le ottimizzazione "automatiche" di Java avranno la meglio rispetto a una scarsa ottimizzazione manuale fatta dal coder C++

Allo stesso modo un codice assembler può essere in assoluto il più veloce, il fatto è che solo un super-guru potrebbe scrivere un codice asm per un programma molto complesso in modo completamente ottimizzato.. altrimenti rimane solo una gran confusione e difficoltà di mantenere il codice.
Questo è più che certo... ma a "parità di ottimizzazioni" C++ sembrerebbe più veloce.
  Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 14:57   #25
dupa
Senior Member
 
L'Avatar di dupa
 
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
Quote:
Originariamente inviato da ekerazha
Questo è più che certo... ma a "parità di ottimizzazioni" C++ sembrerebbe più veloce.
sì certo, però l'articolo spiega anche che per "pareggiare le ottimizzazioni", in C++ devi far molto più cose a mano, mentre Java fa tutto in modo molto più automatico.
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino.
dupa è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 15:04   #26
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
C'è qualcuno con un compilatore C++ sottomano che può controllare se il file cpp incollato da Syphilis compila?

Ho provato a fare una traslitterazione al volo ma ci sono alcuni pezzi che mi risultano non inizializzati. Sono quasi certo di aver tradotto tutto passo-passo ma, data la mia totale cecità in materia di reti neurali, potrei benissimo aver scritto il testo della vergine cuccia.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 15:18   #27
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
il testo della vergine cuccia. ahahhaha

dovrebbe esser alquanto giusto...io non lo capisco bene, ma dai commenti che ha messo quel ragazzo indiano che l'ha fatto sembra esserci tutto...non so...grazie mille pgi
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 15:23   #28
ekerazha
 
Messaggi: n/a
Quote:
Originariamente inviato da dupa
sì certo, però l'articolo spiega anche che per "pareggiare le ottimizzazioni", in C++ devi far molto più cose a mano, mentre Java fa tutto in modo molto più automatico.
Nessuno lo mette in dubbio..
  Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 21:02   #29
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
1. Premesso che di quanto ho scritto non ho capito ma non dico una virgola, meno;

2. Appurato che "me pare d'avello fatto uguale";

3. Dimostrato che tanto più s'allena Network quanto più ci azzecca e premettendo che, non sapendo quello che ho scritto, potrebbe essere un mero caso;

4. Da ultimo evidenziato che quanto segue non è codice Java ma una mera traslitterazione da C++ a Java con quei due aggiustamenti unicamente introdotti perchè a un certo punto m'ero perso;

Tutto ciò premesso, ecco la versione java che negherò sulla tomba dei miei avi di aver mai scritto.

Codice:
//File Main.java
import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		PrintStream out = System.out;
		int inp = 2, hid = 2, outp = 1;
		int[] layers = { inp, hid, outp };
		out.println("Enter number of training iterations: ");
		int iter = in.nextInt();
		Network net = new Network(0.1, layers, 3);
		double[] input = {1, 0};
		double[] outputs;
		net.randomizeWeightAndBiases();
		double[][] trainingInputs = {
			{0, 0},
			{1, 0},
			{0, 1},
			{1, 1},
		};
		double[][] trainingOutputs = {
			{0},
			{1},
			{1},
			{0}
		};
		out.println("Starting train...");
		for(int i = 0; i < iter; i++) {
			for(int j = 0; j < 4; j++) {
				net.train(trainingInputs[j], trainingOutputs[j]);
			}
		}
		out.println("End of training.");
		out.println("Start test...");
		for(int j = 0; j < 4; j++) {
			out.println("Case number: " + (j+1));
			net.setInputs(trainingInputs[j]);
			outputs = net.getOutput();
			for(int i = 0; i < inp; i++) {
				out.println("Input: " + (i+1) + " : " + trainingInputs[j][i]);
			}
			for(int i = 0; i < outp; i++) {
				out.println("Output: " + (i+1) + " : " + outputs[i]);
			}
		}
	}
}

class Dendrite {
	private double weight;
	private int pointsTo;

	public Dendrite() {
		weight = 0;
		pointsTo = 0;
	}

	public void setWeight(double weight) {
		this.weight = weight;
	}

	public void setPointsTo(int pointsTo) {
		this.pointsTo = pointsTo;
	}

	public double getWeight() {
		return weight;
	}

	public int getPointsTo() {
		return pointsTo;
	}
}

class Neuron {
	private int id;
	private double value;
	private double bias;
	private double delta;
	private Dendrite[] dendrites;

	public Neuron(int dendritesCount) {
		dendrites = new Dendrite[dendritesCount];
		for(int i = 0; i < dendrites.length; i++) {
			dendrites[i] = new Dendrite();
			dendrites[i].setPointsTo(i);
		}
	}

	public void setDendrites(int dendritesCount) {
		dendrites = new Dendrite[dendritesCount];
		for(int i = 0; i < dendrites.length; i++) {
			dendrites[i] = new Dendrite();
			dendrites[i].setPointsTo(i);
		}
	}

	public Dendrite getDendrite(int index) {
		return dendrites[index];
	}

	public double getDelta() {
		return delta;
	}

	public void setDelta(double delta) {
		this.delta = delta;
	}

	public int getId() {
		return id;
	}

	public void setValue(double value) {
		this.value = value;
	}

	public double getValue() {
		return value;
	}

	public void setBias(double bias) {
		this.bias = bias;
	}

	public double getBias() {
		return bias;
	}
}

class Layer {
	private Neuron[] neurons;

	public Layer(int size) {
		neurons = new Neuron[size];
		for(int i = 0; i < size; i++) {
			neurons[i] = new Neuron(1);
		}
	}

	public Neuron getNeuron(int index) {
		return neurons[index];
	}

	public void setNeuron(Neuron neuron, int index) {
		neurons[index] = neuron;
	}
}

class Network {
	private Random random = new Random();
	private double learningRate;
	private Layer[] layers;
	private int totLayers;
	private int[] neuronInLayer;
	private double[] netInputs;
	private double[] netOutputs;

	public Network(double learningRate, int[] layers, int totLayers) {
		if(totLayers < 2) throw new IllegalArgumentException("layer's count cannot be less than 2");
		this.learningRate = learningRate;
		neuronInLayer = new int[totLayers];
		this.layers = new Layer[totLayers];
		for(int i = 0; i < totLayers; i++) {
			neuronInLayer[i] = layers[i];
			this.layers[i] = new Layer(layers[i]);
		}
		netInputs = new double[layers[0]];
		netOutputs = new double[layers[totLayers - 1]];
		this.totLayers = totLayers;
	}

	public void setInputs(double[] inputs) {
		for(int i = 0; i < neuronInLayer[0]; i++) {
			layers[0].getNeuron(i).setValue(inputs[i]);
		}
	}

	public void randomizeWeightAndBiases() {
		for(int i = 0; i < totLayers; i++) {
			for(int j = 0; j < neuronInLayer[i]; j++) {
				if(i != (totLayers - 1)) {
					layers[i].getNeuron(j).setDendrites(neuronInLayer[i + 1]);
					for(int k = 0; k < neuronInLayer[i + 1]; k++) {
						layers[i].getNeuron(j).getDendrite(k).setWeight(getRand());
					}
				}
				if(i != 0) {
					layers[i].getNeuron(j).setBias(getRand());
				}
			}
		}
	}

	public double[] getOutput() {
		double[] outputs = new double[neuronInLayer[totLayers - 1]];
		for(int i = 1; i < totLayers; i++) {
			for(int j = 0; j < neuronInLayer[i]; j++) {
				layers[i].getNeuron(j).setValue(0);
				for(int k = 0; k < neuronInLayer[i - 1]; k++) {
					layers[i].getNeuron(j).setValue(layers[i].getNeuron(j).getValue() + layers[i - 1].getNeuron(k).getValue() * layers[i - 1].getNeuron(k).getDendrite(j).getWeight());
				}
				layers[i].getNeuron(j).setValue(layers[i].getNeuron(j).getValue() + layers[i].getNeuron(j).getBias());
				layers[i].getNeuron(j).setValue(limiter(layers[i].getNeuron(j).getValue()));
			}
		}
		for(int i = 0; i < neuronInLayer[totLayers - 1]; i++) {
			outputs[i] = layers[totLayers - 1].getNeuron(i).getValue();
		}
		return outputs;
	}

	public void update() {
		getOutput();
	}

	public double limiter(double value) {
		return (1.0 / (1 + Math.exp(-value)));
	}

	public double getRand() {
		return 2 * random.nextDouble() - 1;
	}

	public double sigmaWeightDelta(int layerNumber, int neuronNumber) {
		double result = 0;
		for(int i = 0; i < neuronInLayer[layerNumber + 1]; i++) {
			result = result + layers[layerNumber].getNeuron(neuronNumber).getDendrite(i).getWeight() * layers[layerNumber + 1].getNeuron(i).getDelta();
		}
		return result;
	}

	public void train(double[] inputs, double[] outputs) {
		double target, actual, delta;
		setInputs(inputs);
		update();
		for(int i = totLayers - 1; i > 0; i--) {
			for(int j = 0; j < neuronInLayer[i]; j++) {
				if(i == totLayers - 1) {
					target = outputs[j];
					actual = layers[i].getNeuron(j).getValue();
					delta = (target - actual) * actual * (1 - actual);
					layers[i].getNeuron(j).setDelta(delta);
					for(int k = 0; k < neuronInLayer[i - 1]; k++) {
						double dendriteWeight = layers[i - 1].getNeuron(k).getDendrite(j).getWeight();
						dendriteWeight += delta * learningRate * layers[i - 1].getNeuron(k).getValue();
						layers[i - 1].getNeuron(k).getDendrite(j).setWeight(dendriteWeight);
					}
					layers[i].getNeuron(j).setBias(layers[i].getNeuron(j).getBias() + delta * learningRate * 1);
				} else {
					actual = layers[i].getNeuron(j).getValue();
					delta = actual * (1 - actual) * sigmaWeightDelta(i, j);
					for(int k = 0; k < neuronInLayer[i - 1]; k++) {
						double dendriteWeight = layers[i - 1].getNeuron(k).getDendrite(j).getWeight();
						dendriteWeight += delta * learningRate * layers[i - 1].getNeuron(k).getValue();
						layers[i - 1].getNeuron(k).getDendrite(j).setWeight(dendriteWeight);
					}
					if(i != 0) {
						layers[i].getNeuron(j).setBias(layers[i].getNeuron(j).getBias() + delta * learningRate * 1);
					}
				}
			}
		}
	}
}
Per l'amor di tutti i santi, stacci attento perchè veramente non so il senso di quello che ho scritto .

E' un blocco unico per cui se copi il codice, lo incolli in un file "Main.java" e dai un javac Main.java, il compilatore sfrugullia tutto senza chiedere altro.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 21:36   #30
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
porca puzzola che lavorone grazie mille!!!

mi da un errore qui:

Scanner in = new Scanner(System.in);

Proprio all'inizio del codice settima righa...mi dice cannot find symbol
ora provo a smanettar un pò...speriam di capire!

t'adoro
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 21:41   #31
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Ho usato la versione 5 di java. Se non trova Scanner forse usi la 1.4.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 21:44   #32
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
sei aggiornato eh! uhm ed ora come fo?
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 21:45   #33
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
direi che è ora di scaricarmi la 5 ahhaha sta su sun immagino ve?
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:23   #34
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
ma qual'è che devo scaricar?? ho istallata ed ho provato a metterla in netbeans ma nulla...persiste...
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:36   #35
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Da qui:

http://java.sun.com/javase/downloads/index.jsp

JDK 5.0 Update 9

se l'hai già scaricato e installato controlla che Netbeans lo usi. Dovrebbe esserci un pulsante sotto un tombino, dietro una pietra di fianco a un cespuglio che ti consente di farlo.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:39   #36
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
ok quella l'ho scaricata & installata ora tocca trovar il cescpuglio
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:50   #37
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
niente uhm...non c'è una possibile sostituzione di Scanner?
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:56   #38
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Puoi usare BufferedReader.

Codice:
	public static void main(String[] args) {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		PrintStream out = System.out;
		int inp = 2, hid = 2, outp = 1;
		int[] layers = { inp, hid, outp };
		out.println("Enter number of training iterations: ");
		int iter;
		try {
			iter = Integer.parseInt(in.readLine());
		} catch(IOException ex) {
			throw new RuntimeException(ex);
		}
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 22:59   #39
Syphilis
Junior Member
 
Iscritto dal: Nov 2006
Messaggi: 27
copio tutto questo al posto di quella righetta?
Syphilis è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2006, 23:02   #40
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
No.

Al posto di

Scanner in = new Scanner(System.in)

ci metti

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

e al posto di

int iter = in.nextInt();

ci metti:

Codice:
int iter;
try {
    iter = Integer.parseInt(in.readLine());
} catch(Exception ex) {
    throw new RuntimeException(ex);
}
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
Il nuovo Snapdragon 8 Elite Gen 6 sar&ag...
Nintendo Switch 2: risultati sotto le at...
Weekend con tante sorprese su Amazon: to...
HONOR non si ferma più: il 2025 &...
Speciale best seller: EUREKA J15 Evo Ult...
Roborock Q10 X5+ da 10.000 Pa a 199€ &eg...
E-mail reset password di Instagram: la c...
La NASA ha discusso le problematiche del...
Il razzo spaziale NASA SLS e la capsula ...
Stazione Spaziale Internazionale: Crew-1...
Samsung Galaxy S26 Ultra: la ricarica de...
Apple ha un nuovo partner per la sua App...
Trenitalia introduce il prezzo dinamico ...
OnePlus non si ferma più: c'&egra...
DAZN sconta il piano Full per 6 mesi, se...
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: 21:17.


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