elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6
11  Programación / Programación C/C++ / Re: Agregar 5 opciones porfavor: en: 21 Junio 2022, 06:32 am
Hola, se que todo el proyecto parece largo y algo tedioso pero es un trabajo tuyo y lo que pides, poco o mucho, es hacerlo. Por mi parte deberias proponer alguna idea de algoritmo o analisis en cada caso para ayudarte si la necesitas.

Saludos!
12  Programación / Programación C/C++ / Re: Ayuda en: 21 Junio 2022, 04:00 am
Hola:
- Esto puede ser el problema que queres decir que solo traduce una palabra y no mas; despues que hace la opcion de añadir o traducir la variable "op" vale 1 o 2, y aunque decidas traducir otra palabara poniendo "s", op va a valer 1 o 2 y como no cumple la condicion de la linea 32 no entra en ese bucle nunca mas. Tenes que reiniciar "op" en 0 por ejemplo en la linea 42.

- En el procedimiento traducir() no tiene sentido un 'switch' porque elija traducir de una manera u otra hace lo mismo (llama al mismo metodo con el mismo parametro.
En vez de:
Código:
 switch (op) {
  case 1:
   tradu(op);
  break;
  case 2:
      tradu(op);
  break;
 }

pone solo esto

Código:
tradu(op)

- Nunca traduce una 'oracion' porque lo hiciste para solo traducir por palabras. Tendria que hacer alguna manera de que ingrese una oracion y que compares palabra por palabra. Puede que hallas agregado una 'oracion' y busques esa exactamente (todas las letras, espacios o cualquier caracter coincida); ahi si funcionaria pero no es para nada practico y no es coherente. *

- Por el tema de la repeticion de palabras es pedir que palabra queres introducir y en que idioma esta, entonces busca en la correspondiente variable de la estructura. Si esta no la agregas, y si no esta como ya sabes la palabra en un idioma lo agregas y pedis que ingrese en el otro idioma esa palabra.

Y cuando busques una palabra para traducir deberias fijarte si hay mas palabras en el "diccionario", para eso deberia usarse la variable lleno; o no seria necesario que exista esa variable porque preguntas por alguna cadena (eng o esp) si es nulo (creo que todos las cadenas son nulas por defecto sino usarias "lleno" solamente) termina de recorrer el diccionario. En este caso para hacer eso, cuando recorres en la condicion del 'for' agregas la condicion trad[n].eng==NULL. **

Un consejo: no te obsesiones con usar condiciones; pensa si fueras a un ATM y te pregunte cada vez que ingrese a una opcion si desea seguir.
Es solo un consejo  ;)

*Si lo que quieres es traducir oraciones, seria algo bastante mas complejo, porque pensa que quieras traducir diferentes oraciones con las mismas palabras, tienen diferentes significados por ende las combinaciones posibles serias muchisimas y ademas traducidas. Si lo que quieres es hacer una programa realmente funcional, es un trabajo mucho mas dificil

**Aclaracion: viendo que usas la variable lleno en otro procedimiento quedaria mejor usar eso y no lo de NULL, pero tendrias un costo minimo de momoria inceseario.


Saludo!
13  Programación / Programación C/C++ / Re: Modificar busqueda binaria en: 2 Junio 2022, 21:27 pm
Ésta, -si fuese correcta, que depende de los valores iniciales de alto y bajo- no es efficiente como la búsqueda binaria, sino que degrada a busqueda lineal O(n)...

Si tienes razon! Me olvide de acotar que esa solucion no es eficiente por eso. No pude modificarla asi que muy bien aclarado, igual no es necesario ya.
Gracias dijsktra!

Este es el algoritmo referido:

Código:
hacer mientras (bajo <= alto)
    centro = (bajo + alto) / 2
    si (clave = array[centro])
        hacer mientras (centro < size)
            si (clave < array[centro])
                devolver centro
            centro = centro + 1
        Repetir
        devolver -1
    o si (clave < array[centro])
        alto = centro
    sino
        bajo = centro + 1
repetir

Saludos!

14  Programación / Programación C/C++ / Re: Modificar busqueda binaria en: 2 Junio 2022, 04:22 am
while (V[h]!= elem || (elem!=N-1 && V[h]==V[h+1]))  // <= B: Changes.

La solucion que planteaste seria la correcta ya que cumple el sentido de busqueda binaria exactamente.
Solo en la comparacion para verificar si estas en la ultima posicion, es "h" en vez de "elem". Si no hay valores mayores, "h" termina siendo igual a "N-1" cuando termina el ciclo y despues devuelve "h+1", que es igual al tamaño del arrreglo.

Saludos.


15  Programación / Programación C/C++ / Re: Modificar busqueda binaria en: 26 Mayo 2022, 19:30 pm
Esta seria otra manera

Código:
Hacer mientras (bajo < alto) //(cuando bajo=alto la busqueda llega al final)
    centro = (bajo + alto) / 2
    si(clave < array[centro])
        alto = centro //(no es -1 ya que se incluye a centro porque puede ser la soulcion tambien)
    sino
        bajo = centro + 1    
    fin si
si (clave<array[bajo]) //(al ser bajo=alto se puede usar cualquiera y es verdadero cuando existe solucion)
    devolver bajo
sino
    devolver -1; //(este caso solo sucede cuando bajo=size-1 y clave>=array[bajo], o sea cuando no existe solucion)

Este pseudocodigo esta generalizado para buscar el primer valor mayor a cualquier numero que utilices como dato de entrada. Es decir que no es necesario que ese numero este en el arreglo.

Si tenes como premisa que el dato de entrada es un numero que se encuentra en el arreglo, que creo que es este el caso que planteaste, seria asi

Código:
hacer mientras (bajo <= alto)
    centro = (bajo + alto) / 2
    si (clave = array[centro])
        hacer mientras (centro < size)
            si (clave < array[centro])
                devolver centro
            centro = centro + 1
        Repetir
        devolver -1
    o si (clave < array[centro])
        alto = centro
    sino
        bajo = centro + 1
repetir

La primera solucion de Serapis devuelve el indice donde esta la clave y no el siguiente mayor.
16  Programación / Programación General / Re: Problema del viajante de comercio - Branch and Bound en: 24 Mayo 2022, 18:37 pm
Mi malentendido fue que utilizas heurística y por ende no siempre necesariamente puede dar el resultado optimo.

Como corrección a la cantidad de ciudades que recorre en el caso de las 20 ciudades son 100 millones, 10^8 (2500000 por segundo aproximadamente).
Usando Code Blocks y con 4 núcleos de 3.0 GHz.
Usa la fuerza bruta para hacer cortocircuito, por eso visita bastante menos ciudades.

Como use programación lineal puedo comprobar que, sea cual sea el caso, obtiene el resultado optimo.
Aunque para determinar O(n) dependeria de los casos, por ende necesitaria probar con casos representativos para obtenerlo.
Sea cual sea O(n) al ser obtenido por casos representativos no seria exacto, por ende no define la relacion entre P y NP
17  Programación / Programación General / Re: Problema del viajante de comercio - Branch and Bound en: 21 Abril 2022, 16:31 pm
hola, hace tiempo que no me conecto por eso respondo ahora.

Tu que sigues el esquema de programación dimámica ya te habrá quedado claro que si para algo como 20 nodos empleas (pongamos por ejemplo), 1-4Gb. de RAM, para uno de 30 nodos, seguramente te subas a 15 o 30Gb. y probablemente no puedas asumir problemas con más de 50 nodos sin sacrificar por algún lado, porque la RAM precisa será inasumible....

Mi algoritmo no sigue el esquema de programacion dinamica, uso el esquema de programacion lineal. por ende es practicamente nulo el uso de RAM.
18  Programación / Programación General / Re: Problema de la mochila en: 22 Enero 2022, 00:16 am
Hola, si alguien quiere proponer una caso de tamaño hasta 100.

Cuando lo resuelva les paso los datos del resultado y tiempo.

Pueden ser los valores de entradas de magnitud similar a los que puse.

Si lo resuelven estaría bueno comparar resultados.
19  Programación / Programación General / Re: Problema de la mochila en: 17 Enero 2022, 07:38 am
Voy a proponer un caso mas "simple", con 50 item.
Código:
Item		Peso		Valor
1 101216066775657 131363839117837
2 101405972061117 132065706231834
3 102601515609973 132484448479051
4 104352044471043 133131532988999
5 104746786834633 134282309873776
6 105390113261536 134354880265164
7 105431679530268 135046566038982
8 106144070034379 136001709139178
9 106173044863867 136385117866201
10 106183414763863 138048091255272
11 107922299411955 138166955521491
12 107929460964952 138523390409357
13 108291199768876 138720295660798
14 108616122657291 138958209501845
15 109481832105485 138970927009628
16 109611142582387 138971988095107
17 110121878313456 139634767761933
18 111818679339917 139789094059708
19 114575808944835 140040919275085
20 115513475976547 140106671421024
21 115967930092736 140362195999036
22 116178979841777 140629655922363
23 117137317712528 141607624727110
24 117146617876000 142972667574445
25 117659789964154 143077697300132
26 118697836149994 143377042479088
27 118772685896622 143461969069446
28 119116894778240 144719700598168
29 119678700918499 145730047759370
30 120464718958840 146376221628128
31 120837555496468 146958645818433
32 121630756979528 147577502412275
33 121950507577377 147621628352184
34 122531814595343 148166192102550
35 123180539453324 149110471743748
36 123700434405359 149119917493970
37 123806883160215 149495225206337
38 123851638266936 149535328368965
39 125968256513188 149903789775847
40 126327257133379 151830493298231
41 127304781278971 151984268376262
42 127358397257638 152268390536176
43 128094297114028 152982572668723
44 128795518647103 153564607037044
45 129019203882586 154243241953725
46 129672046076623 154400734089124
47 130072434457701 154433268138144
48 130330694754605 154893353823209
49 131203592485271 154955091377872
50 131232299362321 155192570500134

Para la capacidad de 1500000000000000, cual es la mejor solucion?

Les paso mi resultado:
Los items que hay que elegir son: 2,3,5,7,8,9,10,12,14,15,17,18,25,50.

(La solucion la encontre en menos de un segundo)

Es la optima? Segun mi algoritmo si

Alguien lo pudo comprobar?
20  Programación / Programación General / Re: Problema de la mochila en: 9 Enero 2022, 23:45 pm
(Continuacion de otro caso)

Código:
Num item	peso		valor
1 100994605112948 1963179050967
2 102022134281554 1019379407177
3 103256115462428 1462123912225
4 103907042203309 1688376540471
5 104007315862560 1590071264489
6 104182552867613 1495211372290
7 104540965259464 1061860514925
8 104945580169773 1429067551838
9 105241663762759 1484491105804
10 105327231528853 1125780424573
11 105896491474635 1096329231943
12 106661131604024 1480051875887
13 106898318312442 1831414197459
14 108061952456727 1254639524006
15 108171398806571 1194405446782
16 108212745233530 1134293780438
17 108350471777617 1793145695028
18 108578386970601 1829217508306
19 108622748562385 1170402236306
20 108898976839498 1561004449247
21 109731322616189 1330182386478
22 110433203842420 1866464231537
23 110433445639043 1010130896184
24 110588837094783 1166155032415
25 110605916584236 1478285935181
26 111054618610560 1189098149680
27 112650680858511 1744474796045
28 112936344987936 1889137305603
29 114351573735119 1117866225051
30 114839375165506 1423746374225
31 114993906655174 1927502850672
32 116507278249994 1645620054180
33 116533157796190 1367885875296
34 116810829930086 1953651684495
35 117273721806045 1607351523043
36 117692600475376 1030831479792
37 117805252992795 1856307348042
38 118956737210390 1898044977597
39 119663787751672 1886553320219
40 119754211136363 1907187809074
41 120912254916732 1139758291651
42 121104511274446 1583869874141
43 121251686253141 1829242253785
44 121408987756850 1559900892566
45 121862299469822 1470323401196
46 122368388175709 1724494596187
47 122742986965478 1290276109505
48 123537116685854 1521321057041
49 124442478655644 1112783674264
50 124853587809997 1569282871268
51 125140435710208 1360813812104
52 126317994079461 1243785243891
53 128426957645062 1353329212248
54 128911871892170 1099823847680
55 128960569308273 1024926896240
56 130170770737443 1006678520408
57 131166929364433 1572106060312
58 131456631520260 1360210121844
59 132347147985089 1334601670292
60 132417180354335 1280539329421
61 132607005326848 1502956411462
62 134045634745689 1428523889646
63 134230860902023 1210896866547
64 134301765792828 1495726980888
65 136144444237411 1433252859855
66 136569662394359 1823783928378
67 136818070259696 1166046043074
68 137214076668152 1138649588608
69 137500202074650 1580090854178
70 138138438270547 1758041405382
71 138559381391529 1307151027698
72 139231712896686 1239084084959
73 139549991225279 1293981279153
74 140176324684910 1916305238397
75 140388219460392 1907381692118
76 140468517523650 1692360389236
77 141035337846340 1818828440309
78 141364884354316 1713197398375
79 141410578095892 1672939516720
80 141627896357559 1350518314200
81 141692148557828 1223706063771
82 142040732061695 1354733992845
83 142203107675544 1627699154455
84 142452656967800 1658977638948
85 142697949488286 1391257980782
86 143006091163531 1748529756579
87 143536132382507 1082209976242
88 145048772276835 1421431737199
89 145363692207586 1543506553116
90 145620823333912 1493009900323
91 145826207371695 1765445344140
92 145841368716535 1671200215551
93 146395012020520 1232307290421
94 147093288550353 1740945936480
95 147632147133647 1021974543560
96 148634256987789 1048475197525
97 149390128734077 1732978867472
98 149672343172173 1496608714766
99 149788216284136 1178362652374
100 150240077799104 1956839562009

Para este caso con una capacidad de 1400000000000000 lo resolvio en menos de un minuto. No use programacion dinamica.

que opinan?
Páginas: 1 [2] 3 4 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines