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 09-03-2012, 13:52   #1
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
[c++] funzione ricorsiva definita come segue

Sia A l'insieme ricorsivo di numeri naturali definito come segue:

0 non appartiene ad A
1 appartiene ad A
X appart. ad A se e solo se (3x-2)/6 appartiene ad A, per ogni x>1


Si scriva in C++ una funzione ricorsiva che verifichi se un dato numero appartiene o meno all'insieme A.
Specificare quale deve essere la prima invocazione per la funzione.
NOTA: La divisione si intende fra interi (non negativi), quindi da approssimare per difetto.

cos'è che non va?

mio codice
Codice:
#include <iostream>
using namespace std;

bool verifica(int x);

int main(){
    int x=5;
    if(verifica(x))
    cout<<"ok"<<endl;
    else
    cout<<"no"<<endl;
    
    
system("pause");
return 0;
}

bool verifica(int x){
     int xx=0;
     
     if(x == 0 || xx == 0)
     return false;
     
     if(x == 1 || xx == 1)
     return true;
     
    if(x > 1)
    xx=(3*x-2)/6;
    
    return verifica(xx);
     
}

Ultima modifica di mistergks : 10-03-2012 alle 10:28. Motivo: errori nella traccia e nel codice
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2012, 14:31   #2
ESSE-EFFE
Member
 
Iscritto dal: May 2009
Messaggi: 186
Quote:
Originariamente inviato da mistergks Guarda i messaggi
Sia A l'insieme ricorsivo di numeri naturali definito come segue:
Cioè come?
__________________
ESSE-EFFE.com
Sviluppo software e Web
Creazione loghi - Bergamo
ESSE-EFFE è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2012, 20:10   #3
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
C'è stato un errore di copia incolla..ora ho messo la definizione..

Inviato dal mio GT-I9003 usando Tapatalk
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2012, 01:35   #4
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da mistergks Guarda i messaggi
Sia A l'insieme ricorsivo di numeri naturali definito come segue:
0 non appartiene ad A
1 appartiene ad A
X appart. ad A se e solo se 3x-2/6 appartiene ad A

Si scriva in C++ una funzione ricorsiva che verifichi se un dato numero appartiene o meno all'insieme A.
Specificare quale deve essere la prima invocazione per la funzione.
NOTA: La divisione si intende fra interi (non negativi), quindi da approssimare per difetto.

cos'è che non va?

mio codice
Codice:
#include 
using namespace std;

bool verifica(int x);

int main(){
    int x=5;
    if(verifica(x))
               cout<<"ok";
    else   cout<<"no";

return 0;
}

bool verifica(int x){
        int xx= 0;

        if(x == 0 || xx ==0)
            return false;

         if(x == 1 || xx == 1)
            return true;

       xx=(3*x-2)/6;
          return verifica(xx);
}
Non ho ben capito la definizione...devo ricorsivamente applicare la formula fino a che il mio numero x diventa o 1 o 0?
E la formula qual è? Nella definizione hai scritto 3x-2/6, nel codice invece (3x-2)/6, che già usando 2 non da un numero intero...

A prescindere da tutto ciò, verifica uscirà sempre con false senza mai richiamarsi nemmeno una volta, perchè tu imponi xx = 0 e poi esci subito al primo if...
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2012, 10:31   #5
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
ora ho messo definitivamente apposto la traccia e il codice...scusate ma ho postato con lo smartphone e mi sono perso qualcosa

Quindi credo che si debba fare cosi...se x è uguale a deve ritornare false, se x è uguale a 1 true e se x>1 deve passare nella formula (3x-2)/6 .
E credo debba convergere verso uno dei casi base...altrimenti non ho capito nemmeno io la traccia!
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2012, 11:29   #6
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da mistergks Guarda i messaggi
ora ho messo definitivamente apposto la traccia e il codice...scusate ma ho postato con lo smartphone e mi sono perso qualcosa

Quindi credo che si debba fare cosi...se x è uguale a deve ritornare false, se x è uguale a 1 true e se x>1 deve passare nella formula (3x-2)/6 .
E credo debba convergere verso uno dei casi base...altrimenti non ho capito nemmeno io la traccia!
Sarà come dici tu con la formula (3x-2)/6. Ieri ho detto che usando x = 2 non si ottiene un numero intero ma in realtà essendo una divisione tra interi si otterrebbe 0.
Cmq basta che negli if tu metta il controllo solo su x e non su xx, il resto va bene.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2012, 11:56   #7
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da vendettaaaaa Guarda i messaggi
Sarà come dici tu con la formula (3x-2)/6. Ieri ho detto che usando x = 2 non si ottiene un numero intero ma in realtà essendo una divisione tra interi si otterrebbe 0.
Cmq basta che negli if tu metta il controllo solo su x e non su xx, il resto va bene.
Ad esempio mettendo x=5...facendola a mano dopo tutte le ricorsioni verrebbe 1 e quindi restituirebbe true...invece mi dà false! (sempre arrotondando per difetto e quindi usando gli int)..

Ho inizializzato x=3 e mi stampa OK... provando a mano..viene 1 al primo passo...quindi secondo me si ferma a un solo passo e non viene richiamata piu' volte la funzione... l'errore è questo ma non so come risolverlo

Ultima modifica di mistergks : 10-03-2012 alle 12:21.
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2012, 12:18   #8
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
5 è false:
1° chiamata 5 == 0? no, 5 == 1? no, allora xx = (15-2)/6 = 13/6 = 2; return verifica(2).
E sappiamo che 2 restituisce false.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2012, 12:27   #9
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Codice:
#include <iostream>

using namespace std;

bool verifica(int x);

int main()
{
	for (int i = 0; i <= 100; ++i) {
		cout << i << " does";
		if (!verifica(i)) cout << " not";
		cout << " belong to this weird recursive sequence" << endl;
	}
	cout << endl;

	return 0;
}

bool verifica(int x)
{
	if (x == 0) return false;
	else if (x == 1) return true;
	else {
		int y = (3*x - 2)/6;
		return verifica(y);
	}     
}
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2012, 12:30   #10
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
Quote:
Originariamente inviato da vendettaaaaa Guarda i messaggi
5 è false:
1° chiamata 5 == 0? no, 5 == 1? no, allora xx = (15-2)/6 = 13/6 = 2; return verifica(2).
E sappiamo che 2 restituisce false.
opsss è vero!! non so manco fare i conti più ..
E allora qual'è un numero > 1 che restituisce true?! non riesco a trovarlo!
mistergks è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2012, 22:25   #11
cenarius_88
Member
 
Iscritto dal: Nov 2007
Città: Alcamo
Messaggi: 103
Mi sbaglierò ma...

prova con x = 3.

3==0? no... procede
3==1? no... procede
(3*3-2)/6=(9-2)/6=7/6=1 (per arrotontamento all'intero più vicino)
procede con verifica(1)

1==0?no... procede
1==1?si... vero....stampa ok
cenarius_88 è 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...
Il drone NASA Dragonfly ha volato per la...
GTA 6, preload dal 10 novembre: servono ...
The Elder Scrolls VI: Sentinel, Bethesda...
Un doppio disco di detriti attorno a una...
Windows 11: risolta la disattivazione fo...
42AI, l'intelligenza artificiale anticip...
Windows 11 26H2 gira con appena 128 MB d...
GPT-6.2 Astra compare in Codex, Claude F...
Record assoluto per Linux 7.4: quasi mez...
Datacenter “standard” esonerato dalla va...
Occhio ai consumi: nuovi limiti condivis...
Ericsson ISAC System, la tecnologia per ...
Comprano processori solo per gettarli: l...
Canva lancia Affinity per iPad: sketch, ...
Revolut abbandona OpenAI e Anthropic com...
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:37.


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