2011-02-24 4 views
6

나는 알고리즘을 이해할 필요가있다. 또는 php/java에 구현 된 것이 있으면 사용자에게 몇 가지 식별자를 선택할 수있는 단어를 생성하지만 기억하기가 쉽기를 바란다. 예를 들어 ' '과 같은 것이 아니라'nxdFgtqI '와 같은 것은 아닙니다.무의미한 단어를 생성하는 방법은 무엇이지만 단어를 쉽게 기억할 수 있습니까?

+2

함께 음절을 고집하여 작업을 수행합니다. 자음과 모음의 발음 가능한 조합으로 음소 (또는 문자 만)를 붙임으로써 음절을 구성하십시오. 이익. –

+1

조금 주관적이지 않습니까? 누구를 위해 기억하기 쉬운가요? 당신이 기억하기 쉬운 것을 정의하려고 할 때 문제가 해결 될 것이라고 생각합니다. –

+1

음성 인식 소프트웨어를 유아 및 조회 기록에 올려 놓으십시오. – corsiKa

답변

6

다음은 설명하는 것처럼 임의의 단어를 생성하는 함수입니다. 그것은 "Q"라는 글자를 사용하지 않는다.

<?php 
    //generate random consonants separated by vowels 
    function generate_faux_word($letters = 5){ 

     //define arrays of consonants and vowels 
     //no q, it's tough to remember 
     $consonants = array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'); 
     $vowels = array('a', 'e', 'i', 'o', 'u'); 

     $ret_word = ""; 
     $consonant_toggle = true; 
     //randomly choose a consonant then a vowel until the word is as long as the parameter 
     while(strlen($ret_word) < $letters){ 
      if ($consonant_toggle){ 
       $ret_word .= $consonants[array_rand($consonants)]; 
       $consonant_toggle = false; 
      }else{ 
       $ret_word .= $vowels[array_rand($vowels)]; 
       $consonant_toggle = true; 
      } 

     } 

     return $ret_word; 
    } 

    echo generate_faux_word(); 
    echo "<br />"; 
    echo generate_faux_word(); 
    echo "<br />"; 
    echo generate_faux_word(6); 
    echo "<br />"; 
    echo generate_faux_word(4); 

?> 

샘플 출력이다

+0

감사합니다. 이것은 내가 필요한 것입니다! 완벽하게 작동 :) –

0

문자열은 한 번에 한 문자 씩 작성하고 각 문자는 97-122 (임의의 값 포함) 사이의 임의의 값을 가질 수 있습니까? 이것은 a-z (비 대문자)에 대한 ascii 십진수 값입니다. 그런 다음 문자열로 변환하십시오.

이 기능이 작동할지 여부는 "기억하기 쉽다"라는 귀하의 정의를 기반으로합니다. 그들은 모두 나를 기억하기가 꽤 어려워 보입니다.

3

전신의 시대에 편지 당 요금이 부과되었을 때, 몇몇 회사는 가능한 한 적은 문자로 전체 문장을 인코딩하는 코드를 고안했습니다. 그들 대부분은 동일한 기본 요구 사항을 가지고있었습니다 : 합리적으로 기억하기 쉬운 편지 모음. 보통 규칙은 모음 그룹과 최대 두 개의 자음 사이의 전환과 같은 것이 었습니다. 이것은 (예를 들어) "labdon"은 허용하지만 "aobldn"(같은 글자, 다른 순서)은 허용하지 않습니다. 이와 같은 규칙에 따라 생성하는 거의 모든 시퀀스는 발음하기가 쉽기 때문에 모든 개인 편지를 기억하는 대신 단어를 본질적으로 기억할 수 있습니다.

1

사전을 사용하여 두 단어를 선택하십시오. 임의의 지점에서 그들을 분할하고 그들을 가입하십시오.

예 : 더 나은 결과

IDEA -> IDE 
WITHOUT -> THOUT 
----------- 
IDETHOUT 

, 분할 점을 제어 (예를 들어, 첫 번째 단어 : 모음에서 분할 번째 단어 스플릿 자음 전과 방법으로 얻어진 음절 = 3 해당).

5

발음 가능한 단어를 생성하는 라이브러리가 있습니다. 도서관 링크는 다음과 같습니다 : http://www.multicians.org/thvv/gpw.html. 해당 페이지에는 Java 소스 파일에 대한 링크가 있습니다. 먼저 파이썬 라이브러리를 찾았습니다. http://www.preetk.com/node/pygpw-generate-pronouncable-words/

+0

대단원! 이 솔루션을 주셔서 감사합니다. 그러나 다른 사람이 PHP 솔루션을 제공해 주셨습니다. –

0

넌센스 워드 생성기 xaso muher sucok kozive . 이것은 @ Jerry Coffin이 말한 것과 비슷한 여러 구조를 사용하여 만들어졌습니다. 재미 있지만 반드시 도움이되지는 않습니다! http://www.mygengen.com/gengens/view/nonsense-words

0

C#을

private static string RandomWord(int length) 
    { 
     var consonants = new[] { "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t", "v", "w", "x", "y", "z" }; 
     var vowels = new[] { "a", "e", "i", "o", "u" }; 
     var word = ""; 
     var b = true; 
     for (var i = 0; i < length; i++) 
     { 
      word += b ? consonants[Rng.Next(consonants.Length)] : vowels[Rng.Next(vowels.Length)]; 
      b = !b; 
     } 
     return word; 
    } 
관련 문제