Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Serapis

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

Cita de: Tachikomaia en  6 Febrero 2021, 18:10 PM
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.

Cita de: Tachikomaia en  6 Febrero 2021, 18:10 PM
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'.

Cita de: Tachikomaia en  6 Febrero 2021, 18:10 PM
¿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.

Cita de: Tachikomaia en  6 Febrero 2021, 18:10 PM
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.

Cita de: Tachikomaia en  6 Febrero 2021, 18:10 PM
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.

Cita de: Tachikomaia en  6 Febrero 2021, 18:10 PM
¿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.

Cita de: Tachikomaia en  6 Febrero 2021, 18:10 PM
¿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.

Cita de: Tachikomaia en  6 Febrero 2021, 18:10 PM
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.

#702
Foro Libre / Re: Test Competencias aptitudinal
6 Febrero 2021, 18:33 PM
Cita de: FJDA en  5 Febrero 2021, 22:58 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.


Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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???. 

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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?

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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?

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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?

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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).

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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).

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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...

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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).

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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?

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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?

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
16.   Mantengo una actitud reflexiva y de control ante problemas que se presenten.
Esta es otra d elas preguntas razonables.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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...

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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).

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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).

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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)

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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...

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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?

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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?.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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?.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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)?

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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?.

Cita de: FJDA en  5 Febrero 2021, 22:58 PM
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.
#703
Bugs y Exploits / Re: c++ sirve para el hacking?
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.
#704
Programación General / Re: IA para Mastermind.
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).
#705
Bloquea las llamadas. especialmente si son llamadas internacionales. Y Ponlo en modo 'avión', cuando no lo tengas entre tus manos...
#706
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.
#707
Cita de: bybaal en  3 Febrero 2021, 04:46 AM
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 (vbnet) [Seleccionar]

Imports Microsoft.Win32

Public Class Form1

    Private Enum DriveTypeScripting
        DRIVE_TYPE_DESCONOCIDO = 0
        DRIVE_TYPE_DESCONECTABLE = 1
        DRIVE_TYPE_DISCODURO = 2
        DRIVE_TYPE_REMOTO = 3
        DRIVE_TYPE_OPTICA = 4
        DRIVE_TYPE_RAMDISK = 5
    End Enum
    Private Function DriveTypeToString(ByVal DtS As DriveTypeScripting) As String
        Select Case DtS
            Case 0 : Return "Desconocido"
            Case 1 : Return "Desconectable"
            Case 2 : Return "Disco Duro"
            Case 3 : Return "Unida de Red"
            Case 4 : Return "Unidad óptica"
            Case 5 : Return "Unidad de Memoria"
                'Case else
        End Select

        Return ""
    End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim dev As Devices.Computer
        Dim info As String
        Dim fso As New Scripting.FileSystemObject
        Dim ds As Scripting.Drives
        Dim key As RegistryKey, keyDrive As RegistryKey, keyIde As RegistryKey
        Dim hk As RegistryHive
        Dim rv As RegistryView


     
        ' Acceso desde el spacename IO
        For Each d As IO.DriveInfo In IO.DriveInfo.GetDrives
            With d
                info = (.Name & vbNewLine & .DriveType.ToString)
                If (.IsReady) Then info += (vbNewLine & .DriveFormat)
                MessageBox.Show(info)
                'info.
            End With
        Next

        ' Acceso desde el namespace IO y/o Win32.Devices
        dev = New Devices.Computer
        For Each d As IO.DriveInfo In dev.FileSystem.Drives
            MessageBox.Show(d.Name)
        Next

        ' Acceso a los datos de las unidades mediante el objeto FileSystemObject de la referencia Scripcing (que debe agregar desde COM).
        Dim dtipo As Scripting.DriveTypeConst
        Dim volLabel As String
        ds = fso.Drives
        For Each disk As Scripting.Drive In ds
            With disk
                dtipo = .DriveType
                If (dtipo = DriveTypeScripting.DRIVE_TYPE_DISCODURO) Then
                    volLabel = .VolumeName & vbNewLine
                Else
                    If .IsReady Then
                        volLabel = .VolumeName & vbNewLine
                    Else
                        volLabel = ""
                    End If
                End If
                info = (.DriveLetter & ":\" & vbNewLine & volLabel & DriveTypeToString(dtipo))
                If .IsReady Then info += (vbNewLine & .SerialNumber)
                MessageBox.Show(info)
            End With
        Next

        ' Acceso al registro para rescatar  el modelo de la unidad...
        Dim subkeys() As String
        hk = RegistryHive.LocalMachine
        rv = RegistryView.Registry32
        key = RegistryKey.OpenBaseKey(hk, rv)
        Try
            key = key.OpenSubKey("System").OpenSubKey("CurrentControlSet").OpenSubKey("Enum").OpenSubKey("IDE") ' "UsbStor"
            subkeys = key.GetSubKeyNames
            For k As Integer = 1 To key.SubKeyCount
                keyIde = key.OpenSubKey(subkeys(k - 1))
                keyDrive = keyIde.OpenSubKey(keyIde.GetSubKeyNames(0))
                MsgBox(keyDrive.GetValue("FriendlyName"))
                keyDrive.Close() : keyIde.Close()
            Next
        Catch ex As Exception ' no tienes permiso,
            MessageBox.Show(ex.Message)
        Finally
            key.Close()
        End Try
    End Sub
End Class


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

#708
Dudas Generales / Re: Sobre websites
1 Febrero 2021, 23:37 PM
Tambien tienes los  forums de desarrollo técnico locales según continentes:
RIPE, ARIN, AfriNIC, incluso JANET... donde puedes conseguir información diversa.
#709
CitarYo esperaba que..
Esperar es más bien desear, algo totalmente distinto a imaginar o entender...
La imaginación surte cuando hay carencia de datos, no entender se puede deber entre otras cosas a no prestar la atención debida, a ser una materia compleja, etc... desear que una cosa sea de tal o cual modo es solo eso. No hay que darle más vueltas.

Si te fijas (por ejemplo) en la última intervención de FreeCellnet, da una 'lista' de teorías sin más... Creo que todo el mundo en el planeta (o al menos de nuestros países e idiomas), la mitad de la lista, es conocido por todo el muno, luego no precisa ser ni listado ni mencionado (si no se añade nada más) y la otra mitad, es más para encargo al 'A-Team' (cuando un día te los encuentres, si los puedes contratar).
#710
Cita de: Tachikomaia en  1 Febrero 2021, 02:11 AM
Serapis
Lo siento, el tema no se titula "hablemos de tu teoría conspirativa favorita". No era difícil entender.
Por supuesto que ese no es el título (y no es cuestión de entender o no entender nada), pero cuando dejas un abanico extenso de posibilidades sin acotar lo más mínimo, hay una enorme dispersión se pierde toda fuerza e interés.