Anda di halaman 1dari 9

$SXQWHVGH(VWUXFWXUDGH'DWRV  $SXQWHVGH(VWUXFWXUDGH'DWRV 

$XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR

8QLGDG
$QiOLVLVGH$OJRULWPRV

 &RQFHSWRGH&RPSOHMLGDGGH$OJRULWPRV

3DUDUHVROYHUXQSUREOHPDHVIUHFXHQWHGLVSRQHUGHPiVGHXQDOJRULWPR // -------- Solución 1 -------------


#include <iostream>
(O DQiOLVLV GH DOJRULWPRV VLUYH SDUD WHQHU HOHPHQWRV GH GHFLVLyQ SDUD HOHJLU HO PDV #define LIMINF 1
HILFLHQWH GH HOORV GHVGH OXHJR VLHPSUH \ FXDQGRODV GLIHUHQWHV RSFLRQHV UHVXHOYDQ #define LIMSUP 10000
HOPLVPRSUREOHPDHQIRUPDFRUUHFWD using namespace std;
int main()
(MHPSOR
{
(VFULEDGRVGLIHUHQWHVSURJUDPDVTXHUHVXHOYDQHOVLJXLHQWHSUREOHPD
int const n=100;
‰ 8QDPiTXLQDVHHQFDUJDGHGHWHFWDUFRQWLQXDPHQWHORVPLFURVLVPRV\VLVPRVGHO
short int datos[n];
srand(time(NULL));
YROFiQSRSRFDWpSHWO
for(int i=0;i<n;i++)
‰ 8VWHG GHEH GLVHxDU GRV GLIHUHQWHV SURFHGLPLHQWRV TXH UHFLEDQ XQ GDWR HQWHUR
datos[i]=rand()%LIMSUP+LIMINF;
HQWUH\FRUUHVSRQGLHQWHDXQDPLOpVLPDGHODHVFDODGH5LFKWHULQGLFDWLYR
// ------ Inicia Cálculo de Resultados ----------
GHXQPLFURVLVPRGHWHFWDGR
int temp;
‰ 'XUDQWH FLHUWR SHUtRGR GH WLHPSR VH UHFLELUiQ 1 GDWRV \ FDGD SURJUDPD int etapa = 1;
HQFRQWUDUiORVYDORUHVPtQLPR\Pi[LPRDOFDQ]DGRV bool hubocambio;
do
/D FRPSOHMLGDG FRPSXWDFLRQDO HV XQD PHGLGD GH ORV UHFXUVRV TXH VH {
LQYHUWLUiQSDUDLPSOHPHQWDUXQDOJRULWPRHQXQDFRPSXWDGRUD hubocambio = false;
for(int i=0;i<n-etapa;i++)
/RV UHFXUVRV TXH SXHGH VHU GH LQWHUpV FRQWURODU VRQ YDULDGRV VLQ HPEDUJR  HO if (datos[i]>datos[i+1])
HQIRTXHJHQHUDOVHFHQWUDHQ {
temp=datos[i];
‰ 7LHPSRGH(MHFXFLyQ &RPSOHMLGDGHQHO7LHPSR 
datos[i]=datos[i+1];
‰ (VSDFLRUHTXHULGR &RPSOHMLGDGHQHO(VSDFLR 
datos[i+1]=temp;
hubocambio = true;
};
(O REMHWLYR GHO DQiOLVLV GH DOJRULWPRV HV FUHDU SURJUDPDV FRQ OD PHQRU FRPSOHMLGDG
etapa++;
HVSDFLDO\WHPSRUDO
}
while (hubocambio);
(O UHFXUVR PiV FUtWLFR HV HO 7LHPSR GH HMHFXFLyQ GH XQ SURJUDPD SRU OR TXH HO // -------- Fin Cálculo de Resultados -----------
SUREOHPDSODQWHDGRDUULEDORUHVROYHUHPRVFRQGRVDOJRULWPRV GLVWLQWRVGH GLIHUHQWH printf("Dato Menor: %d\n",datos[0]);
FRPSOHMLGDGWHPSRUDOSHURPLVPDFRPSOHMLGDGHQHOHVSDFLR printf("Dato Mayor: %d\n",datos[n-1]);
system("pause");
‰ (O DOJRULWPR GHVGH HO SXQWR GH YLVWD GHO XVR GH OD PHPRULD SDUD DPEDV return 0;
VROXFLRQHVHVHOPLVPRORVGDWRVREWHQLGRVVHFRQVHUYDQHQXQYHFWRU }

‰ /DGLIHUHQFLDHVWULEDHQODIRUPDGHHQFRQWUDUORVYDORUHVPHQRU\PD\RU
$SXQWHVGH(VWUXFWXUDGH'DWRV  $SXQWHVGH(VWUXFWXUDGH'DWRV 
$XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR

(PSH]DUHPRVKDFLHQGRDQiOLVLVGHFRPSOHMLGDGPHGLDQWHHOHQIRTXHHPStULFR
// ------------ Solución 2 -------------
#include <iostream>
#define LIMINF 1 ‰ $xDGDDQXHVWURVGRVSURJUDPDVHOFyGLJRQHFHVDULRSDUDPHGLUHOWLHPSRTXHVH

#define LIMSUP 10000 HPSOHDSDUDHQFRQWUDUORVUHVXOWDGRVHVSHUDGRV


using namespace std; ‰ 8QRGHORVIDFWRUHVTXHLQIOX\HQHQODFRPSOHMLGDGHVODFDQWLGDGGHGDWRVD
int main() SURFHVDU WDPDxRGHODHQWUDGD HQHVWHFDVR1
{ ‰ 5HJLVWUH HQ XQD WDEOD FRPR OD VLJXLHQWH ORV UHVXOWDGRV TXH VH SLGHQ SDUD FDGD
int const n=100; XQRGHORVGRVSURJUDPDV
short int datos[n];
srand(time(NULL));
‰ &RQVLGHUHVRORHOWLHPSRWUDQVFXUULGRSDUDHQFRQWUDUORVUHVXOWDGRV

for(int i=0;i<n;i++)
7DPDxRGHO 7LHPSR(PSOHDGR
datos[i]=rand()%LIMSUP+LIMINF;
// ------ Inicia Cálculo de Resultados ---------- 9HFWRU IUDFFLRQHVGHVHJXQGRVLHV

int menor=LIMSUP; 1 QHFHVDULR

int mayor=LIMINF; 


for(int i=0;i<n;i++) 
{ 
if (datos[i]<menor) menor=datos[i];

if (datos[i]>mayor) mayor=datos[i];

}
// ------ Inicia Cálculo de Resultados ---------- 
printf("Dato Menor: %d\n",menor); 
printf("Dato Mayor: %d\n",mayor); 
system("pause"); 
return 0; 
}
2WUR IDFWRU PX\ LPSRUWDQWH TXH LQIOX\H HQ OD FRPSOHMLGDG HV OD QDWXUDOH]D GH ORV
/$&203/(-,'$'6(38('(2%7(1(5'(0$1(5$6
GDWRVGHHQWUDGD

‰ $35,25, )RUPD7HyULFD 
‰ 'HSHQGLHQGR GH FXDOHV VRQ ORV GDWRV GH HQWUDGD FRPR HVWiQ GLVSXHVWRV
‰ ³$ 3ULRUL´ VLJQLILFD ³DQWHV´ HV GHFLU VH DSOLFD OD WHRUtD GH FRPSOHMLGDG
ItVLFDPHQWHSRUHMHPSOR FLHUWDVLQVWUXFFLRQHVVHHMHFXWDUiQRQR
FRPSXWDFLRQDODODOJRULWPRSDUDGHWHUPLQDUHOJUDGRGHHILFLHQFLDTXHWHQGUi
HOSURJUDPD9HQWDMDV
6XSRQJDPRVTXHEDMRFLHUWDVFRQGLFLRQHV ORVGDWRVHVWiQRUGHQDGRVGH PHQRU
‰ 1R VH WLHQH TXH HVFULELU HO SURJUDPD FRQ HO DKRUUR HQ FRVWRV
DPD\RUFXDQGRVHREWLHQHQODVPHGLFLRQHVGHORVVLVPRV
FRUUHVSRQGLHQWH VH HVFULELUi FXDQGR VH KD\DQ DQDOL]DGR GLIHUHQWHV
DOJRULWPRV\HOHJLGRHOPHMRU
/XHJRVXSRQJDPRVTXHEDMRRWUDVFRQGLFLRQHVORVGDWRVHVWiQRUGHQDGRV SHUR GH
‰ (VWHDQiOLVLVHVLQGHSHQGLHQWHGHODVFRQGLFLRQHVGHHMHFXFLyQHVGHFLUQR
PD\RUDPHQRU
LPSRUWD VL HO HTXLSR GRQGH FRUUHUi HO SURJUDPD HV UiSLGR R OHQWR HO
DOJRULWPRHVHILFLHQWHRQRORHV
‰ 0RGLILTXHDPERVSURJUDPDV\REWHQJDQXHYDVWDEODV,GHQWLILTXHODVWDEODVGHOD
IRUPDVLJXLHQWH
‰ $3267(5,25, )RUPD(PStULFD 

‰ ³$ 3RVWHULRUL´ VLJQLILFD ³GHVSXpV´ HV GHFLU HVFULELHQGR HO SURJUDPD \


‰ 6ROXFLyQ$OD]DU
PHGLDQWHODH[SHULHQFLDGHHMHFXFLyQREWHQHUFRQFOXVLRQHV9HQWDMDV
‰ ‰ 6ROXFLyQ<DRUGHQDGRV
3RGHPRV KDFHU HO UD]RQDPLHQWR LQYHUVR ¢SRU TXp WRPD WDQWR WLHPSR
‰ 6ROXFLyQ2UGHQDGRVDODLQYHUVD
HVWHSURJUDPD"

‰ (O UD]RQDPLHQWR LQYHUVR HV XQD DOWHUQDWLYD SDUD HVFULELU SURJUDPDV PiV
‰ 6ROXFLyQ$OD]DU
HILFLHQWHV HQFRQWUDPRV XQD VROXFLyQ SUREDEOH OD DQDOL]DPRV \ GHO
‰ 6ROXFLyQ<DRUGHQDGRV
DQiOLVLVSXHGHUHVXOWDUXQDPHMRUDSUR[LPDFLyQDOSUREOHPD
‰ 6ROXFLyQ2UGHQDGRVDODLQYHUVD
$SXQWHVGH(VWUXFWXUDGH'DWRV  $SXQWHVGH(VWUXFWXUDGH'DWRV 
$XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR

 $ULWPpWLFDGHODQRWDFLyQ2

6LJXLHQGR FRQ HO HQIRTXH HPStULFR SDUD GHWHUPLQDU ODV GLIHUHQFLDV GH HILFLHQFLD
$QWHVGHLQLFLDUHODQiOLVLVDWUDYpVGHOHQIRTXHWHyULFRUHYLVHPRVORVUHVXOWDGRV
HQWUHDPERVSURJUDPDVDxDGDDFDGDXQRGHHOORVXQFRQWDGRUGHLQVWUXFFLRQHV
REWHQLGRVGHODQiOLVLVHPStULFRDSDUWLUGHORVSURJUDPDVVLJXLHQWHV

‰ (OFRQWDGRUVHLQFUHPHQWDUiHQSRUFDGDLQVWUXFFLyQVLPSOHHMHFXWDGD // Programa 1
‰
#include <iostream>
(QWHQGDPRVFRPRLQVWUXFFLyQVLPSOHDXQDDVLJQDFLyQ ODOODPDGD D XQD IXQFLyQ #define LIMINF 1
#define LIMSUP 10000
HWF using namespace std;

‰ /DV LQVWUXFFLRQHV GHQWUR GHORVFLFORV \ GHQWUR GHODV IXQFLRQHV HQ FDVR GH TXH
int main()
{
ODVKXELHUD WDPELpQFXHQWDQFRPR int const n=10000;
short int datos[n];
srand(time(NULL));
(MHFXWHGHQXHYRHOSURJUDPDUHSRUWDQGRHOYDORUGHOFRQWDGRU /*
for(int i=0;i<n;i++) // al azar
0RGLILTXHODVWDEODV\DFUHDGDVSDUDUHJLVWUDUORVQXHYRVGDWRV datos[i]=rand()%LIMSUP+LIMINF;
for(int i=0;i<n;i++) // datos ya ordenados
7DPDxRGHO 1~PHURGH 7LHPSR(PSOHDGR
datos[i]=int(float(i)/n*LIMSUP);
*/
9HFWRU ,QVWUXFFLRQHV IUDFFLRQHVGHVHJXQGRVLHV
for(int i=0;i<n;i++) // datos ordenados a la inversa
1 (MHFXWDGDV QHFHVDULR
datos[i]=int(float(n-i)/n*LIMSUP);

clock_t inicial,final;
 inicial = clock();
 // ------ Inicia Cálculo de Resultados ----------
 double contador=0;
 int temp;
int etapa = 1;

bool hubocambio; contador += 3;
 do
 {

hubocambio = false;
contador += 2; //la declaración “int i=0” también cuenta

for(int i=0;i<n-etapa;i++)
{
contador++;
&DVR0HMRU if (datos[i]>datos[i+1])
{
(OWLHPSRGHHMHFXFLyQ\ODFDQWLGDGGHLQVWUXFFLRQHVHMHFXWDGDVVRQORVPtQLPRV
contador += 4;
temp=datos[i];
&DVR3HRU datos[i]=datos[i+1];
(OWLHPSRGHHMHFXFLyQ\ODFDQWLGDGGHLQVWUXFFLRQHVHMHFXWDGDVVRQORVPi[LPRV datos[i+1]=temp;
hubocambio = true;
};
&DVR3URPHGLR
}
(OWLHPSRGHHMHFXFLyQ\ODFDQWLGDGGHLQVWUXFFLRQHVHMHFXWDGDVFDHQHQFLHUWR YDORU etapa++; contador += 2; // etapa++ y while
LQWHUPHGLR }
while (hubocambio);
// ------ Fin Cálculo de Resultados ----------
final = clock();
printf("Tiempo Transcurrido: %10.3f seg\n",
float(final-inicial)/CLOCKS_PER_SEC);
printf("Contador : %f\n",contador);
printf("Dato Menor: %d\n",datos[0]);
printf("Dato Mayor: %d\n",datos[n-1]);
system("pause");
return 0;
}
$SXQWHVGH(VWUXFWXUDGH'DWRV  $SXQWHVGH(VWUXFWXUDGH'DWRV 
$XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR

PROGRAMA 1
// Programa 2 DATOS ALEATORIOS
#include <iostream> N Contador Tiempo &DVR
#define LIMINF 1 1,000 1,497,318 0.06
#define LIMSUP 10000 3URPHGLR
using namespace std; 2,000 6,038,834 0.33
int main() 5,000 37,422,768 0.94
{ 10,000 149,026,394 3.52
int const n=500000;
short int datos[n]; 20,000 602,414,994 13.34
srand(time(NULL)); // semilla 50,000 3,739,551,608 79.59 HARDWARE Y SOFTWARE:
/* 100,000 14,974,791,796 293.52 PENTIUM III 700 MHZ
for(int i=0;i<n;i++) 200,000 128 RAM
datos[i]=rand()%LIMSUP+LIMINF; 500,000 WINDOWS 98SE
for(int i=0;i<n;i++) // datos ordenados a la inversa DEV C++ 4.9.9.1
1,000,000
datos[i]=int(float(n-i)/n*LIMSUP);
*/
for(int i=0;i<n;i++) // datos ya ordenados PROGRAMA 1
0HMRU
DATOS ORDENADOS
datos[i]=int(float(i+1)/n*LIMSUP); &DVR
N Contador Tiempo
clock_t inicial,final;
1,000 1,006 0
double contador=0;
2,000 2,006 0
inicial = clock();
5,000 5,006 0
// ------ Inicia Cálculo de Resultados ----------
int menor=LIMSUP; 10,000 10,006 0
int mayor=LIMINF; 20,000 20,006 0
contador += 2; 50,000 50,006 0
for(int i=0;i<n;i++) 100,000 100,006 0
{
contador += 2; // los 2 if 200,000 200,006 0
if (datos[i]<menor) {menor=datos[i];contador++; }
500,000 500,006 0
if (datos[i]>mayor) {mayor=datos[i];contador++; }
1,000,000 1,000,006 0.06
}
// ------ Fin Cálculo de Resultados ----------
final = clock();
printf("Tiempo Transcurrido: %10.3f seg\n", PROGRAMA 1
3HRU
float(final-inicial)/CLOCKS_PER_SEC); DATOS ORDENADOS A LA INVERSA
N Contador Tiempo &DVR
printf("Contador : %f\n",contador);
printf("Dato Menor: %d\n",menor); 1,000 2,501,503 0.06
printf("Dato Mayor: %d\n",mayor); 2,000 10,003,003 0.11
system("pause"); 5,000 62,507,503 0.87
return 0;
} 10,000 250,012,723 3.08
20,000 999,987,727 11.65
50,000 6,249,672,724 73.98 3DUDWRPDUORVGDWRV
100,000 24,998,347,699 304.73 IDOWDQWHVVHWHQGUtDTXH
200,000
HPSOHDUPXFKRWLHPSR
500,000
¢FXiQWR"
1,000,000
$SXQWHVGH(VWUXFWXUDGH'DWRV  $SXQWHVGH(VWUXFWXUDGH'DWRV 
$XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR

3RGHPRVH[SUHVDUORVOtPLWHVGHFRPSRUWDPLHQWRGHO 3URJUDPDBHQWpUPLQRVGH
PROGRAMA 2 XQSROLQRPLR ODVH[SUHVLRQHVVHSXHGHQREWHQHUGHODREVHUYDFLyQGHODVWDEODV\HO
DATOS ALEATORIOS SURJUDPD 
N Contador Tiempo
1,000 2,020 0

Æ
0HMRU 0HMRU&DVR
2,000 4,019 0
5,000 10,019 0 &DVR

10,000 20,022 0 (n -1) + 7 n+6


20,000 40,020 0
50,000 100,020 0
3HRU&DVR
100,000 200,020 0
200,000
500,000
400,024
1,000,024
0
0
5n(n-1)/2 + 4n + 3
Æ 2.5n2 + 1.5n + 3
1,000,000 2,000,017 0.06
HVWHSROLQRPLRHVFRUUHFWRVLHPSUH\FXDQGRSDUDFXDOTXLHUWDPDxRGH
1ORVGDWRVVHDQWRGRVGLIHUHQWHV\GHVGHOXHJRVHHQFXHQWUHQ
PROGRAMA 2 RUGHQDGRVDODLQYHUVD
DATOS ORDENADOS
N Contador Tiempo
3DUDHO3URJUDPDSRGHPRVHVWDEOHFHUXQOtPLWHSDUDHOSHRUFDVRSHURQRSDUD
1,000 3,002 0
HOPHMRUFDVR \DTXHHVWH~OWLPRHVFRQORVGDWRVDOD]DU 
2,000 6,002 0
5,000 15,002 0
10,000 29,432 0 3HRU&DVR
20,000 50,002 0
50,000 110,002 0 3n + 2
100,000 210,002 0
200,000 410,002 0
$ HVWH WLSR GH SUREOHPDV VH OHV OODPD SUREOHPDV 3 3ROLQyPLFRV  1R WRGRV ORV
500,000 1,010,002 0.06
PLHPEURVGHHVWHFRQMXQWRGHSURJUDPDVVRQPX\HILFLHQWHV
1,000,000 2,010,002 0.11
3HRUHV ‰ /RV OLQHDOHV VRQ ORV PiV HILFLHQWHV VRQ ORV TXH VLHPSUH EXVFDQ ORV
PROGRAMA 2 &DVRV SURJUDPDGRUHV
DATOS ORDENADOS A LA INVERSA ‰ /RV SUREOHPDV SROLQyPLFRV GH VHJXQGR JUDGR R PD\RU VH HQFXHQWUDQ HQ ORV
N Contador Tiempo
³OtPLWHV GH OR WUDWDEOH´ HQWHQGDPRV SRU HVWR TXH EDMR FLHUWDV FRQGLFLRQHV VH
1,000 3,002 0
SXHGHQUHVROYHUHQXQWLHPSRUD]RQDEOHEDMRRWUDVFRQGLFLRQHVQR
2,000 6,002 0
5,000 15,002 0 ‰ ¢3RUTXp"

10,000 29,432 0 ‰ 3RUTXH XQD YH] TXH XQ SURJUDPD VH GHPXHVWUD TXH HV ~WLO  VH XVDUi

20,000 50,003 0 SDUDSUREOHPDVFDGDYH]PiVJUDQGHV

50,000 110,003 0 ‰ /D PDJQLWXG GH ORV SURJUDPDV GHSHQGH JHQHUDOPHQWH GH XQD

100,000 210,003 0 HVWUXFWXUDTXHHVWiHQIXQFLyQGHXQDYDULDEOHTXHFRP~QPHQWHOODPDPRV


200,000 410,003 0 1
500,000 1,010,003 0.05 ‰ 3RU OR WDQWR VH GHEH SHQVDU HQ TXH XQ SURJUDPD GHEH VHU HILFLHQWH SDUD
1,000,000 2,010,003 0.06 UHVROYHU SUREOHPDV GH PDJQLWXG FUHFLHQWH (V GHFLU FXDQGR 1 WLHQGH D
LQILQLWR

2EVHUYH TXH ORV H[SHULPHQWRV DUULED GH  GDWRV VREUH WRGR DO EXVFDU ORV ‰ 2VHDTXHVH FODVLILFDQORV DOJRULWPRV GH DFXHUGR D VX FRPSRUWDPLHQWR

OtPLWHVSXHGHQVHUHQJDxRVRVSRUTXHVHSURGXFHQ PXFKRVGDWRVUHSHWLGRV SDUD DVLQWyWLFR

HVWHSUREOHPDSDUWLFXODU RWURLQFRQYHQLHQWHGHOHQIRTXHHPStULFRSXUR  ‰ $OJUXSRGHDOJRULWPRVTXHFRPSDUWHQHOPLVPRFRPSRUWDPLHQWRDVLQWyWLFR


VHGLFHTXHSHUWHQHFHQDOPLVPRRUGHQGHFRPSOHMLGDG
‰ (ORUGHQGHFRPSOHMLGDGVHGHQRPLQDQRWDFLyQ2
$SXQWHVGH(VWUXFWXUDGH'DWRV  $SXQWHVGH(VWUXFWXUDGH'DWRV 
$XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR

6HJXQGR VL HO WDPDxR Q GHO SUREOHPD DSDUHFH FRPR OtPLWH GHO FLFOR SXHGHQ

GDUVHYDULRVFDVRV
(Q JHQHUDO QR HV QHFHVDULR FRQRFHU HO FRPSRUWDPLHQWR H[DFWR GH XQ DOJRULWPR VLQR
VRORVXOtPLWHGHFRPSRUWDPLHQWRHVGHFLUODFRWDRDFRWDPLHQWRVXSHULRU 8Q FLFORR FLFORV DQLGDGRVFRQ XQD VHFXHQFLDGH LQVWUXFFLRQHV VLPSOHV HQ VX

Î
LQWHULRU

Æ∞
&RPRHODQiOLVLVDVLQWyWLFRLPSOLFDTXHORLPSRUWDQWHHVHOFRPSRUWDPLHQWRFXDQGR 1
Q 2  
Î  2 Q

Î
 HOJUDGRGHOSROLQRPLRHVORTXHGHWHUPLQDHORUGHQ GH FRPSOHMLGDG HV GHFLU

Q Q 2    2 Q

Î
SDUDHOSROLQRPLRTXHREWXYLPRVHPStULFDPHQWHSDUDHOSHRUFDVRGHODVROXFLyQ

Q 2 Q   2 Q
2.5n2 + 1.5n + 3 Q 2 Q 


Q Q Q 2  
Î 



2 Q

2 Q

ODFRQVWDQWHPXOWLSOLFDWLYDGHOWpUPLQRGHPD\RUJUDGRHOWpUPLQROLQHDO \ HO WpUPLQR
LQGHSHQGLHQWHVHKDFHQGHVSUHFLDEOHVFXDQGR1WLHQGHDLQILQLWR
8Q FLFOR VH UHDOL]D 1 YHFHV HVWH FRQWLHQH RWUR FLFOR HQ VX LQWHULRU TXH VH
HMHFXWD  YH] OD SULPHUD  YHFHV OD VHJXQGD  YHFHV OD WHUFHUD \ DVt
3RU OR WDQWR VH GLFH TXH HVH DOJRULWPR \ HO SURJUDPD HTXLYDOHQWH VRQ GH RUGHQ
 VXFHVLYDPHQWH KDVWD 1 YHFHV 'HQWUR GHO VHJXQGR FLFOR KD\ XQD VHFXHQFLD
2 Q 

Î
VLPSOHGHLQVWUXFFLRQHV

(OSROLQRPLRGHSULPHUJUDGRFRUUHVSRQGLHQWHDODVROXFLyQ SHRUFDVR  
Q  Q  2    2 Q
3n – 2HQFRQVHFXHQFLDVHUiGHRUGHQ2 Q 
&LFORVHQORVTXHHOFRQWDGRUWLHQHXQYDORULQLFLDOGH\GHEH OOHJDU D 1 SHUR
¢&yPRREWHQHU$35,25,ODFRPSOHMLGDGGHXQDOJRULWPR\SRUORWDQWR
PXOWLSOLFiQGRVH SRU XQD FRQVWDQWH \ HQ VX LQWHULRU KD\ XQD VHFXHQFLD VLPSOH
GHOSURJUDPDHTXLYDOHQWH" GHLQVWUXFFLRQHV

1R H[LVWH XQD UHFHWD LQIDOLEOH VLQ HPEDUJR KD\ FLHUWDV UHJODV TXH GDQ PX\ (MHPSOR
EXHQRV UHVXOWDGRV DVXPLHQGR TXH ORV DOJRULWPRV SRVHDQ XQD HVWUXFWXUD
XQLIRUPH\FODUD F 
ZKLOHF1
D ,QVWUXFFLRQHV6HQFLOODV F F 

Î
LQVWUXFFLRQHVGHRUGHQ2 

7RGDV DTXHOODVLQVWUXFFLRQHV GH GHFODUDFLyQ HQWUDGD \ VDOLGD DVLJQDFLyQ TXH QR 2 ORJQ


GHSHQGDQGHOWDPDxR1GHOSUREOHPD7RGDVHOODVVRQGHRUGHQ2  HVGHFLU

VRQGHRUGHQFRQVWDQWH\VLHPSUHVHHMHFXWDUiODPLVPDFDQWLGDGGHHOODV (MHPSOR

E &LFORV &LFORVHQORVTXHHOFRQWDGRUWLHQHXQYDORULQLFLDOGH1\GHEH OOHJDU D  SHUR


GLYLGLpQGRVH VXFHVLYDPHQWH SRU XQD FRQVWDQWH \ HQ VX LQWHULRU KD\ XQD

'HEHPRVFRQVLGHUDUFDVRV VHFXHQFLDVLPSOHGHLQVWUXFFLRQHV

3ULPHURVLHOFLFORVHHMHFXWDXQFLHUWRQ~PHURGHYHFHVSHURLQGHSHQGLHQWHGHO
(MHPSOR

WDPDxRQGHOSUREOHPDHQWDOFDVRVRORVHLQYROXFUDDXQDFRQVWDQWH
F 1
ZKLOHF!

Î
(MHPSORV
F F

N 2  
N 2 Q 
Î 

2 
2 Q
Î 
LQVWUXFFLRQHVGHRUGHQ2 

2 ORJQ
$SXQWHVGH(VWUXFWXUDGH'DWRV  $SXQWHVGH(VWUXFWXUDGH'DWRV 
$XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR

F -HUDUTXtD  &RPSOHMLGDG

/RV yUGHQHV GH FRPSOHMLGDG VH DJUXSDQ MHUiUTXLFDPHQWH \D TXH ORV RUGHQHV
 7LHPSRGHHMHFXFLyQGHXQDOJRULWPR
PHQRUHVHVWiQWRGRVDFRWDGRVSRUORVPD\RUHV

2  &RQVWDQWH 0LHQWUDV PiV JUDQGH HV HO SUREOHPD HO RUGHQ GH FRPSOHMLGDG DVLQWyWLFD HV PiV

2 ORJQ /RJDUtWPLFR SUy[LPR DO FRPSRUWDPLHQWR UHDO 3RU OR WDQWR ODV REVHUYDFLRQHV HPStULFDV QRV

2 Q /LQHDO SXHGHQ VHUYLU SDUD KDFHU SUR\HFFLRQHV GHO WLHPSR TXH WDUGDUi XQ DOJRULWPR SDUD
FXDOTXLHUWDPDxRGHSUREOHPD
2 QORJQ &XDVL/LQHDO

2 Q &XDGUiWLFR
 7UDEDMHPRVGHQXHYRFRQODWDEODGHOFDVRSURPHGLRREWHQLGDDQWHULRUPHQWH
2 Q &XEtFR
N
2 Q N! 3ROLQyPLFR
Q HARDWARE Y SOFTWARE
2 N N! ([SRQHQFLDO EMPLEADO
2 Q )DFWRULDO PENTIUM III 700 MHZ
128 RAM
WINDOWS 98SE
DEV C++ 4.9.9.1
G 6HFXHQFLDV

2EWHQJDPRVXQSDUGHFRQVWDQWHV .\. TXHLQGLTXHQODUHODFLyQHQWUHHOQ~PHUR


(Q ODV VXPDV GHO SROLQRPLR FRUUHVSRQGLHQWH D XQ DOJRULWPR XQ RUGHQ VXSHULRU  
GHLQVWUXFFLRQHVHMHFXWDGDV\ 1 SRUXQODGR\HOWLHPSRGHHMHFXFLyQ\ 1 SRURWUR
³DEVRUEH´ DO LQIHULRU \ OD VXPD GH RUGHQHV GH OD PLVPD MHUDUTXtD HTXLYDOHQ DO
ODGR
PLVPRRUGHQ

(MHPSORV
Î PROGRAMA 1 CASO PROMEDIO

Î
DATOS ALEATORIOS
  K1 = K2 =
2  2 Q 2 Q   2 Q
2  2  2  
2 Q 2 Q 2 Q 
Î 

2 
2 Q
N
1,000
2,000
Contador
1,497,318
6,038,834
Tiempo
0.06
0.33
Contador / N2
1.49731800
1.50970850
Tiempo / N2
0.000000060000
0.000000082500
5,000 37,422,768 0.94 1.49691072 0.000000037600
H 'HFLVLRQHV LI  10,000 149,026,394 3.52 1.49026394 0.000000035200
20,000 602,414,994 13.34 1.50603749 0.000000033350
50,000 3,739,551,608 79.59 1.49582064 0.000000031836
/DHYDOXDFLyQGHOD FRQGLFLyQ JHQHUDOPHQWH HV GH RUGHQ 2   FRPSOHMLGDG TXH
100,000 14,974,791,796 293.52 1.49747918 0.000000029352
VH VXPDUi FRQ OD SHRU GH ODV  UDPDV GHO LI VHD GHO WKHQ R HO HOVH
200,000 59,899,167,184 1,174.08
VLJXLHQGRODVUHJODVGHODVHFXHQFLDV 500,000 374,369,794,900 7,338.00
1,000,000 1,497,479,179,600 29,352.00
I 3URFHGLPLHQWRV

/DFRPSOHMLGDGGHODOODPDGDGHXQSURFHGLPLHQWRHV 2  SHURODFRPSOHMLGDG (O KHFKR GH TXH ORV YDORUHV GH . \ . SHUPDQHFHQ SDUD ILQHV SUiFWLFRV

GHO SURFHGLPLHQWR HQ Vt VH FDOFXOD GH DFXHUGR D ODV LQVWUXFFLRQHV FRQWHQLGDV HQ SUiFWLFDPHQWH FRQVWDQWHV QRV LQGLFD TXH HO WLHPSR GH HMHFXFLyQ HV SURSRUFLRQDO

SDUDHVWHDOJRULWPRD1 ORTXHQRVSHUPLWHKDFHUSUHGLFFLRQHVGHOFRPSRUWDPLHQWR
pOEDViQGRQRVHQHVWDVPLVPDVUHJODV
SDUD YDORUHV GH 1 PX\ JUDQGHV TXH QR GHVHDPRV R QR SRGHPRV REWHQHU GH IRUPD

&RPSUXHEH VLJXLHQGR ODV UHJODV TXH DFDEDPRV GH HVWDEOHFHU TXH ORV RUGHQHV GH HPStULFD

FRPSOHMLGDGDVLQWyWLFDGHORVSUREOHPDVGHOLQLFLRGHHVWHWHPDVRQ
5HDOLFHVLPLODUHVSUHGLFFLRQHVSDUDODWDEODGHO3HRU&DVR\FRPSUREDUiTXHOD~QLFD

 GLIHUHQFLDVRQORVYDORUHVGHODVFRQVWDQWHV.\.
6ROXFLyQ 2 Q
6ROXFLyQ 2 Q
$SXQWHVGH(VWUXFWXUDGH'DWRV  $SXQWHVGH(VWUXFWXUDGH'DWRV 
$XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR

8QDGHODVSULPHUDVDSUR[LPDFLRQHVSDUDPHMRUDUORVDOJRULWPRVGHRUGHQDPLHQWRGH
 &RPSOHMLGDGHQHOHVSDFLR

RUGHQ2 Q IXHXQPpWRGRFRQRFLGRFRPR'LVWULEXFLyQ6LPSOH

/D &RPSOHMLGDG (VSDFLDO VH UHILHUH DO HVSDFLR GH PHPRULD TXH XQ DOJRULWPR
(VWH PpWRGR DSOLFD GH PDQHUD PX\ VHQFLOOD XQD WpFQLFD FRQRFLGD FRPR ³'LYLGH \
UHTXHULUiGXUDQWHVXHMHFXFLyQ
9HQFHUiV´

3XHGH VHU PHPRULD 5$0 R FXDOTXLHU PHGLR $OPDFHQDPLHQWR 6HFXQGDULR ORV


'LVWULEXFLyQ6LPSOHVXJLHUH
GLVFRVGXURVSRUHMHPSOR 
‰ 'LYLGLUGHFLHUWDIRUPDHODUFKLYRJUDQGHHQYDULDVSDUWHVSHTXHxDV

6HPLGHGHIRUPDPX\VLPLODUDODFRPSOHMLGDGWHPSRUDO
‰ /DVSDUWHVVHRUGHQDQSRUVHSDUDGR
‰ /DVSDUWHVVHXQHQXQDGHVSXpVGHRWUD

‰ 1RWLHQHLPSDFWR
/RVDUFKLYRVSHTXHxRVVHRUGHQDQFRQPHQRVHVIXHU]RTXHORVJUDQGHVSDUDRUGHQHV
‰ /D FDQWLGDG GH GDWRV LQGLYLGXDOHV TXH QR GHSHQGH GH 1 (MHPSOR
GHFRPSOHMLGDGWHPSRUDOVXSHULRUHVD2 Q 
SDUiPHWURVGHODVIXQFLRQHV H[FHSWRYHFWRUHVSRUYDORU 
$SR\iQGRQRVHQODWDEODGHOFDVRSURPHGLRGHOPpWRGRGHODEXUEXMD2 Q 

‰ /DV HVWUXFWXUDV GH GDWRV YHFWRUHV OLVWDV HQFDGHQDGDV HWF  FX\R WDPDxR
QRGHSHQGHGH 1(MHPSORHO WDPDxR GHO GLFFLRQDULR TXH VH XVD SDUD UHYLVDU
DUFKLYRGH¶UHJLVWURV ¶¶LQVWUXFFLRQHV
ODRUWRJUDItDGHXQWH[WR
‰ /DHVWUXFWXUDOyJLFDGHODOJRULWPR(MHPSORV
0LVPRDUFKLYRGLYLGLGRHQVXEDUFKLYRVXQRSRUOHWUDGHODOIDEHWR
‰ 'HFODUDFLRQHVGHYDULDEOHV
‰ ‰ 1~PHURGHUHJLVWURV[VXEDUFKLYR DSUR[
&XDQWRVFLFORVRFXDQWDVYHFHVVHHMHFXWDQ
‰ ,QVWUXFFLRQHVSDUDRUGHQDUFVXEDUFKLYR ¶HVWLPDGDV
‰ 6LORVFLFORVHVWiQDQLGDGRVRQR
‰ ‰ ,QVWUXFFLRQHVHQWRWDO ¶[
/ODPDGDVDHMHFXFLyQGHIXQFLRQHV
¶DSUR[
‰ (WF
‰ /RV SDUiPHWURV SRU UHIHUHQFLD \D TXH QR VH UHTXLHUH HVSDFLR H[WUD SDUD
&RPRSRGHPRVYHU HO Q~PHUR GH LQVWUXFFLRQHV HMHFXWDGDV GLVPLQX\H HQ SURSRUFLyQ
HOORV
DOQ~PHURGHVXEDUFKLYRV0LOORQHVGH0LOORQHVFRQWUD0LOORQHV

‰ 6LWLHQHLPSDFWR
3RU OR WDQWR IRUPDQGR  VXEDUFKLYRV HQ EDVH D OD SULPHUD OHWUD GH OD &853 VH
‰ /DFDQWLGDGGHGDWRVTXHGHSHQGHQGH1
UHGXFLUtD HO WLHPSR GH HMHFXFLyQ D  GtDVR VHD OD  SDUWH GH  DxRV ¢QDGD
‰ 8Q YHFWRU DX[LOLDU TXH XVHPRV SDUD FDGD  GDWRV SRU HMHPSOR  GH XQ
PDOSDUDHPSH]DUHK" 
YHFWRUGHWDPDxR1
‰ /RV SDUiPHWURV GH YDORU TXH GHSHQGHQ GHO WDPDxR 1  \D TXH HQ OD 
6L WRPDPRV ODV  OHWUDV SULPHUDV HQWRQFHV VHUtDQ WHyULFDPHQWH   VXEDUFKLYRV
PHPRULDVHKDFHXQDFRSLDGHORVGDWRV
 

(Q UHDOLGDG OD VHJXQGD OHWUD VLHPSUH HV XQD YRFDO SRU OR TXH HO Q~PHUR GH
3UREOHPD 
VXEDUFKLYRVTXHFRQIRUPDUtDPRVVHUtD [  

6HFXHQWDFRQXQDFLQWDPDJQpWLFDTXHFRQWLHQHORVGDWRVGHWRGRVORVKDELWDQWHVGH &RPR WHyULFDPHQWH OD GLVWULEXFLyQ GH ORV GDWRV VHUi XQLIRUPH HO WDPDxR SURPHGLR
ORV(VWDGRV8QLGRV0H[LFDQRV GLJDPRV 0LOORQHVHQQ~PHURVUHGRQGRV \VH GHFDGDVXEDUFKLYRVHUiGHUHJLVWURV

EXVFD RUGHQDUORV HQ EDVH D VX Q~PHUR GH &853 VL DSOLFDPRV HO PpWRGR GH OD
EXUEXMDTXHFRQRFHPRVHOWLHPSR GH HMHFXFLyQ HQ ODFRPSXWDGRUD TXH VH XVy SDUD &DGD VXEDUFKLYR GH  UHJLVWURV RFDVLRQDUiQ XQ WLHPSR GH  VHJXQGRV \ DO
DFXPXODU HO WLHPSR LQGLYLGXDO GH WRGRV HOORV HO WLHPSR WRWDO VHUtD  PLQXWRV«
QXHVWURVH[SHULPHQWRVVHUtD£DxRV¢TXpSRGUtDPRVKDFHU"
WHyULFDPHQWH

7HyULFDPHQWH SRUTXH DO WUDWDUVH GH VXEDUFKLYRV GH WDPDxR PX\ SHTXHxR HO
WLHPSR GH HMHFXFLyQ GH VXV LQVWUXFFLRQHV \ VHFXHQFLDV GH RUGHQ GH FRPSOHMLGDG
WHPSRUDO 2   \ 2 Q  \D QR HV GHVSUHFLDEOH \ OD SUHGLFFLyQ QR VHUi PX\ H[DFWD
$SXQWHVGH(VWUXFWXUDGH'DWRV  $SXQWHVGH(VWUXFWXUDGH'DWRV 
$XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR

DXQTXH VXILFLHQWH SDUD WRPDU GHFLVLRQHV 6H SXHGH REWHQHU HO SROLQRPLR GHO
DOJRULWPR FRUUHVSRQGLHQWH \ HQ EDVH D pO KDFHU XQD SUHGLFFLyQ PDV FHUFDQD D OD
 6(/(&&,Ï1'(81$/*25,702
UHDOLGDG 

/RVPHMRUHVDOJRULWPRVVRQDTXHOORVTXHSRVHHQFRPRPi[LPRXQ HTXLOLEULR HQWUH OD


(V 3HUWLQHQWH PHQFLRQDU TXH OD FRPSOHMLGDG GH 'LVWULEXFLyQ 6LPSOH VLQ LPSRUWDU HO
&RPSOHMLGDG7HPSRUDO \ OD &RPSOHMLGDG (VSDFLDO (V GHFLU TXH VDFULILFDQ WLHPSR SRU

Q~PHURGHVXEDUFKLYRVVLJXH VLHQGR 2 Q  \D TXH FXDQGR 1 ∞OD FRQVWDQWH TXH HVSDFLRRYLFHYHUVD
UHSUHVHQWDDOQ~PHURGHVXEDUFKLYRVVHUiGHVSUHFLDEOHQRREVWDQWHSXGLHQGRUHVLVWLU
YDORUHVGH1PD\RUHV 6LHPSUHVHSXHGHVHOHFFLRQDUXQDOJRULWPRFRPRHOGH'LVWULEXFLyQ6LPSOHTXHFRPR
YLPRV ORJUD EDMDU FRQ SRFR HVIXHU]R HO WLHPSR GH SURFHVDPLHQWR GHVGH  DxRV
&RQ HO DQiOLVLV DQWHULRU YHPRV TXH VH SXHGH REWHQHU XQD PHMRUtD VXVWDQFLDO FRQ KDVWDGtDV\FRQXQSRFRGHPiVHVIXHU]RDPLQXWRV
UHVSHFWR DO WLHPSR GH HMHFXFLyQ SHUR D FDPELR GH XQ DXPHQWR GH OD FRPSOHMLGDG
HVSDFLDO 6LQ HPEDUJR DXQTXH HQ OD SUDFWLFD SXHGH VHU GH FLHUWD D\XGD OD FRPSOHMLGDG

WHPSRUDO GH XQ DOJRULWPRFRPR HO GH 'LVWULEXFLyQ 6LPSOH DO VHU 2 Q  QR GHMD GH
¢3RUTXpKD\XQDXPHQWRHQODFRPSOHMLGDGHVSDFLDO" VHUPX\DOWD

3RUTXHVHUHTXLHUHHVSDFLRH[WUDSDUDFRQVHUYDUORVGDWRV\UHVROYHUHOSUREOHPD /DVROXFLyQHVGHILQLWLYDPHQWHEXVFDUDOJRULWPRVFRQRUGHQGHFRPSOHMLGDGWHPSRUDO

LQIHULRU D 2 Q  < HQ FXDQWR D OD FRPSOHMLGDG HVSDFLDO FRQYLHQH TXH VHDQ FRPR
‰ 6L VH JXDUGDQ HQ 9HFWRUHV HO RUGHQ GH FRPSOHMLGDG HVSDFLDO GH OD VROXFLyQ HV
Pi[LPR GH RUGHQ 2 Q ORJ Q  HV GHFLU TXH QR UHTXLHUDQ HVSDFLR H[WUD HQ IRUPD
PX\ DOWR \ SRU OR WDQWR PX\ PDOR VH UHTXHULUtD  YHFHV HO HVSDFLR GHO
LPSRUWDQWH
PLVPRDUFKLYR

‰ 6LVHJXDUGDQHQ /LVWDV(QFDGHQDGDVQR VH UHTXHULUi WDQWR HVSDFLR VROR SDUD


HO HTXLYDOHQWH DO PLVPR DUFKLYR PiV HO HVSDFLR QHFHVDULR SDUD ORV DSXQWDGRUHV
GHOVXFHVRUGHFDGDQRGR 1DSXQWDGRUHV 

‰ (Q 'LVFRV'XURVVHUtD XQD VLWXDFLyQ VLPLODU D ODV OLVWDV HQFDGHQDGDV SHUR LJXDO
TXHpVWDVVHUHTXHULUtDOOHYDUXQ FRQWURO GH GLUHFFLRQHV SDUD SRGHU DFFHGHU D ORV
GDWRVRUJDQL]DGRVHQVXEDUFKLYRVLQGHSHQGLHQWHV

Anda mungkin juga menyukai