Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Ecuatie liniara-Backtracking?  (Citit de 2205 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
EDDYZY
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« : Iulie 18, 2013, 18:13:38 »

Salut ,
Ma puteti ajuta sa rezolv o problema c++?


Se considera ecuatia liniara a0x0 + a1x1 + . . . + an−1xn−1 = b, unde atat b cat si
coeficientii ai, i apartine {0..n − 1}, sunt numere ıntregi. Fiecare dintre variabilele xi, i apartine
{0..n−1}, poate lua valori doar numere ıntregi ın intervalul [inf, sup], acelasi pentru
toate variabilele (inf < sup sunt de asemenea numere ıntregi).

b) Scrieti ın limbajul C/C++ doua functii min si max care primesc ca argumente
numarul n, tabloul coeficientilor a, valoarea b, marginile inf si sup si un index
k apartine {0, ..n − 1} si returneaza min suma de la k la n-1 din aixi
, respectiv max suma de la k la n-1 din aixi
, unde xi apartine [inf, sup]. (6p.)
c) Scrieti ın limbajul C/C++ o functie care primeste ca argumente numarul n,
tabloul coeficientilor a, valoarea b, marginile inf si sup si returneaza un tablou
cu n elemente continand o solutie a ecuatiei date sau NULL daca ecuatia nu are
nicio solutie. Folositi functiile min si max definite mai sus pentru a eficientiza
procesul de cautare a solutiilor.


am o idee cum se rezolva:folosind backtraking generez toate sol din interval[inf,sup],si pt fiecare fac o verificare
ce nu inteleg e cum pot folosi functiile min si max.

va rog sa ma ajutati
Multumesc anticipat.
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #1 : Iulie 18, 2013, 18:34:11 »

Le folosesti ca sa-ti reduci numarul de incercari. Ideea e ca daca ti-ai fixat prin backtracking primele T variabile si ai suma S, atunci ai nevoie sa obtii suma B - S din celelalte N - T variabile. Daca B - S e mai mare decat maximul din cat stii ca poti obtine in ultimele N - T variabile (sau mai mic decat minimul) atunci n-are sens sa continui, e clar ca trebuie sa schimbi ceva din spate.
Memorat
EDDYZY
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« Răspunde #2 : Iulie 18, 2013, 18:47:37 »

Le folosesti ca sa-ti reduci numarul de incercari. Ideea e ca daca ti-ai fixat prin backtracking primele T variabile si ai suma S, atunci ai nevoie sa obtii suma B - S din celelalte N - T variabile. Daca B - S e mai mare decat maximul din cat stii ca poti obtine in ultimele N - T variabile (sau mai mic decat minimul) atunci n-are sens sa continui, e clar ca trebuie sa schimbi ceva din spate.

am inteles. deci aleg primele T variabile care au suma S ,si  verific ca suma B-S sa fie intre minimul si maximul celor N-T variabile
da am inteles conceptul dar mai am o intrebare:
cum incep ?asa pare simplu da cand ma dau la scris...
cu cate variabile incep?
una?
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #3 : Iulie 18, 2013, 19:16:04 »

Da, cu una Smile. O fixezi apoi mergi recursiv cu celelalte. La fiecare pas verifici daca are rost sa continui pe configuratia asta.
Memorat
EDDYZY
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« Răspunde #4 : Iulie 18, 2013, 19:32:50 »

Da, cu una Smile. O fixezi apoi mergi recursiv cu celelalte. La fiecare pas verifici daca are rost sa continui pe configuratia asta.

deci incep cu x1= inf da de exemplu
x1 poate sa fie egal cu x2,x3 etc?

inf =1 de ex

si sa am sol x1=x2=x3=...=1
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines