এটা সহজ নাকি কঠিন?


21

আপনার কঠিন কাজটি করার জন্য আপনাকে কম্পিউটারের জন্য এমন একটি জিনিস তৈরি করতে হবে যা কিছু শব্দকে একটি সহজ উপায়ে ব্যাখ্যা করা হয়েছে কিনা তা জানতে পারে। যদি কেবলমাত্র দশ শতাধিক ব্যবহৃত শব্দ ব্যবহার করা হয় তবে কিছু সাধারণ উপায়ে ব্যাখ্যা করা হয়েছে। যদি তা না হয় তবে এটি কঠোরভাবে ব্যাখ্যা করা হয়েছে। এটি একটি সম্পূর্ণ কম্পিউটার জিনিস বা কোনও কম্পিউটার জিনিসের অংশ হতে পারে। (সম্পূর্ণ প্রোগ্রাম বা ফাংশন)

কম্পিউটারের পড়ার জন্য এমন একটি জিনিস রয়েছে যার মধ্যে প্রতিটি শব্দের মধ্যে একটি ফাঁক সহ দশ শত শব্দ রয়েছে। কম্পিউটার পড়ার জিনিসটির নামটিকে 'Most Used.txt' বলা হয়। আপনি এই কম্পিউটার জায়গা থেকে এই জিনিস নিতে পারেন ।

যে ব্যক্তি কম্পিউটার জিনিসটি ব্যবহার করে সে কিছু শব্দ প্রবেশ করবে। (এটি এসটিডিআইএন, ফাংশন আর্গুমেন্ট বা কমান্ড লাইন আর্গুমেন্ট হতে পারে) শব্দগুলি সহজ হলে কম্পিউটারকে সত্যের মতো কিছু বলতে হবে এবং যদি শক্ত হয় তবে সত্যের মতো কিছু থাকে। ( সত্যবাদী-মিথ্যা ) যে ব্যক্তি কম্পিউটারের জন্য সবচেয়ে ছোট জিনিসটি করে সে সবচেয়ে ভাল। প্রতিটি ব্যক্তি যে জিনিসগুলি খারাপ তা জেনে রাখে সেগুলি খারাপ। ( মান ফাঁকগুলি প্রয়োগ করা হয় )


কম্পিউটার জিনিসটি কীভাবে কাজ করে তা জানতে আরও স্টাফ:

  • শব্দগুলি বড় বা সামান্য হলেও কিছু আসে যায় না।

  • যে শব্দগুলি শব্দের অর্থ জানার জন্য আরও সহজ করে তোলে (বিরামচিহ্ন) তাতে কিছু আসে যায় না। সুতরাং যে ব্যক্তি কম্পিউটার জিনিসটি ব্যবহার করে সে যদি "ডন্ট" না বলে তবে এটি "না" শব্দের চেয়ে আলাদা শব্দ নয়। নম্বর এবং অন্যান্য ছবিতেও কিছু যায় আসে না। সুতরাং যদি ব্যক্তি "হি এল এল 9 ই" বলে তবে কম্পিউটারটি "হ্যালো" এর মতো এটি পড়া উচিত

  • শব্দের (ড্যাশ) মধ্যবর্তী ছোট রেখাগুলি ফাঁকা জায়গার মতোই কাজ করে। সুতরাং "আপ-গিয়ার ফাইভ" শব্দটি "আপ গিয়ার ফাইভ" শব্দের মতই।


এভাবে শব্দ তৈরির বিষয়ে জানতে আরও স্টাফ:

https://xkcd.com/1133/

http://splasho.com/upgoer5/#


7
সুতরাং কম্পিউটার শব্দ ব্যবহারকারী ব্যবহারকারীর শব্দগুলি বড় শব্দ জিনিসটির জন্য দেখুন ছোট শব্দ জিনিসটিতে সমস্ত শব্দ বড় শব্দ জিনিসটিতে আছে কিনা তা দেখতে?
জিওবিটস

24
সম্ভবত এটি কেবল আমিই, তবে এটি পড়তে আমার খুব ব্যতিক্রম হয়েছিল।
অ্যালেক্স এ।

8
সাধারণ-আলাপে একটি সংজ্ঞা দেওয়া আরও ভাল হতে পারে, তার পরে "আসল" ইংরাজীতে একটি আসল অনুমান দেওয়া যায়।
জিওবিটস

2
অভিধানটি কি কোনও ফাইল থেকে পড়তে হবে? এটি সম্পূর্ণরূপে কয়েকটি ভাষা বাদ দিতে পারে।
ডেনিস

1
প্রোগ্রামটিতে ব্যবহার করা প্রতিটি শব্দের জন্য আপনার কাছে শাস্তি হওয়া উচিত ছিল
বিটা ডেকে

উত্তর:


6

সিজেম, 41 বাইট

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

এটি most used.txtরুট ডিরেক্টরিতে বরং বরং অশুচি ধারণা তৈরি করে , যেহেতু সিজেম আপেক্ষিক পাথ পরিচালনা করতে পারে না।

বিকল্পভাবে, আমাদের নিম্নলিখিত ওয়েব-ভিত্তিক সমাধান (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 <(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
এটি সংক্ষিপ্ত করতে আপনি ড্রাইভ ইউআরএলটিতে
টিনিয়রল

1
@ এমআইরাইট এটি আবিষ্কার করেছেন। এটি এবং পাস্তবিনে ফাইল আপলোড করা 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% নিশ্চিত নই, তবে আমি কল্পনা করেছি আপনি ফাইলের প্রতিটি শব্দে এটি বিভক্ত করার চেষ্টা করছেন?
ডেডচেক্স

@ ডেডচেक्स সরবরাহিত পাঠ্য ফাইলটি কী দ্বারা পৃথক করা হয়? আমি এটি অ্যাক্সেস করতে পারছি না কারণ এটি কোনও এসএসএল ত্রুটি ছুঁড়ে দেয়।
বিটা ক্ষয়

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⌶ lowercased
' '( নিম্নলিখিত ফাংশন ফলাফলের ... বাম আর্গুমেন্ট হিসাবে একটি স্পেস দিয়ে,
1↓¨ প্রতিটি থেকে এক ড্রপ
, আর্গুমেন্ট সংযুক্তকরণের
⊂⍨ প্রতিটি উপাদান যেখানে আগে কাটা
 বাম যুক্তি
= সমান
, আর্গুমেন্ট সংযুক্তকরণের
) প্রয়োগ
'[- ]' '\W'⎕R' ' '' PCRE প্রতিস্থাপন ড্যাশ / স্পেস → স্পেস, অ-শব্দ-চর char কিছুই

∧/() এটি কি
s সর্বদাই সত্য যে নরমালাইজড এবং স্প্লিট
 টেক্সট ইনপুট হ'ল  ফাইলের (বিষয়বস্তু, এনকোডিং, নিউলাইন-স্টাইল) এর  স্বাভাবিকিকৃত এবং বিভক্ত  প্রথম উপাদানটির
 সদস্য are
s

⎕NGET'most used.txt'


0

জাভাস্ক্রিপ্ট (ES7), 161 বাইট

(প্রশ্নটি ES7 স্পেসের প্রাক-তারিখ হিসাবে প্রতিযোগী নয়)

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
তিতাস

আপনি কি বিস্তারিত বলতে পারবেন, @ টিটাস? এর প্রতিটি পদক্ষেপ একটি প্রতিশ্রুতি দেয় যাতে thenসেগুলির সমাধান হওয়ার পরে পরবর্তী কোডগুলি কার্যকর করা প্রয়োজন।
শেগি

আমি ES7 এর সাথে পরিচিত নই; ভুল দিকে ভাবছিল। তবে আপনি যদি তালিকায় না রেখে সমস্ত শব্দের ইনপুট কমিয়ে দেন তবে আপনি সংক্ষিপ্ত কিছু নিয়ে আসতে পারেন? আমি সন্দেহ করি যে পিএইচপি সত্যিই প্রায় 40% জেএসকে পরাজিত করতে পারে।
তিতাস

ওহ, হ্যাঁ, অবশ্যই সেখানে উন্নতির জন্য জায়গা আছে; এটি আমার দিনের শেষ চ্যালেঞ্জ ছিল এবং আমার মস্তিষ্কে ব্যথা ছিল তাই আমি আগামীকাল পুনর্বিবেচনার জন্য আমার এতদূর যা ছিল তা পোস্ট করেছিলাম। দুর্ভাগ্যক্রমে, কেবলমাত্র ফাইলের বিষয়বস্তু পেতে প্রয়োজনীয় প্রতিশ্রুতি জেএসকে পিএইচপি-র পছন্দগুলির বিরুদ্ধে এই চ্যালেঞ্জগুলির একটি অসুবিধে ফেলেছে তবে এটি এক্সএইচআর ব্যবহারের বিকল্পের চেয়ে আরও ভাল।
শেগি

0

পিএইচপি, 101 বাইট

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

stdin থেকে ইনপুট নেয়, একক লাইন অভিধান অনুমান
সঙ্গে প্রস্থানের 1falsy জন্য (ত্রুটি), 0(OK) truthy জন্য। সাথে চালাও -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);
}

আপনার কী বোঝাতে চাইছেন যা প্রয়োজন তা আমদানি করা আপনার উপর নির্ভর করে ?
বিটা ক্ষয়

@ বেটা আমি জাভার কয়েকটি ইউটিলিটি ক্লাস ব্যবহার করেছি যে, আপনি যদি কোনও প্রোগ্রামে এই ফাংশনটি রাখেন তবে আপনাকে অনেকগুলি অজগর আমদানির java.io.*java.util.*
বিবরণটির

3
আচ্ছা আপনাকে এই বায়োগুলির গণনায় এই আমদানিগুলি অন্তর্ভুক্ত করতে হবে। পাইথনে আপনাকে আমদানি বিবৃতিগুলি বাদ দিতে দেওয়া হয় না, তাই আপনি এগুলিকে জাভাতে বাদ দিতে পারবেন না
বিটা ডেকে

@ বেটাডেকে প্রোগ্রামটিকে টুইট করেছেন, আর আমদানির দরকার নেই
ডেইড শেক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.