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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ... 326
141  Programación / Programación General / Re: IA para Mastermind. en: 7 Febrero 2021, 19:57 pm
Encontrar una solución es aprender algo.
De modo filosófico para una persona sí...
Si lo hace un programa, que encuentre una solución no aprende nada con ello. Toma una calculadora y multiplica 2 números, dime que ha aprendido aunque arroje la solución correcta. De la IA se espera que 'aprenda'...

Es importante no confundir las materias en objeto.

Bueno, sigo sin saber cómo nombrar o hacer un árbol. Y usarlo.
El foro no está concebido para ser una escuela e impartir lecciones, solo apoyos, apuntes, ayuda puntual... el trabajo de aprender recáe en cada persona individualmente.
Si tu ya conocieras los árboles, que tuvieras una duda concreta y puntual, pués vale preguntar y tendrías respuesta, pero no cabe enseñar a nadie desde 0, y mucho menos desde el nivel en que un 'aspirante' esté anclado en conocimientos (habitualmente poder adquirir ciertos conocimientos, supone conocer los que están por debajo de esa capa y que son necesarios para explicar y comprender lo que se cuenta)...

Hay chorrocientos libros para aprender, casi seguro que también haya muchas páginas donde se aborde el tema con mayor o menos proofundidad (incluso probablemente vídeos por youtube), pero vamos un foro no. Un solo hilo donde dijera: "enseño árboles", acabaría teniendo miles d epáginas, pués todo el mundo vendría a preguntar las mismas cosas respondidas mil veces, pero que en vez de buscar prefiere que se lo cuenten de nuevo otra vez bajo su perspectiva particular.

Mi consejo es que te compres un buen libro, si el dinero (como tantas veces) es un problema, seguro que todavía podrás descargarte alguno por la red... y si tampoco te vale por la razón que sea, Wikipedia, es una opción asequible a todo el mundo: Empieza por aquí... lee, lee y lee.
https://es.wikipedia.org/wiki/%C3%81rbol_(inform%C3%A1tica)
142  Seguridad Informática / Criptografía / Re: Sucesion parcial o completa entre numeros primos. en: 7 Febrero 2021, 19:18 pm
No. Los primos no siguen ninguna serie conocida. Aunque es un tema abierto, pués tampoco hay demostración en contra.

Lo que sí hay son series de primos que cumplen cierto patrón, por ejemplo los primos de Mersenne. Que son en la forma: p = (2^n)-1
Es decir es la serie de números (que son primos) que cumplen ese patrón.. entre medias hay más primos y hay números que cumplen ese patrón pero no son primos.

No sé si son este tipo de series lo que venías buscando.
143  Foros Generales / Foro Libre / Re: Test Competencias aptitudinal en: 6 Febrero 2021, 22:28 pm
No pillo que tiene que ver esto con lo que ponga en el currículum. No capto el contexto y lo he intentado  :-\
Las empresas sabne de sobra que la mayor parte d ela gente infla su curriculum.
Un modo sencillo de saber la verdad, es preguntarles sin que ello les ponga en evidencia. Si pedirles la verdad ha de suponer pasar vergüenza, etc... insistirán en mentir.
"Tengo la confianza o la esperanza de conseguir los resultados deseados."
Si dominas un tema específico, por qué no vas a tener confianza en conseguir los resultados que esperas?. El único modo de que suceda eso (a priori),  es que en verdad no domines el tema.
Habrá otras razones, cuyas causas puntualmente, pero tú no tienes ningún modo de saber en este preciso instante, cuales podrían ser. La única a priori es que domines o no el tema para el que supuestamente se te contrate.

Feedback, como bien señala Machacador es retroalimentación en cualquier sentido. Se refiere por ejemplo a cosas de electrónica, en relaciones sociales, inclsuo en programación, desde el código, hasta el programa una vez completado... y como no, entre un autor y su público (por ejemplo músicos y fans).
Por ejemplo la frase "...el feedback entre el programador y sus usuarios...", refiere básicamente a las quejas o fallos del programa, que el programador tendrá en cuenta para corregir o mejorar la próxima versión.

Se cuela con excesiva facilidad demasiada teminología en el español sin necesidad (cuando tenemos palabras en nuestro idioma no es necesario importarlas, de hecho a veces creo que hasta convendría tomar medidas).

Según lo que dices con el ejemplo de la radio la traducción al castellano sería algo así como repetición, eco, retardo o repetición retardada.
Ahí el término correcto es 'acople'... Es como poner un espejo que se refleja en otro espejo, si la imagen tiene un pequeño ángulo se ven espejos infinitos, porque cada reflejo, refleja lo que el otro contiene y aquel contiene todo lo que este a su vez refleja.

'feed' es alimentar, alimentador, y 'back' retroceso, volver, de vuelta atrás...
Pero con lo del profesor y alumnos  sigo sin pillarlo, pero en términos de la afirmación del test "doy y solicito feed-back".
Un profesosr explica... y espera que los alumnos que no entiendan su explicación (aunque sea parcialmente), hagan las preguntas al respecto. Si el profesor responde una duda, puede de nuevo el alumno, volver a requerir otra aclaración de ahí lo de 'doy y solicito feedback.

144  Programación / Programación General / Re: IA para Mastermind. en: 6 Febrero 2021, 20:01 pm
Son varias preguntas. Voy a ver si te respondo a todas sin extenderme demasiado...

Sinceramente si es muy largo o complicado prefiero hacer otra cosa.
Complicado por sí mismo no, es, pero la complejidad es algo subjetivo que depende de los conocimientos de cada uno.

Bueno, no sé, pero llega a aprender algo sin que yo se lo diga.
Nota la diferencia entre 'encontrar una solución' y 'aprender algo'.

¿Cómo es con grafos y autómatas?
Con grafos es siguiendo el camino que tracé en el mensaje anterior.
Puedes en un principio considerar un árbol, y más tarde pasar a considerar un grafo o al revés.
Nota que con grafos y árboles, la recursividad está a la orden del día. Luego el lenguaje usado debe aceptar recursividad. Es posible cambiar cualquier sistema iterativo a recursivo y viceversa pero en la práctica a veces es complicado pasar de uno a otro, en tanto que en un sistema es básicamente intuitivo. Esa lucha 'contraintuitiva' añade una capa de complejidad innecesaria e indeseable.

Para hacerlo con autómatas, necesitas conocer la teoria de autómatas... si no es como querer arreglar la maquinaria de un tren, solo porque lograste arreglar el pedal de la bici de tu sobrino.

Puse el título de Mastermind porque es muy parecido, pero no he puesto un límite a la cantidad de intentos.
Ok.. no limitarlo en prinicipio a un número de intentos no es mala idea.

Al parecer soy incapaz de resolver el problema por mí mismo.
 ¿Por qué dices que complico si estoy simplificando? 2 valores es más sencillo que 8. En todo caso puedo usar letras en vez de números si te parece mejor.
 Calculo que en mi caso serían 1*2.
Una IA se alimenta de datos. Datos que deben sopesarse, para que se adapten. Si el número de entradas es muy escueta, el aprendizaje será complejo, no quedaría claro ni existiría una separación definida de cuando una solución responde a la lógica tras la IA, respecto de la pura causalidad (pués solo hay 4 soluciones entre la que elegir, por fuerza acertaría un 25% de las veces incluso sin ninguna 'intelgencia detrás')
... ahora pon 20 entradas y entonces incluso un 2% de aciertos será más admirable al caso que un 25% con solo 2 entradas.

 
¿Cuales son los requisitos para que sea IA? Nota que en el título simplifiqué, en parte por no saber qué decir. ¿Lo que describí con números no lo es?
Una IA necesita en principio ser un proceso abstracto, aunque luego pueda ser definido expresamente para un cometido único.
Una IA tiene una o más salidas, pero dichas salidas retroalimentan la entrada, sin retroalimentación no hay siquiera memoria, menos aprendizaje.
Nota que la memoria es una retroalimentación de una entrada con algo ya almacenado (una salida previa).
El aprendizaje, consiste en hacer esto mismo a muchas más capas... El aprendizaje podría verse como una simulación d ela simulación de una memoria.
Una IA requiere poder cambiar valores llamados pesos, para estabilizar como reacciona la información, esos pesos hacen una especie de compensacion distinta a diferentes entradas.

 
¿Entonces esto es un autómata?
actions for fotograma 1
      // Situación inicial.
      BaseVS = 10;
No. Para nada.
Eso es un bloque funcional de acciones.
Guarda una cierta similitud pero solo si se comprende. desde luego no en la forma de abordarlo.
Un autómata en principio se desentiende de tu problema particular, es abstracto.
Recibe un estado inicial y una secuencia y va cambiando el estado interno en función de dichas entradas y una función de evolución (llamada de transición), que dicta como cambia (a que éstado evoluciona desd eel estado actual y con el valor actual de la secuencia). A menudo suele generarse una tabla, para representar el funcionamiento de la funcion de transición.
De una forma simplificada con los datos de entrada computa qué reglas se cumplen y hacia qué estado evoluciona, para finalmente señalar si cumple o no la regla.
En realidad se requiere un autómata por cada regla, aunque finalmente pueden aunarse y simplificar el esquema.

Un autómata en este caso se encargaría de evaluar la apuesta y el número de bolas negras y blancas, y así determinar si la secuencia dada es la solución o no, podría además devolver esos estados internos de las bolas (para recibirlos en la siguiente apuesta).

Como te decía más arriba, para hacerlo con autómatas, necesitas conocer la teoria de autómatas...
No es posible enseñar en 2 o 3 párrafos algo que precisa como mínimo 50 páginas.

Al final has hablado bastante, gracias, pero no me ayudaste con la parte 1...

Yo a lo que he llegado por ahora es a:
Código___Árbol1___Árbol2___etc
________Tiempo que tarda el árbol en hallar el código.
Lamentablemente no puedo penetrar en tu cabeza.
Poner un titulo y el texto de una salida, es lo mismo que no haber hecho nada.

En mi mensaje anterior te he dado pie para sigas desde allí, con árboles. ...pero si tampoco sabes crear y usar árboles en el lenguaje que entiendes... lo que hagas o dejes de hacer, entiendas o dejes de atender, depende finalmentee de tus capacidades.

145  Foros Generales / Foro Libre / Re: Test Competencias aptitudinal en: 6 Febrero 2021, 18:33 pm
Me aburría y me dije... 

Se trata de un test creo de aptitud de una escuela de Inglés que ofrece clases gratis para parados (subvencionados). Sinceramente me pareció una solemne tontería este test.
Totalmente de acuerdo.
La psicología es como la opinión de alguien. No tiene validez ninguna de forma absoluta. Es su justa medida puede tenerse en cuenta y ya.
Soy d ela opinión de que la contratación de personal no debeiera estar a cargo de gente  que se esconde bajo 'recursos humanos', por eso mismo, porque no es una ciencia exacta. Ninguna pregunta ni ninguna respuesta va a indicar si una persona es más apta que otra para el puesto. Justo la ley prevé (al menos en España), 15 días a prueba, que es donde un trabajador puede demostrar si está o no capacitado y donde (se supone) que la empresa tiene la obligación de exponer al personal a prueba al trabajo diario que ha de acometer si definitivamente ocupa su puesto. 15 días son suficientes para saber si alguien encaja en el puesot o no, pero ni 1000 test pueden darte una respuesta tan precisa.


1.   Acepto el cambio como una oportunidad y no como una amenaza
Esta pregunta significa: ¿Te vas a quejar si te cambiamos de puesto, de sueldo, de sitio de trabajo, de...??. no queremos quejicas, queremos robots obedientes.

2.   Adapto mi comportamiento, fácilmente y con rapidez, según las necesidades o requisitos de la situación dada.
Esta pregunta significa: ¿soy fácilmente manipulable???. 

3.   Se mostrarme abierto y receptivo a las nuevas ideas y maneras de hacer las cosas.
Esta pregunta significa: ¿Vas a a protestar cuando algo esté mal?. No eres nadie, y si te decimos que es así, así lo haces y te callas.

4.   Tengo la confianza o la esperanza de conseguir los resultados deseados.
Esta pregunta significa: ¿de verdad dominas lo que pone en tu currículum, o te has inventado cosas?

5.   Soy capaz de mantener una actitud positiva que me permita orientarme hacia el trabajo.
Esta pregunta significa: ¿Te distraes constantemente con tonterías, priedes mucho tiempo mirando tu correo o jugando en tu puesot de trabajo?

6.   Tengo un alta exigencia para alcanzar un objetivo con éxito.
Esta pregunta significa: ¿con tal de alcanzar tus metas, podremos presionarte todo lo que creamos o queramos ?. Se resume en si te vas a agachar el ala en caso de conflicto, o si vas a volar.

7.   Me siento cómodo en entornos de cambio rápido y constante.
Esta pregunta significa (entre otras cosas): ¿Te da miedo ver que tus compañeros entran a trabajar hoy y los despedimos la semana que viene?

8.   Aplico ideas y conceptos nuevos para conseguir mejorar los resultados.
Esta pregunta significa: ¿Te llevas trabajao para terminarlo en casa (sin cobrarlo por supuesto)?. Llaman 'ideas y conceptos nuevos' al hecho de que tú mismo te pagues los estudios o cualquier otro requerimento necesarios por los cambios originados en base a sus decisiones (no a las tuyas). Si por ejemplo entraste a trabajar como programador de bases de datos SQL (por que esa era el puesto ofertado en sus día, si luego sale un buen cliente con bases de datos Oracle, y tu está pegadillo en esa orilla, si vas a actualizarte de tu bolsillo y no con cursillos pagados por la empresa).

9.   Cuestiono los enfoques tradicionales y tengo tendencia a romper con el "más de lo mismo".
Esta pregunta significa: ¿Eres innovador y vas a compartir tus ideas con la empresa o vas a patentarlo por tu cuenta?. Se te requiere saber si cedes tus ideas al dominio de la empresa (y que sea la empresa la que patente) y tu no vas a exigir nada más allá de un invenctivo (limosna).

10.   Me marco objetivos y trabajo para conseguirlos.
Esta pregunta significa: ¿Eres ordenado y terminas todo lo que empiezas o dejas las cosas a medias?. Necesitan saber si van a contar contigo para puestos de responsabilidad llegado el supuesto caso.

11.   Trabajo hasta llegar a las metas o retos que me he propuesto.
Est apregunta significa: ¿Si hay prisas, darás más horas, te llevarás trabajo a casa?.
Hay varias preguntas muy similares. se busca concordancia y no contradicción entre ellas.

12.   Muestro afán en obtener resultados.
Esta pregunta significa: ¿Te vas a desvivir por la empresa, o cuando acaben tus 8 horas te vas a casa y te olvidas de todo?.
Va en línea con la 11, la 10 y la 8...

13.   Gestiono adecuadamente mi propio tiempo, definiendo prioridades en mis actividades.
Esta pregunta significa: ¿En caso de saturación de trabajo, sabrás discernir a cada momento lo que e smás importante y urgente?. Esto implica que hay mas de un gerente o uno solo pero malo y que el lunes quieren esto y el viernes han cambiado de opinión y quieren otra cosa distinta... (de lunes a viernes el trabajo a la basura).

14.   Mantengo el control sobre mi propio trabajo de forma organizada y disciplinada.
Esta pregunta significa: ¿Cuando haya problemas (algo perdido, algo que alguien debió entregar en su mo mento y lo entregó fuera d eplazo, por ejemplo...), aceptas que es culpa tuya si un superior te lo 'endiña' y tú te enteras?

15.   Cumplo mi propia agenda personal entregando los trabajos a realizar en los plazos establecidos.
Est apregunta significa: ¿Vas a presentar excusas cuando tengas trabajo hasta las cejas?

16.   Mantengo una actitud reflexiva y de control ante problemas que se presenten.
Esta es otra d elas preguntas razonables.

17.   Soporto la acumulación de tareas con buen ánimo y resultados positivos.
Esta pregunta significa: ¿Te vas a quejar si te asignamos parte de la tarea de un enchufado y la vas a entregar a tiempo junto todo el resto del trabajo?.
Mientras el jefe se va una semana a quien sabe donde con la chica cuyas tareas te han colado... y pon buena cara...

18.   Mantengo la constancia y la regularidad en la ejecución del trabajo.
Esta pregunta significa: ¿Acostumbras a entregar tus tranajos a tiempo, eres un lentorro, atrasas el trabajo dle resto?
Esta pregunta es bastante razonable dentor de lo que cabe.

19.   Me preocupo de conocer otros puntos de vista.
Esta pregunta significa: ¿Aunque sepas de antemano la solución a un problema o que las respuesta que se pretende aplicar es errónea, tendrás paciencia para aceptar otras soluciones mediocres, solo poque son ideas del jefe u otro bien mirado en la empresa?.
Se te pide que pongas cara de bobo impresionado cuando ssepas que algo está mal desde un principio. La idea es que, en caso de fallo catastrófico la culpa final sea de todos y que no te quedes al margen, que aceptes (tu) parte de la culpa (si es tu idea está bien, pero si es la de otro y tu entendías que tenía errores (que no quisieron escuchar o que escucharon y desoyeron), por qué has de participar de dicha culpa).

20.   Normalmente doy y solicito feed-back.
Esta pregunta significa: ¿Si no te has enterado de algo, seguro que vas a preguntar hasta tenerlo todo claro, no queremos errores y si entiendes que uno se ha equivocado vas a explicárselo hasta que lo entienda y que así no cometa errores?.
Probablemente sea la pregunta más razonable de tod el cuestionario.

21.   Adapto el estilo de expresión a las necesidades del interlocutor.
Esta pregunta significa: ¿Te vas a comportar con  tranqulidad, paciencia y claridad aunque desde el otro lado no suceda lo mismo?.
Resulta absurdo. Básicamente te está preguntando si eres dobaldor de películas. Todo el mudno tiene cierta flexibilidad, pero nunca es tanta, como lo que se sugiere.  Por otro lado si tu intelrocutor es sordomudo y tu no entienddes el lenguaje de señas, que leches vas adaptar al interlocutos... de hecho es más probable que alguien se acabe ofendiendo por el exceso empeño que alguien pone en esa adaptación que suena más a burla a tomarlo por tontos que a otra cosa.
Cada cual tiene que recononcer y asumir sus cirscuntantcias y limitaciones.

22.   Me relaciono con facilidad con otras personas, aunque provengan de entorno cultural o profesional diferente.
Est apregunta significa: ¿Eres un bicho raro, un friki, y también tienes algo en contra de otros frikis?.
Desde el punto de vista social es absurda. Si alguien es racista, comunista o cualquier otro -ista (son solo ejemplos), en determinado trabajo que tenga claro que su '-ista' juega en contra para conseguir el trabajo, lo va a ocultar sí o sí... por lo menos de entrada.

23.   Me relaciono con profesionales de otros campos o estudios para poder aprender cosas nuevas que se pueden aplicar a mi propio campo.
Esta pregunta significa: 2 cosas: ¿tienes de verdad la experiencia que dices tener en tu currículum?. Y en caso afirmativo: ¿Tienes referencias de qué tu experiencia es la que dice ser?.
Supuestamente si tienes cierta experiencia conoces a bastante gente y se supone que si eres todo lo que ellos quieren, además conservas y mantienes contactos con todos ellos (vamos que vas por el mundo y por la vida con una especie de minifacebook profesional).

24.   Me preocupo de construir una red de contactos profesionales amplía y sólida y me esfuerzo para ampliarla.
Esta pregunta significa: ¿Si tienes o tenías contactos de tus trabajos anteriores, los vas a ceder a la cartera de clientes de la empresa, o al menos llegado el momento oportuno, podremos contar con ellos si hace falta?.
No queda claro si habría negociación a través de ti, típicamente esto se oculta en otra de estas ridi-preguntas)

25.   Tengo claras mis prioridades o intereses.
Esta pregunta significa: Queremos saber que sucederá sii tus prioridades no son las mismas que las de la empresa...

26.   Me pongo en el lugar de otro y trato de anticipar sus necesidades y expectativas.
Est apregunta significa: ¿Si te has dado cuenta que el jefe (de tu sección) la va a 'cagar' con una idea, se lo dirás o dejarás que vaya al director para ver como mete la pata?

27.   Me esfuerzo en identificar las ventajas mutuas de una negociación y destacar los inconvenientes de una no negociación.
Esta pregunta significa: ¿en caso de conflicto, con la empresa, algún jefe u otros empleados, podremos arreglarlos solo con unas palamditas en la espalda?. C0Ñ0, pués dependerá de la putada que te hayan hecho digo yo. Que sí o sí, por narices tengas que aceptar palabritas, no es siempre la solución correcta.

28.   Me identifico con los objetivos de mi equipo.
Esta pregunta significa: ¿Aunque sepas que están equivocados (e incluso hasta que puedas demostrarlo), y que es más fácil empujar hacia abajo que cuesta arriba, harás el tonto y empujarás como los demás cuesta arriba, especialmente si la idea partió del jefe?.

29.   Comparto la información recibida y los resultados obtenidos con el resto de miembros del equipo.
Esta pregunta significa: ¿Si fruto de tu inmenso esfuerzo o tu ingenio logras avances, estás dispuesto a no darles importancia y hacer como que todos habeis participado de ello, aunque tú le hayas dedicado chorrocientas horas mientras el resto estaba de cervezas o se fue de vacaciones a no se qué playa?.
Le llaman trabajar en equipo a 'confundirte' entre la masa de la ignorancia. Si algo brilla por sí solo, por qué C0J0N3X hay que enturbiarlo ni mancharlo?.

30.   Ayudo a los compañeros a compensar sus carencias.
Esta pregunta significa: ¿si el hijo del gerente, el sobrino del jefe u otro enchufado no tiene ni P... idea, serás tan amable de perder tu tiempo y explicarle (hacer su trabajo) para que el torpón aparezca como que cumple su trabajo aunque tu tengas que dejar el tuyo sin terminar (que no puedes porque como estás comprometido con la empresa tendrás que recuperarlo fuera de horarios)?

31.   Cumplo los compromisos adquiridos.
Esta pregunta significa: ¿Das más importancia a tu palabra que a las condiones laborales que rigen el puesto que ocupas?.
Es frecuente que te exijan cumplir compromisos a pesar de que las condiciones iniciales en las que estableciste dicho compromiso han cambiado y por tanto tu eres libre de rescindir dichos compromisos.

32.   Respondo de mis propias acciones en todo momento.
Esta pregunta significa: ¿Te tragas las culpas sin rechistar cuando un superior diga que la culpa es tuya?.

33.   Actúo con integridad, honestidad, transparencia y claridad.
Esta pregunta significa: ¿Si la empresa comete ciertos delitos de los que al final (por tu puesto) podrías estar enterado, nos va a a descubir, vas a ser el chivato que nos joda?


De entre todas solo he visto 3 preguntas razonables, las demás están borrachas... dopadas de bobosofía.

Por último... con estos test (cuando es posible, lógicamente, algunas veces no sale la siguiente pregunta hasta haber respondido a la actual), recomienzo hacerlos desde el final hacia atrás.
Muchas veces el orden de las preguntas está pensado al revés para que ya habiendo respondido con anterioridad algo, ahora (que queda más claro el asunto) no puedas cambiar (sin que se note) la respuesta.
146  Seguridad Informática / Bugs y Exploits / Re: c++ sirve para el hacking? en: 6 Febrero 2021, 17:03 pm
El C como lenguaje tiene todos los defectos habidos y por haber, pero como sucede con cualquier otro lenguaje con defectos, el usuario que lo domina a fondo, no cae en tales errores. Lo que lo hace diferente de esos otros y especialmente atractivo, es que al menos éste no tiene prácticamente limitaciones...

Para el aprendizaje, es largo, tedioso... pero finalmente es efectivo y como no ha venido ningún otro a sustituirlo, tiene su nicho asegurado. ...de lejos para aprender es uno de los que más tiempo lleva (aprenderlo bien).

Si te tira la seguridad, imprescindible solo es el ensamblador, pero saber solo ensamblador no es óptimo, te servirá para entender con minucioosidad muchos errores no interceptables de ninguna otra manera, pero para aplicar soluciones (en la forma de programas, no puntuales), no e slo mejor cualquier lenguaje de alto nivel conviene conocer para complementarlo, y en tal caso C es una buena opción.

C++ es un C mas evolucionado, con menos 'defectos' y más control, Java es también descendiente de C, también tiene muchos menos defectos y mucho más control, también está ya fuera de control (mega-lenguaje, como los de Microsoft). Nota sin embargo que muchos de esos defectos (del C) son en situaciones dadas, virtudes o privilegios que no tienen otros lenguajes (de los defectos de otros lenguajes, es raro que pueda decirse lo mismo, son defectos siempre).

Resumiendo si te tira la seguridad te recomiendo ensamblador y algún lenguaje de alto nivel, C++ es una opción frente a esto (un solo lenguaje), pero al final sí o sí, necesitarás saber algo de ensamblador... y con el tiempo también de java y... en fin, que no te asustes tu empieza por donde quieras que luego tendrás por donde seguir, las calles a recorrer son las mismas, solo cambia el orden de recorrerlas en cada caso pesonal.
147  Programación / Programación General / Re: IA para Mastermind. en: 6 Febrero 2021, 16:30 pm
Ya te he indicado en más de una ocasión que tus 'problemas' suelen tener que ver frecuentemente con combinatoria y teoría de grafos. Haz el esfuerzo por aprender algo al respecto (sin quejarte de que no lo entiendes, solo inténtalo, si no lo entiendes a la primera sigue leyendo y leyendo, llega un momento que tu cabeza tiene suficientes piezas y sin darte cuenta montas el puzzle y acabas por comprender las cosas...)

Esto no puede llamarse IA, por varias razones...
- Es lo suficientemente sencillo como para resolverlo mediante grafos y más eficientemente mediante autómatas.
- El juego acaba tras 8 intentos fallidos (un IA no puede 'aprender' con solo 8 jugadas). Todavía se le podría 'enseñar' partidas (miles) tratando de que al final fuere capaz de satisfacer una solución la mayor parte de las veces. ...pero incluso así es mucho más trabajo (manual) que resolverlo por las formas antedichas.
- La IA se suele reservar para sistemas donde la complejidad se escapa humanamente al análisis, o bien aunque no escape, su resolución conlleve un tiempo (tambien) humanamente inaceptable.

Voy a darte algunas pistas... a ver si logras hacer algo (aparte de protestar).
- De entrada descarta usar unos y ceros (solo complicarás las cosas, sabiendo  cuales son las reglas dle juego y que estas son finitas y de pequeño número), usa letras: siendo 8 bolas: ABCDEFGH
 Una jugada como ACDG supone usar las bolas cuya letra representan en el orden en que aparecen en la jugada (apuesta). Prácticamente todos los lenguajes aceptan tratamiento de textos con caracteres y números por muy básico que sea el lenguaje.
- Como solo son 4 bolas la solución, el número de posibilidades para ordenar 4 bolas son: 1*2*3*4 = 24, es decir aún siendo 4 bolas la solución pueden estar ordenadas de 24 maneras distintas. Resulta de interés determinar el mínimo número de apuestas en que puede hallarse la solución partiendo de un fallo total de orden (más adleante alargo un poquito más este caso, es el más interesante porque a otros casos (no a todos) se llega desde éste, luego resolviendo éste, 'por el camino' resuelves aquellos).
- Tras la apuesta del jugador (en la primera de ellas), hay solo 14 resultados distintos.
 es decir estos resultados son los nodos hijos del nodo raíz de un árbol.
Si las numeramos (por ejemplo para acogerlos en una enumeración, serían):
00 - 0 negras y 0 blancas  (equivale a -12- (4 negras con las bolas no jugadas, es deicr la próxima apuesta usa las 4 no usadas))
01 - 1 negra
02 - 1 blanca
03 - 2 negras
04 - 2 blancas
05 - 1 negra y 1 blanca
06 - 3 negras
07 - 3 blancas
08 - 2 negras y 1 blanca
09 - 2 blancas y 1 negra
10 - 2 negras y 2 blancas
11 - 3 negras y 1 blanca
12 - 4 negras               (fallan en el orden)
13 - 4 blancas              (hallado, fin de partida)
14 - 3 blancas y 1 negra NOTA: que este caso nunca puede darse, se añade solo por que no parezca un olvido... y hacer notar así su caso imposible.

Supongamos que tu primera apuesta fuera: ABCD y el resultado de la apuesta es 12 (4 negras)...
Lo más razonable con el resultado es cambiar solo 2 bolas en la siguiente apuesta, por ejemplo AB--> BA (también podrías cambiar 3 bolas de sitio o las 4, pero las combinaciones de los resultados posibles son más numerosas con tales casos). Por ello ciñámonos solo a considerar un cambio de solo 2 de ellas:
El nodo 10 tendría (en este caso) como hijos nodos a:
12 - 4 negras  ---> es decir sigue sin cambios, pero ahora sabemos que AB ocupan las posiciones 34 y CD las posiciones 12 (después de otra apuesta llegamos al caso 12 o 10, y con otra más al 10 (si antes no llegamos al 13 (la solución).
10 - 2 negras y 2 blancas  ---> caso de que el intercambio arroje a ambas a su orden correcto.  La siguiente apuesta resuelve el enigma: CD--> DC = resultado 11 (reseulto)
11 - 3 negras 1 blanca  ---> A o B es blanca.

...si vas descendiendo de forma exhaustiva caso por caso, finalmente tienes una forma arbórea de explorar los resultados para dirigir la siguiente apuesta y así poder  solucionarlo en el mínimo número de jugadas.
Nota que las resultados son siempre los mismos, por lo que al final se reduce a usar una y otra vez las mismas operaciones con resultados ya conocidos, donde lo que cambia es la información previa que ya hemos obtenido y que será conjugado con el nuevo resultado lo que derive a uno u otro nodo.
Asumo que el árbol incluso podría generarse en forma de Trie, donde la raíz es la solución y se alcanza siempre si el número de profundidad del nodo (actual) no es superior al número de jugadas máximas antes de dar por perdida la partida...
No me he parado a verificar si es posible ganar siempre en el númro de jugadas máximo (8), ni tengo previsto perder tiempo en ello. Creo que con el tiempo dedicado a responderte es más suficiente.

Desde el punto de vista de un autómata, habría que asignar estados con cada jugada: sugiero dotar de un valor de 5 por cada 'bola blanca' y un valor de 1 por cada 'bola negra'  (nota que un valor menor de 5 para blancas dejaría en la ambigüedad el resultado, pués 4 negras suman 4). El estado final del autómata con valor '20' señalaría el estado de aceptación.

Una IA podría ser alimentado con partidas completas (jugada a jugada), recibiendo como retroalimentación precisamente el valor numérico resultante. Si el número de jugadas es lo suficientemente grande, es probable que de una forma algo más monstruosa* acabara llegando a un esquema equivalente al árbol recién descrito (* las IA habitualmente consumen mucho más recursos de memoria (mientras se los entrena), que un sistema equivalente programado de forma manual).

Si no eres capaz de programar un esquema con árboles, ni con autómatas, me temo que tampoco serás capaz de crear una IA, que suele ser más complejo.

...aunque conociéndote un poco, asumo que tienes la mala costumbre de llamar IA, a procesos que no lo son (esto ya ocurre incluso en profesionales idiotizados).
148  Comunicaciones / Android / Re: Creo que me han hackeado el teléfono en: 3 Febrero 2021, 22:46 pm
Bloquea las llamadas. especialmente si son llamadas internacionales. Y Ponlo en modo 'avión', cuando no lo tengas entre tus manos...
149  Foros Generales / Foro Libre / Re: Equipo de la OMS en Wuhan afirma que obtuvo datos sobre el origen del coronavirus "que nadie ha visto antes" en: 3 Febrero 2021, 22:39 pm
jajaja... después de año y mdio (o más), van a encontrar en medio de una ciudad una colilla que alguien tiró... como no.
150  Programación / .NET (C#, VB.NET, ASP) / Re: Obtener número de serie de un disco físico (no volumen lógico) en: 3 Febrero 2021, 22:06 pm
Alguien me pudiera aclarar como se puede obtener el número de serie de un disco físico, también el modelo del disco.

OJO!!! Que sea usando la API de Windows y en VB
.NET es muy completo, no necesitas usar APIs...

Si partes desde vb6, por ejemplo tiene sel objeto Scripting, que contiene la clase FilesystemObject, que a su vez contiene las clases Drives y Drive, para obtener datos de la unidad, si bien trae el SerialNumber (que los objetos Drive de .NET, no lo incorporan), tampoco trae el modelo de la unidad.

Aquí una sopa de código para rescatar algunos datos desde diversas fuentes en .NET...
Nota sin embargo que para usar el objeto Scripting tienes que agregar la referencia COM al proyecto, antes de instanciar y poder usarla...

Al final, accedemos al registro, para rescatar los nombres de las unidades conectadas internamente, las conectadas externamente ('removibles') se acceden desde la clave 'UsbStor' (incluídas las unidades ópticas). El ejemplo te vale para profundizar y modificar a tu gusto... como el registro es una base de datos fuertemente  jerarquizada es engorroso, para escribir código rápido pues debes recorrerlo iterativa o recursivamente si no te construyes alguna clase exprofeso para manejarlo con comodidad.

Código
  1. Imports Microsoft.Win32
  2.  
  3. Public Class Form1
  4.  
  5.    Private Enum DriveTypeScripting
  6.        DRIVE_TYPE_DESCONOCIDO = 0
  7.        DRIVE_TYPE_DESCONECTABLE = 1
  8.        DRIVE_TYPE_DISCODURO = 2
  9.        DRIVE_TYPE_REMOTO = 3
  10.        DRIVE_TYPE_OPTICA = 4
  11.        DRIVE_TYPE_RAMDISK = 5
  12.    End Enum
  13.    Private Function DriveTypeToString(ByVal DtS As DriveTypeScripting) As String
  14.        Select Case DtS
  15.            Case 0 : Return "Desconocido"
  16.            Case 1 : Return "Desconectable"
  17.            Case 2 : Return "Disco Duro"
  18.            Case 3 : Return "Unida de Red"
  19.            Case 4 : Return "Unidad óptica"
  20.            Case 5 : Return "Unidad de Memoria"
  21.                'Case else
  22.        End Select
  23.  
  24.        Return ""
  25.    End Function
  26.  
  27. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  28.        Dim dev As Devices.Computer
  29.        Dim info As String
  30.        Dim fso As New Scripting.FileSystemObject
  31.        Dim ds As Scripting.Drives
  32.        Dim key As RegistryKey, keyDrive As RegistryKey, keyIde As RegistryKey
  33.        Dim hk As RegistryHive
  34.        Dim rv As RegistryView
  35.  
  36.  
  37.  
  38.        ' Acceso desde el spacename IO
  39.        For Each d As IO.DriveInfo In IO.DriveInfo.GetDrives
  40.            With d
  41.                info = (.Name & vbNewLine & .DriveType.ToString)
  42.                If (.IsReady) Then info += (vbNewLine & .DriveFormat)
  43.                MessageBox.Show(info)
  44.                'info.
  45.            End With
  46.        Next
  47.  
  48.        ' Acceso desde el namespace IO y/o Win32.Devices
  49.        dev = New Devices.Computer
  50.        For Each d As IO.DriveInfo In dev.FileSystem.Drives
  51.            MessageBox.Show(d.Name)
  52.        Next
  53.  
  54.        ' Acceso a los datos de las unidades mediante el objeto FileSystemObject de la referencia Scripcing (que debe agregar desde COM).
  55.        Dim dtipo As Scripting.DriveTypeConst
  56.        Dim volLabel As String
  57.        ds = fso.Drives
  58.        For Each disk As Scripting.Drive In ds
  59.            With disk
  60.                dtipo = .DriveType
  61.                If (dtipo = DriveTypeScripting.DRIVE_TYPE_DISCODURO) Then
  62.                    volLabel = .VolumeName & vbNewLine
  63.                Else
  64.                    If .IsReady Then
  65.                        volLabel = .VolumeName & vbNewLine
  66.                    Else
  67.                        volLabel = ""
  68.                    End If
  69.                End If
  70.                info = (.DriveLetter & ":\" & vbNewLine & volLabel & DriveTypeToString(dtipo))
  71.                If .IsReady Then info += (vbNewLine & .SerialNumber)
  72.                MessageBox.Show(info)
  73.            End With
  74.        Next
  75.  
  76.        ' Acceso al registro para rescatar  el modelo de la unidad...
  77.        Dim subkeys() As String
  78.        hk = RegistryHive.LocalMachine
  79.        rv = RegistryView.Registry32
  80.        key = RegistryKey.OpenBaseKey(hk, rv)
  81.        Try
  82.            key = key.OpenSubKey("System").OpenSubKey("CurrentControlSet").OpenSubKey("Enum").OpenSubKey("IDE") ' "UsbStor"
  83.            subkeys = key.GetSubKeyNames
  84.            For k As Integer = 1 To key.SubKeyCount
  85.                keyIde = key.OpenSubKey(subkeys(k - 1))
  86.                keyDrive = keyIde.OpenSubKey(keyIde.GetSubKeyNames(0))
  87.                MsgBox(keyDrive.GetValue("FriendlyName"))
  88.                keyDrive.Close() : keyIde.Close()
  89.            Next
  90.        Catch ex As Exception ' no tienes permiso,
  91.            MessageBox.Show(ex.Message)
  92.        Finally
  93.            key.Close()
  94.        End Try
  95.    End Sub
  96. End Class
  97.  

Y ya desde ahí compón lo precises...

Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ... 326
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines