Torna indietro   Hardware Upgrade Forum > Software > Programmazione

MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-03-2012, 02:48   #1
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
[C++] Distanza alfabetica ricorsiva in una stringa

Provando a fare questo esercizio...ho incontrato una difficoltà... distanza la definisco come la differenza tra dim/2 e il primo elemento dell'array. In questo esempio mi dà l'intero 3.
Ora...quando faccio la ricorsiva... a volte mi da 3 e a volte -3.. quindi non rispetta la condizione e restituisce sempre false.. help me!!!


Quote:
Si scriva in C++ una funzione ricorsiva che riceva almeno un array di caratteri (assumendo che contenga solo lettere dell’alfabeto minuscole) e la sua dimensione (supponendo che sia sempre PARI) e restituisca TRUE se è verificata la seguente proprietà. Si considerino coppie di elementi di cui il primo è nella prima metà dell’array, e il secondo è l’elemento di posto corrispondente nella seconda metà. Per ogni coppia, la distanza tra i due elementi nell’alfabeto inglese deve essere uguale. La distanza tra due lettere è un numero positivo, ed è definita come il numero di lettere che intercorrono tra essi nell’ordine alfabetico. Esempio: la funzione invocata su un array contenente la sequenza di caratteri ‘a’ ‘t’ ‘h’ ‘i’ ‘d’ ‘q’ ‘k’ ‘f’ dovrà restituire TRUE. Infatti la distanza tra il primo elemento della prima metà (‘a’) e il primo elemento della seconda metà (‘d’) è pari a 3 e così è per tutte le altre coppie di elementi corrispondenti (‘t’ --‘q’, ‘h’ -- ‘k’ e ‘i’ -- ‘f’).
Specificare quale deve essere la prima invocazione per la funzione.

SOLUZIONE:
Codice:
#include <iostream>
using namespace std;

bool distanzaalfa(char alfa[], int dim, int i);


int main(){
    const int dim=8;
    char alfa[]={"athidqkf"};
    int i=1;
    if(distanzaalfa(alfa,dim,i))
    cout<<"ok"<<endl;
    else cout<<"no"<<endl;
    
    



system("pause");
return 0;
}

bool distanzaalfa(char alfa[], int dim, int i){
     int distanza=0;
     
     if(dim%2!=0)
     return false;
     
     if(i==dim/2)
     return true;
     
     distanza=alfa[dim/2]-alfa[0];
     
     if(alfa[dim/2+i] - alfa[i] != distanza)
     return false;


     return distanzaalfa(alfa, dim, ++i);
}
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2012, 03:25   #2
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Usa abs(int):
Codice:
bool distanzaalfa(char alfa[], int dim, int i)
{
	if (dim % 2 != 0) return false;
	
	static int distanza = abs(alfa[dim/2] - alfa[0]);
	
	if (i == dim/2) return true;

	if (abs(alfa[dim/2+i] - alfa[i]) != distanza) return false;
	
	return distanzaalfa(alfa, dim, i + 1);
}
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2012, 11:15   #3
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
sarebbe il modulo? è un po una scappatoia;-) ..ai fini di esercitazione universitaria come potrei fare?

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2012, 12:21   #4
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
...
Ma che scappatoia e scappatoia! La distanza, in ogni ambito della matematica e delle scienze è un numero positivo, le distanze negative non hanno senso, quindi ci metti il modulo e punto.
Te lo suggerisce pure il testo dell'esercizio dicendo esplicitamente "la distanza tra due lettere è un numero positivo".

Ultima modifica di vendettaaaaa : 11-03-2012 alle 12:23.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2012, 16:37   #5
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da vendettaaaaa Guarda i messaggi
...
Ma che scappatoia e scappatoia! La distanza, in ogni ambito della matematica e delle scienze è un numero positivo, le distanze negative non hanno senso, quindi ci metti il modulo e punto.
Te lo suggerisce pure il testo dell'esercizio dicendo esplicitamente "la distanza tra due lettere è un numero positivo".
beh in effetti hai ragione.. ok allora il problema era questo!

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
LG OLED C6 da 77 pollici, il prezzo scen...
Apple avvisa 99 Paesi: spyware mercenari...
Zenbook S Con Core 5 Ultra e schermo da ...
Prendere appunti con dito, penna e AI: c...
Itch.io, filtro "No AI": i giochi visibi...
Microsoft conferma: il nuovo speed test ...
Il capo può far leggere a Claude le chat...
L'AI fa volare AMD, ma c'è un set...
Le scuole statunitensi che rifiutano Gem...
WhatsApp, addio al supporto su iPhone e ...
Cinque grandi classici si uniscono al GO...
Ferrari Luce, la produzione 2027 è...
Contatori del condominio, la data da seg...
Windows 11, 8 GB di RAM non sono pi&ugra...
Octopus Energy ritira la tariffa Flex Mu...
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: 09:37.


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