[C/C++] Generar palabras aleatoriamente

LiuM

Hola a todos,

¿Hay alguna metodo implicito en las librerias de C o C++ para generar una palabra aleatoriamente y que esta tenga sentido?

Hasta el momento solo se me ha ocurrido introducir previamente palabras en un vector o fichero y escoger una aleatoriamente, pero no me gusta porque en el fondo no dejan de ser palabras previamente seleccionadas.

Si alguien me puede orientar un poquillo se lo agradecería.

Un saludo

dr_Rouman

Lo dudo muchísimo, mientras me leía la pregunta se me ha ocurrido lo del vector, o si acaso un fichero, pero nada más xD

LiuM

La verdad que la capacidad de hacer una palabra con sentido combinando tantas letras es bastante jodido sin IA o un algoritmo tipo automata que marque unas pautas y aun asi seria jodido.

Pues nada, tendre que usar palabras semi-aleatorias XD

Gracias

Soltrac

En una asignatura de IA estuvimos trabajando sobre esto para hacer programas q resolvieran ahorcados y esas cosas y es bastante chungo.

Lo primero es enseñarles el español. Al ser solo palabras, te ahorras muchisimas cosas (imagina con frases o textos!!!!), pero hay q evitar burradas como "VR". La cosa es muy compleja, por lo q yo me limitaría a generar consonante - vocal - consonante...o utilizar un diccionario del q cogerlas :) (lo q tu has llamado ese vector)

LiuM

Al final he optado por un usar un fichero con un diccionario, bien el propio ispell de Linux (usr/share/ispell/español.mwl.gz) u Openoffice.

A ver que sale, muchas gracias Soltac ;)

LOc0

Una vez le hice algo así a un colega que quería registrar un huevo de dominios (cuando se abrió el .es al público) y la verdad es que funcionar, funcionaba, pero algún "extraño" se colaba siempre. La idea era básicamente lo que comenta #4 pero más a lo basto. (Switchs y if-elses para aburrir...) Lástima no tener el código a mano, porque tp era algo muy tocho...

Salu2 ;)

PD: Hacerlo "perfecto" es muy jodido, sin tener en cuenta que la palabra puede ser "legible" pero no estar en el diccionario de castellano...

gF

Es sencillisimo y más si tienes el diccionario ya. Lo unico que tienes que hacer es almacenarlo en memoria en un arbol trie y luego generar una palabra aleatoria esta tirao

LiuM

#7 El problema no es como hacerlo con el diccionario, eso fue la conclusión que saqué.

Hacer que el programa sea capaz de generar palabras que tengan sentido sin un diccionario de guia ya no es tan fácil xD

De todos modos ya esta solucionado, muchas gracias a todos!

SiCk

Hombre, si lo vas a usar para pw no te aconsejo usar el diccionario de OO xDD Es el primero del que se tira en ataques bruteforce!!

De todas maneras, tal vez lo que puedes hacer es coger consonante-vocal-consonante-vocal con un nº aleatorio de letras superior a 4. Si es para pw al menos pueden ser comprensibles. También podrías poner un clausula que en un porcentaje pequeño fuera aleatorio (para que no fuera siempre C-V-C-V) y de vez en cuando hubiera otra.
No saldrán palabras reales, pero si "legibles". no?

BlisZ

no se si te servira, y ademas esta en php, pero beuno xD http://www.tufuncion.com/generar-passwords-php

IS4kO

Ya veo que lo has solucionado, así que no doy mucho la brasa, solo comentar, que es imposible hacer una generación con palabras que tengan sentido, sin tener una fuente en la que se especifique que palabras tienen sentido y cuales no...

LiuM

Es para un ahorcado que tengo que hacer para clase, por eso queria encontrarle sentido, para contraseñas nunca se me ocurriria coger un diccionario jaja

Pero bueno despues de pensarlo 2 veces, la pregunta era un poco tonta, el caso es que ya me quite el problema de encima y aprendi cosillas nuevas que es lo que importa.

Gracias a todos

Usuarios habituales

  • LiuM
  • IS4kO
  • BlisZ
  • gF
  • LOc0
  • Soltrac
  • dr_Rouman