क्या यह सरल है या यह कठिन है?


21

अपनी हार्ड चीज़ को करने के लिए, आपको कंप्यूटर के लिए एक चीज़ करनी चाहिए जो यह पता लगाती है कि क्या कुछ शब्दों को सरल तरीके से समझाया गया है। किसी चीज़ को सरल तरीके से समझाया जाता है यदि वह केवल दस सौ सबसे अधिक उपयोग किए जाने वाले शब्दों का उपयोग करता है। यदि नहीं, तो इसे कठिन तरीके से समझाया गया है। यह एक पूर्ण कंप्यूटर चीज़ या कंप्यूटर चीज़ का हिस्सा हो सकता है। (पूरा कार्यक्रम या समारोह)

एक कंप्यूटर को पढ़ने के लिए एक चीज होती है, जिसमें प्रत्येक शब्द के बीच की जगह के साथ इसमें दस सौ शब्द होते हैं। कंप्यूटर को पढ़ने के लिए चीज का नाम 'सबसे अधिक इस्तेमाल किया जाता है।' आप इस चीज़ को इस कंप्यूटर स्थान से ले सकते हैं ।

कंप्यूटर का उपयोग करने वाला व्यक्ति कुछ शब्दों को दर्ज करेगा। (यह STDIN, फ़ंक्शन आर्गुमेंट्स या कमांड लाइन आर्ग्युमेंट्स में से हो सकता है) कंप्यूटर को कुछ ऐसा ही कहना चाहिए, जैसे कि शब्द सरल हों और कुछ ऐसा न हो जैसा सच है अगर यह कठिन है। ( truey-falsy ) वह व्यक्ति जो कंप्यूटर के लिए सबसे छोटा काम करता है, वह सबसे अच्छा है। हर इंसान को जो चीजें पता होती हैं वो बुरी होती हैं। ( मानक खामियों को लागू )


कंप्यूटर के काम करने के तरीके के बारे में जानने के लिए अधिक सामग्री:

  • इससे कोई फर्क नहीं पड़ता कि शब्द BIG हैं या थोड़ा।

  • वे चित्र जो शब्द को जानने के लिए आसान बनाते हैं (विराम चिह्न) कोई फर्क नहीं पड़ता। इसलिए यदि कंप्यूटर का उपयोग करने वाला व्यक्ति "न" कहता है, तो यह "नहीं" शब्द से अलग शब्द नहीं है। संख्या और अन्य चित्र भी मायने नहीं रखते। इसलिए यदि व्यक्ति कहता है "HE $$ ll9o" कंप्यूटर को इसे "हैलो" की तरह पढ़ना चाहिए

  • शब्दों (डैश) के बीच की छोटी रेखाएं रिक्त स्थान के समान कार्य करती हैं। तो "अप-गोअर-फाइव" शब्द "अप गोयर फाइव" के समान है।


इस तरह के शब्द बनाने के बारे में जानने के लिए अधिक सामान:

https://xkcd.com/1133/

http://splasho.com/upgoer5/#


7
इसलिए कंप्यूटर चीज़ उपयोगकर्ता के शब्दों को बड़े शब्द की चीज़ की जाँच करें, यह देखने के लिए कि क्या छोटी शब्द चीज़ के सभी शब्द बड़े शब्द चीज़ में हैं?
जोबिट्स

24
शायद यह सिर्फ मेरे लिए है, लेकिन मुझे यह पढ़ने के लिए असाधारण रूप से कठिन लगा।
एलेक्स ए।

8
सरल-टॉक में एक सिनोप्सिस देना बेहतर हो सकता है, इसके बाद "वास्तविक" अंग्रेजी में एक वास्तविक कल्पना।
जोबिट्स

2
क्या डिक्शनरी को फाइल से पढ़ना पड़ता है? यह सर्वथा कुछ भाषाओं को बाहर कर सकता है।
डेनिस

1
आपके पास इस्तेमाल किए गए प्रत्येक शब्द के लिए जुर्माना होना चाहिए जो कि कार्यक्रम में कठिन है
बीटा डेके

जवाबों:


6

CJam, 41 बाइट्स

q"file:///most used.txt"g]{el_euS--S%}/-!

यह बल्कि अशुद्ध धारणा है कि most used.txtजड़ निर्देशिका में है, क्योंकि CJam सापेक्ष पथ को संभाल नहीं सकता है।

वैकल्पिक रूप से, हमारे पास निम्न वेब-आधारित समाधान (78 और 29 बाइट्स) हैं:

q"https://docs.google.com/uc?id=0B2sM8IORrbL3RVpJWTZNUy1rOFU"g]{el_euS--S%}/-!
q"j.mp/-o_O"g]{el_euS--S%}/-!

सीजेएम में ऐसा करने का "उचित" तरीका एसटीडीआईएन (पहली पंक्ति पर इनपुट, दूसरी पर शब्दकोष) से ​​दोनों इनपुटों को पढ़ना होगा, जो 18 बाइट्स में संभव है:

qN%{el_euS--S%}/-!

आप CJam दुभाषिया में अंतिम संस्करण की कोशिश कर सकते हैं । (क्रोम में पर्मलिंक परीक्षण किया गया)

उदाहरण

$ cjam <(echo 'q"file:///most used.txt"g]{el_euS--S%}/-!') <<< 'ten hundred'; echo
1
$ cjam <(echo 'q"file:///most used.txt"g]{el_euS--S%}/-!') <<< 'thousand'; echo
0

2
आप इसे छोटी बनाने के लिए ड्राइव url पर
टिनील का

1
@MIWright ने इसका पता लगाया। उस और Pastebin में फ़ाइल अपलोड करने से 12 बाइट बचती हैं। धन्यवाद!
डेनिस

7

आर, 106 बाइट्स

यकीन नहीं है कि अगर चुनौती को समझा जाए क्योंकि कठिन समय है पढ़ने में।

function(s){u=toupper;all(strsplit(gsub("[^A-Z -']","",u(s)),"[ -]")[[1]]%in%u(scan("most used.txt","")))}

यह एक कंप्यूटर चीज़ का एक अनाम हिस्सा बनाता है जो एक स्ट्रिंग को स्वीकार करता है और कुछ सच की तरह लौटाता है या एक सच की तरह नहीं।

असंगठित + स्पष्टीकरण:

partOfAComputerThing <- function(s) {
    # Remove everything but letters, spaces, dashes, and single quotes
    s <- gsub("[^A-Z -']", "", toupper(s))

    # Split s into a vector on spaces/dashes
    v <- strsplit(s, "[ -]")[[1]]

    # Read the file of words (assumed to reside in the current directory)
    m <- scan("most used.txt", "")

    # Determine if all words in the input are in the file
    all(v %in% toupper(m))
}

प्रेरणा की बात के लिए डेनिस को धन्यवाद।


2
कुछ ऐसा part-of-a-computer-thing(s){...}होना चाहिए जो बोनस अंकों के लायक हो।
डेनिस

@ डेनिस: यह कैसे है? :)
एलेक्स ए।

बहुत बेहतर!
डेनिस

3

पायथन 3, 148 बाइट्स

import re
print(all(i in open("most used.txt").read().lower().split(' ')for i in re.sub("[^a-z ']+","",input().replace("-"," ").lower()).split(" ")))

आउटपुट TrueऔरFalse

उदाहरण

Input:  Don't
Output: True

Input:  The poison air he's breathing has a dirty smell of dying
Output: False

Input:  Who let the dogs out?
Output: False

क्या यह don'tसही ढंग से इनपुट संभाल पाएगा?
एलेक्स ए।

@AlexA। यह लौट आता है True। क्या वो सही है?
बीटा डिके

किसी भी कारण से आप most used.txtनई लाइनों से अलग हो जाते हैं? मैं इस बात पर 100% निश्चित नहीं हूं कि यह कैसे काम करता है, लेकिन मुझे लगता है कि आप इसे फ़ाइल में प्रत्येक व्यक्ति शब्द में विभाजित करने की कोशिश कर रहे हैं?
डेडशेक्स

@DeadChex सप्लाई की गई टेक्स्ट फ़ाइल को किसके द्वारा अलग किया जाता है? मैं इसे एक्सेस नहीं कर सकता क्योंकि यह एसएसएल त्रुटि को फेंकता रहता है।
बीटा डिके

1
प्रश्न में कहा गया है कि "पढ़ने के लिए एक कंप्यूटर के लिए एक चीज़ है, जिसमें प्रत्येक शब्द के बीच एक स्थान के साथ इसमें दस सौ शब्द हैं"
डेडचेक्स

2

पायथ, 35 बाइट्स

!-Fm@LGcrXd\-bZ),zs'"most used.txt

टेस्ट, जहाँ ऊपर फ़ाइल है common.pyth

$ pyth common.pyth <<< 'I can write this way too-hell99#0O.'
True
$ pyth common.pyth <<< 'But I get confused easily.'
False

स्पष्टीकरण:

!-Fm@LGcrXd\-bZ),zs'"most used.txt
   m            ,zs'"most used.txt    Map over input and input file:
         Xd\-b                        Replace hyphens with newlines.
        r     Z                       Cast to lower case.
       c       )                      Split on whitespace.
    @LG                               Remove non-alphabetic characters.
 -F                                   Setwise difference - remove anything in
                                      the text file from the input.
!                                     Logical negation.

0

एपीएल (डायलॉग) , 69 बाइट्स

मान लेता है कि फ़ाइल वर्तमान निर्देशिका में है।

s819' '(1↓¨,⊂⍨⊣=,)'[- ]' '\W'R' ' ''
∧/(s⍞)∊s⊃⎕NGET'most used.txt'

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

पहली पंक्ति एक सामान्य और तेज-में-सूची के- तार सहायक समारोह, को परिभाषित करता है है :

s←रों है
819⌶ लोवरकेस
' '( निम्नलिखित समारोह का परिणाम ... बाईं तर्क के रूप में एक स्थान के साथ,
1↓¨ से प्रत्येक से एक बूंद
, तर्क के संयोजन
⊂⍨ प्रत्येक तत्व जहां से पहले काट
 बाईं तर्क
= के बराबर है
, बहस के संयोजन
) के लिए लागू किया
'[- ]' '\W'⎕R' ' '' PCRE प्रतिस्थापन पानी का छींटा / अंतरिक्ष → अंतरिक्ष, गैर-शब्द-चार → कुछ भी नहीं

∧/(... ) क्या यह सर्व-सत्य है कि
s सामान्यीकृत और विभाजित
 पाठ इनपुट  फ़ाइल  के सामान्यीकृत और विभाजित  पहले तत्व (सामग्री, एन्कोडिंग, न्यूलाइन-स्टाइल) के
 सदस्य हैं
s

⎕NGET'most used.txt'


0

जावास्क्रिप्ट (ईएस 7), 161 बाइट्स

(सवाल के रूप में गैर-प्रतिस्पर्धा ईएस 7 कल्पना पूर्व तारीखें)

s=>fetch("most used.txt").then(t=>t.text()).then(d=>alert(s.split(/[ -]/g).every(l=>d.split` `.map(w=>w.replace(/[\.']/,"")).includes(l.replace(/[^a-z]/g,"")))))

किसी को भी ऑनलाइन फ़ाइल की एक प्रति मिल गई है जिसका उपयोग मैं एक कार्यशील स्निपेट बनाने के लिए कर सकता हूं?


मुझे लगता है कि आप 22 बाइट्स को हटाकर thenऔर 7 बाइट्स को हटाकर बचा सकते हैं alert
टाइटस

आप विस्तृत कर सकते हैं, @Titus? इस चरण के प्रत्येक चरण में एक वादा वापस किया जाता है, इसलिए thenजब वे हल करते हैं तो बाद के कोड को निष्पादित करने की आवश्यकता होती है।
झबरा

मैं ईएस 7 से परिचित नहीं हूं; गलत दिशा में सोच रहा था। लेकिन हो सकता है कि यदि आप सूची में नहीं सभी शब्दों के इनपुट को कम करते हैं तो आप कुछ कम कर सकते हैं? मुझे संदेह है कि PHP वास्तव में JS को लगभग 40% तक हरा सकती है।
टाइटस

ओह, हाँ, वहाँ सुधार के लिए निश्चित रूप से जगह है; यह मेरी दिन की आखिरी चुनौती थी और मुझे दिमागी रूप से दर्द था इसलिए मैंने कल जो कुछ भी किया था उसे कल फिर से करने के लिए पोस्ट किया था। दुर्भाग्य से, एक फ़ाइल की सामग्री पर प्राप्त करने के लिए आवश्यक वादों की श्रृंखला PHP की पसंद के खिलाफ इन चुनौतियों में जेएस को नुकसान में डालती है, लेकिन यह एक्सएचआर का उपयोग करने के विकल्प की तुलना में अभी भी बेहतर है।
झबरा

0

PHP, 101 बाइट्स

foreach(preg_split("#[^\w']+#",$argn)as$w)preg_match("#\b$w\b#i",end(file("most used.txt")))?:die(1);

STDIN से इनपुट लेता है, झूठी के
साथ 1त्रुटि (त्रुटि) के लिए सिंगल लाइन डिक्शनरी से बाहर निकलता है , 0(सत्य के लिए)। के साथ भागो -R

गैर-शब्द वर्णों द्वारा विभाजित इनपुट, परिणामस्वरूप सरणी (शब्द) के माध्यम से लूप:
यदि शब्द शब्दकोश में है, तो जारी रखें; और exit(1)
निहित है exit(0)

या, सीधे शब्दों में कहें:

एक के बाद एक शब्द: यदि शब्द सबसे अधिक इस्तेमाल किए जाने वाले शब्दों में है, तो जारी रखें; और वापसी 1. वापसी 0।

और: मैं दो बिंदुओं को बचा सकता था यदि सबसे अधिक इस्तेमाल किए जाने वाले शब्दों में प्रत्येक के सामने और अंत में एक स्थान था।


-1

जावा, 248 बाइट्स

वाक्यांश के साथ एक तर्क के रूप में पारित हुआ।

void g(String s) throws Exception{String c=new java.util.Scanner(new java.io.File("most used.txt")).useDelimiter("\\Z").next(),x="false";for(String l:s.split(" "))if(c.contains(l.toLowerCase().replaceAll("![a-z]","")))x="true";System.out.print(x);}

इनपुट आउटपुट:

g("was he")         --> "true"
g("was h!e")         --> "true"
g("delicious cake") --> "false"

दूरी और टैब किए गए:

void g(String s) throws Exception{
    String c=new java.util.Scanner(new java.io.File("most used.txt")).useDelimiter("\\Z").next()
      ,x="false";
    for(String l:s.split(" "))
      if(c.contains(l.toLowerCase().replaceAll("![a-z]","")))
          x="true";
    System.out.print(x);
}

आप क्या मतलब है कि यह आप पर निर्भर है कि क्या आवश्यक है ?
बीटा डेके

@ Beta मैं जावा की कुछ उपयोगिता वर्गों का उपयोग करता हूं, यदि आप इस कार्य को एक कार्यक्रम में रखना चाहते हैं, तो आपको आयात करना होगा (अर्थात् java.io.*और java.util.*), बहुत कुछ अजगर आयात विवरण की तरह
DeadChex

3
वैसे आपको इन आयातों को अपनी बाइट काउंट में शामिल करना होगा। आपको पायथन में आयात के बयानों को बाहर करने की अनुमति नहीं है, इसलिए आप उन्हें जावा में बाहर नहीं कर सकते हैं
बीटा डेके

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