एक उच्चारण योग्य शब्द उत्पन्न करें


16

चुनौती सरल है:

एक शब्द उत्पन्न करें।

विशेष विवरण:

  • शब्द उच्चारण योग्य होना चाहिए।
    • इसे "एक व्यंजन और एक स्वर के बीच बारी-बारी से" के रूप में परिभाषित किया गया है।
    • एक व्यंजन निम्नलिखित अक्षरों में से एक है: bcdfghjklmnpqrstvwxz
    • एक स्वर निम्नलिखित अक्षरों में से एक है: aeiouy
  • शब्द को यादृच्छिक रूप से उत्पन्न किया जाना चाहिए।
  • शब्द हर व्यंजन और स्वर को समाहित करने में सक्षम होना चाहिए। (आप केवल bcdfव्यंजन के लिए और aeiस्वर के लिए उपयोग नहीं कर सकते ।)
  • शब्द में 10 अक्षर होने चाहिए।
  • सबसे छोटा कोड (वर्ण गणना में) जीतता है।


7
साथ इस xkcd पट्टी मन में, कार्यक्रम echo buxitiwymuतकनीकी रूप से विनिर्देशों के अनुरूप। मैं आपको विश्वास दिलाता हूं, मैंने यादृच्छिक रूप से शब्द उत्पन्न किया: P
AardvarkSoup

1
@AardvarkSoup "शब्द हर व्यंजन और स्वर को रोकने के लिए सक्षम होना चाहिए"
दरवाज़े

1
@ कार्तिक संदर्भ पर निर्भर करता है, 'हां' में यह एक व्यंजन है, 'क्यों' में यह एक स्वर है, लेकिन इससे एक उच्चारण शब्द को स्वर और व्यंजन के बीच वैकल्पिक रूप में परिभाषित करना असंभव होगा, जैसे। yyyyyyyyy एक वैध शब्द होगा।
CJStuart

1
मैंने वास्तव में कुछ समय पहले स्क्रैच पर एक जनरेटर बनाया था। यह जब आप इलाज कर सकते हैं के लिए विशिष्ट नियम था yएक स्वर है, जहां आप उपयोग कर सकते हैं के रूप में qऔर x, और आप जैसे दो अक्षर का संयोजन का उपयोग कर सकते हैं जब ngयाea
Esolanging फल

जवाबों:



8

रूबी: 56 अक्षर

([v=%w(a e i o u y),[*?a..?z]-v]*5).map{|a|$><<a.sample}

उदाहरण आउटपुट:

  • itopytojog
  • umapujojim
  • ipagodusas
  • yfoqinifyw
  • ebylipodiz

1
'aeiouy'.charsएक चार छोटी होगी।
हावर्ड

@ हॉवर्ड तब घटाव ऑपरेटर बढ़ जाता हैTypeError: can't convert Enumerator into Array
जॉन ड्वोरक

@JanDvorak क्षमा करें, इस ट्रिक के लिए आपको रूबी 2.0 की जरूरत है।
हावर्ड

7

पायथन, 81

from random import*
print''.join(map(choice,["bcdfghjklmnpqrstvwxz","aeiouy"]*5))

उन्हें शुभकामनाएँ।


वे वास्तव में उच्चारण काफी आसान कर रहे हैं, उदाहरण के लिए पहला शब्द मुझे मिल गया था "viketuziwo":P
दरवाज़े

@Doorknob शायद यह सिर्फ मेरी किस्मत है। मुझे "क़िज़ेपजिगा" जैसे 'शब्द' मिलते रहते हैं। मेरे कंप्यूटर का उच्चारण करने की उनकी कोशिश हालांकि इसके लिए है :)
grc

3
मुझे बस python grc.py | sayअपनी मशीन पर करने में बहुत मज़ा आता था । विचार के लिए धन्यवाद।
काया

7

COBOL, 255

इसलिए मैं फिलहाल COBOL सीख रहा हूं। इस प्रश्न को कुछ अभ्यास के रूप में इस्तेमाल किया। इसे गोल्फ करने की कोशिश की।

यह प्रमुख व्हाट्सएप के बिना 255 है, और 286 बाइट्स के साथ।

इसके लायक क्या है, यह VS2012 के लिए माइक्रोफोकस COBOL में चलता है, और मुझे नहीं पता कि यह कहीं और चलेगा या नहीं।

       1 l pic 99 1 s pic x(26) value'aeiouybcdfghjklmnpqrstvwxz' 1 r
       pic 99 1 v pic 9 1 q pic 99. accept q perform test after varying
       l from 1 by 1 until l>9 compute v=function mod(l,2) compute r=1+
       function random(q*l)*5+v*15+v*5 display s(r:1)end-perform exit


6

जावास्क्रिप्ट, 74

for(a=b=[];a++-5;)b+="bcdfghjklmnpqrstvwxz"[c=new Date*a%20]+"aeiouy"[c%6]

सभी संयोजनों को उत्पन्न नहीं करता है, लेकिन मुझे लगता है कि सभी व्यंजन और स्वर दिखाई देते हैं।

जावास्क्रिप्ट, 79

for(a=b=[];a--+5;)b+="bcdfghjklmnpqrstvwxz"[c=Math.random()*20^0]+"aeiouy"[c%6]

अधिक "यादृच्छिक" संस्करण।


किस ^0लिए है?
अल्फा

1
@ अल्प Math.randomएक फ्लोट देता है, हमें एक पूर्णांक चाहिए। ^0संख्या
कॉपी करें

कारगर तरकीब। मैंने ^जावास्क्रिप्ट में ऑपरेटर को पहले नहीं देखा है और इसे फ्लोट को कम करने के लिए उपयोग करने के बारे में कम सुना है। धन्यवाद!
अल्फा

@ चॉपी मुझे पसंद है^
मैथ चिलर

4

रूबी: 70 66 अक्षर

10.times{|i|$><<["aeiouy"*4,"bcdfghjklmnpqrstvwxz"][i%2][rand 20]}

नमूना रन:

bash-4.1$ ruby -e '10.times{|i|$><<["aeiouy"*4,"bcdfghjklmnpqrstvwxz"][i%2][rand 20]}'
izogoreroz

bash-4.1$ ruby -e '10.times{|i|$><<["aeiouy"*4,"bcdfghjklmnpqrstvwxz"][i%2][rand 20]}'
onewijolen

bash-4.1$ ruby -e '10.times{|i|$><<["aeiouy"*4,"bcdfghjklmnpqrstvwxz"][i%2][rand 20]}'
amilyfilil

आप 10.timesएक चार कम के लिए उपयोग कर सकते हैं ।
हावर्ड

1
इसके अलावा प्रश्न की आवश्यकता नहीं है कि प्रत्येक पत्र में एक ही संभावना होनी चाहिए। *10-> *4, छोड़ें *3, rand 60-> rand 20और आपने 3 वर्ण सहेजे हैं।
हावर्ड

नियम पर अच्छी पकड़, @ हॉवर्ड। धन्यवाद।
मैनटवर्क

4

आर: 105 वर्ण

a=c(1,5,9,15,21,25)
l=letters
s=sample
cat(apply(cbind(s(l[-a],5),s(l[a],5)),1,paste,collapse=""),sep="")


4

प्रसंस्करण, 100 99 93 87

int i=10;while(i-->0)"aeiouybcdfghjklmnpqrstvwxz".charAt((int)random(i%2*6,6+i%2*i*2));

प्रश्न के करीब निरीक्षण पर, मुझे लगता है कि इसे किसी भी आउटपुट की आवश्यकता नहीं है। मैंने उसी के अनुसार इसे समायोजित किया है।


3

उद्देश्य-सी, 129

main(){int i=10;while(i-->0)printf("%c",[(i%2==0)?@"aeiouy":@"bcdfghjklmnpqrstvwxz"characterAtIndex:arc4random()%(6+(i%2)*14)]);}

दानियारो की मदद से

(मैं ऑपरेटर को चिढ़ाने के लिए प्यार करता हूँ (->)


3

जावा AKA अब तक की सबसे क्रियात्मक भाषा है, 176 Doorknob, Daniero और पीटर टेलर (धन्यवाद दोस्तों!) की मदद से

class w{public static void main(String[]a){int i=11;while(--i>0)System.out.print((i%2==0?"aeiouy":"bcdfghjklmnpqrstvwxz").charAt(new java.util.Random().nextInt(6+(i%2)*14)));}}

Ungolfed:

    class w {

        public static void main(String[] a) {
            int i = 11;
            while (--i > 0) {
                System.out.print((i % 2 == 0 ? "aeiouy" : "bcdfghjklmnpqrstvwxz").charAt(new java.util.Random().nextInt(6 + (i % 2) * 14)));
            }
     }

}


1
सुझाए गए सुधार: बदलें String a[]करने के लिए String[]a(-1 वर्ण), परिवर्तन w W = new w();करने के लिए w W=new w();(-2 अक्षर)
दरवाज़े

सुझाव: शब्द हमेशा एक व्यंजन (या फावड़ा) पर शुरू करें; जब प्रश्न का उल्लेख नहीं है, तो इसे यादृच्छिक करने की कोई आवश्यकता नहीं है! इसलिए, बूलियन को छोड़ें fऔर i%2इसके बजाय उपयोग करें । यह भीfor लूप को छोटा किया जा सकता है, और आप दोनों तारों को सशर्त ऑपरेटर के अंदर रख सकते हैं (साथ ही, यहां परन्स की कोई आवश्यकता नहीं है), और charAtबाहर का उपयोग करें । यहाँ पूरी बात है, 195 CHARS, 38 SAVED :import java.util.*;class w{public static void main(String[]a){Random r=new Random();for(int i=0;++i<11;)System.out.print((i%2>0?"bcdfghjklmnpqrstvwxz":"aeiouy").charAt(r.nextInt(6+(i%2)*14)));}}
daniero

2
"जावा एकेए सबसे क्रियात्मक भाषा कभी बनाई गई" - कभी शेक्सपियर की कोशिश की ? ;-)
मैनटवर्क

1
@manatwork, केवल एक ही स्थान पर उपयोग किए जाने के बाद आयात को हटाने के लिए मत भूलना।
पीटर टेलर

1
@manatwork शायद हमें लिस्प पसंद है ?? ठीक है, क्षमा करें, जब मैं काम से घर जाता हूं, तो उन कोष्ठकों को बाहर ले जाना चाहिए
निकालो

3

जावास्क्रिप्ट, 85

for(r=Math.random,s="",i=5;i--;)s+="bcdfghjklmnpqrstvwxz"[20*r()|0]+"aeiouy"[6*r()|0]

यदि कंसोल से चलाया जाता है, तो आउटपुट दिखाया जाता है। स्पष्ट प्रदर्शन alert(s)8 जेएस पर जोड़ देगा , जो अन्य जेएस समाधानों की तुलना में कम है।

धन्यवाद C5H8NNaO4 और हॉवर्ड!


एक अच्छा, एक चरित्र को बचा कर अंतिम ';'
C5H8NNOO4

1
इसके बजाय ~~(###)आप लिख सकते हैं ###|0जो 4 वर्ण बचाता है।
हावर्ड

3

जावास्क्रिप्ट, 135 122 96 86 वर्ण

s='';c=5;r=Math.random;while(c--)s+='bcdfghjklmnpqrstvwxz'[r()*20|0]+'aeiouy'[r()*6|0]


3

यूनिक्स उपकरण: 73 बाइट्स

और चलने के समय की गारंटी नहीं है :)

</dev/urandom grep -ao '[aeiouy][bcdfghjklmnpqrstvwxz]'|head -5|paste -sd ''

केवल समस्या यह है कि उत्पन्न स्ट्रिंग हर बार "स्वर" से शुरू होगी।

(संपादित करें: बदल ' 'करने के लिए ''पेस्ट के आर्ग में) (एक और संपादित करें: ग्रेप विकल्पों में से हटा दिया -पी, करने के लिए धन्यवाद manatwork )


grepमापदंडों के आसपास कुछ ठीक हो सकता है । मुझे “e ag ap ag ak” मिला।
मैनटवर्क

हम्म ... अजीब है। मुझे ऐसा कुछ नहीं मिला। मैंने सोचा था -aकि पर्याप्त होगा।
पगी

1
मेरा परीक्षण इंगित करता है कि -Pएक है। लगता है कि आदमी एक कारण के साथ इसकी अत्यधिक प्रयोगात्मक स्थिति के बारे में चेतावनी देता है। ( grep२.१६) लेकिन फिर भी, यह बिना ठीक काम करता है -P
मैनटवर्क

आप सही हैं धन्यवाद, मैंने उस पर विचार नहीं किया। मुझे यह भी नहीं पता कि मैंने -Pपहली जगह का इस्तेमाल क्यों किया । मैं अपना उत्तर संपादित करूँगा।
14

1
वैसे, tr -d \\nलाइनों में शामिल होने के लिए कम है।
14

3

अजगर, 26 अक्षर

J-G"aeiouy"VT=k+kOJ=J-GJ;k

आप इसे यहाँ ऑनलाइन कंपाइलर में आज़मा सकते हैं।

किसी ने एक बहुत ही समान चुनौती पोस्ट की थी, लेकिन मैंने समाधान करने के बाद इसे बंद कर दिया था। मुझे इसका एहसास नहीं था, लेकिन यह सवाल वास्तव में पायथ के निर्माण से पहले का है। वैसे भी, यहाँ ब्रेकडाउन है:

J                             Set string J equal to:
  G                            the entire alphabet (lowercase, in order)
 - "aeiouy"                    minus the vowels
           VT                 For n in range(1, 10):
             =k                   Set string k to:
                k                  k (defaults to empty string)
               + OJ                plus a random character from J
                   =J             Set J to:
                      G            the entire alphabet
                     - J           minus J
                        ;     End of loop
                         k    print k

जब भी लूप चलाया जाता है, J, व्यंजन की सूची से स्वरों की सूची में परिवर्तित हो जाता है। इस तरह हम हर बार जम्मू से एक यादृच्छिक पत्र चुन सकते हैं।
लूप में J को इनिशियलाइज़ करने या लूप से स्पष्ट असाइनमेंट को हटाने का एक तरीका हो सकता है, लेकिन मुझे अभी तक सफलता नहीं मिली है।


1
पुराने सवालों को उछालना आमतौर पर ठीक माना जाता है। हालाँकि, जब आप प्रश्न से नई भाषा का उपयोग करते हैं (मैंने 2014 में Pyth बनाया था) तो आपको अपने उत्तर में इस पर ध्यान देना चाहिए।
इसाक

मेरे लिए वह सही करने के लिए धन्यवाद। मुझे पता ही नहीं चला कि इस सवाल के बाद अजगर पैदा हुआ था और मैंने उसे जवाब में जोड़ दिया है।
माइक बुफ़र्डेकी

3

एपीएल 30 26

,('EIOUY'∪⎕A)[6(|,+)⍪5?20]

स्पष्टीकरण नीचे दिए गए पिछले संस्करण से बहुत मिलता-जुलता है, बस समाधान को थोड़ा सा हल करने के लिए फिर से लिखा गया है।

नोट: ⎕IO 0 पर सेट है


('EIOUY'∪⎕A)[,6(|,(⍪+))5?20]

स्पष्टीकरण:

'EIOUY'∪⎕A    puts vowels in front of all letters.
5?20            for the indexes we start choosing 5 random numbers between 0 and 19
6(|,(⍪+))        then we sum 6 and the random numbers, convert to 5x1 matrix (⍪), add a column before this one containing 6 modulo the random numbers. 
                [[[ this one can be rewritten as: (6|n) , ⍪(6+n)  for easier understanding]]]
,6(|,(⍪+))5?20  the leading comma just converts the matrix to a vector, mixing the vowel and consonants indexes.

Tryapl.org


1
('AEIOUY'∪⎕A) ≡ (∪'AEIOUY',⎕A)लेकिन यह एक बाइट कम है।
लेस्टिफैनो

1
एक ⎕Aऔर बाइट बचाने के लिए 'ए' का पता ,('EIOUY'∪⎕A)[6(|,+)⍪5?20]
लगाएं

अच्छा! डाउन टू 26. धन्यवाद
मोरिस ज़ुक्का

2

PHP 79 बाइट्स

<?for($c=bcdfghjklmnpqrstvwxz,$v=aeiouy;5>$i++;)echo$c[rand()%20],$v[rand()%6];

काफी संक्षिप्त।



2

जावास्क्रिप्ट, 104 87

a="";for(e=10;e--;)a+=(b=e&1?"bcdfghjklmnpqrstvwxz":"aeiouy")[0|Math.random()*b.length]

सरल अनावश्यक सामान की एक पूरी बहुत कुछ golfed, के रूप में लगभग अभी भी नहीं के रूप में अच्छा copys 'एक

ओह, और यह कि गोल्फ के दौरान बस एक पर जुल्म हुआ: "dydudelidu"

अब मैंने एक बार दृष्टिकोण पर 2 वर्णों का उपयोग करके कोशिश की। यह लगभग दूसरे के रूप में ही है, इसलिए मैं इसे 79 पर भी नहीं गिन सकता। a="";for(e=5;e--;)a+="bcdfghjklmnpqrstvwxz"[m=0|20*Math.random()]+"aeiouy"[m%6]


2

ब्रेकीलॉग , 9 बाइट्स

Ḍ;Ẉṣᵐzh₅c

इसे ऑनलाइन आज़माएं!

आउटपुट चर के माध्यम से पत्रों की सूची के रूप में आउटपुट देता है।

   ṣ         Randomly shuffle
 ;  ᵐ        both
Ḍ            the consonants without y
  Ẉ          and the vowels with y,
     z       zip them into pairs,
      h₅     take the first five pairs,
             and output
        c    their concatenation.

1

एफ # , 166 वर्ण

open System;String.Join("",(Random(),"aeiouybcdfghjklmnpqrstvwxz")|>(fun(r,s)->[0..5]|>List.collect(fun t->[s.Substring(6+r.Next()%20,1);s.Substring(r.Next()%6,1)])))

1

के, 40 बाइट्स

,/+5?/:("bcdfghjklmnpqrstvwxz";"aeiouy")

5?"abc" दिए गए स्ट्रिंग से 5 यादृच्छिक पत्र उत्पन्न करेगा।

5?/: दाईं ओर के प्रत्येक तार से 5 यादृच्छिक अक्षर उत्पन्न करेंगे, दो सूचियों का निर्माण करेंगे।

+ उन दो सूचियों को स्थानांतरित करता है, हमें पहली सूची से एक यादृच्छिक चरित्र के साथ ट्यूपल्स की सूची देता है और फिर दूसरी सूची से एक।

,/ "raze" है - क्रम में उन सभी tuples को एक साथ फ्यूज करें।

K5 33 बाइट्स में वर्णमाला का निर्माण अधिक चतुराई से कर सकता है और फिर ^स्वरों को हटाने के लिए "छोड़कर" ( ) का उपयोग कर सकता है, लेकिन K5 इस प्रश्न में कानूनी होने के लिए बहुत नया है:

,/+5?/:((`c$97+!26)^v;v:"aeiouy")

1

आर, 83 बाइट्स

cat(outer((l<-letters)[a<-c(1,5,9,15,21,25)],l[-a],paste0)[sample(1:120,5)],sep="")

एक मैट्रिक्स में सभी संभावित स्वर-व्यंजन अनुक्रम उत्पन्न करें, फिर उनमें से 5 का यादृच्छिक रूप से नमूना करें, 10-अक्षर शब्द की उपज।


1

05AB1E , 10 बाइट्स

5FžPΩ?žOΩ?

इसे ऑनलाइन या आउटपुट की कोशिश करेंnयादृच्छिक शब्दों की मात्रा

स्पष्टीकरण:

बहुत सीधा:

5F      # Loop 5 times:
  žP    #  Push string "bcdfghjklmnpqrstvwxz"
    Ω   #  Pop and push a random character from this string
     ?  #  Output it without newline
  žOΩ?  #  Do the same with string "aeiouy"

0

जेली , 13 बाइट्स

Øy,ØYẊ€Zs5ḢŒl

स्पष्टीकरण:

Øy,ØYẊ€Zs5ḢŒl
Øy,ØY         Makes a list of two lists of characters: [[list-of-vowels-with-y], [list-of-consonants-without-y]]
     Ẋ€       Shuffle €ach.
       Z      Zip those two lists together. [[random-vowel, random-consonant],...]
        s5    Split them into chunks of five (because each pair contains two letters, this splits them into chunks of 10 letters)
          Ḣ   Take the list of 5 pairs.
           Œl Make each of the characters in it lowercase
              Implicit concatenation and print.

इसे ऑनलाइन आज़माएं!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.