অপরিবর্তিত আচরণ আমার বিড়ালকে হত্যা করেছে [বন্ধ]


82

অপরিবর্তিত আচরণ আমার বিড়ালকে হত্যা করেছে

এটি সুপরিচিত যে অপরিজ্ঞাত আচরণ আপনার বিড়ালকে [উদ্ধৃতি দেওয়ার প্রয়োজন] হত্যা করতে পারে ।
তবে কি পারবে?

তোমার কাজ

  1. এমন একটি প্রোগ্রাম লিখুন যা অনির্ধারিত আচরণকে আহ্বান করে।
  2. উপরোক্ত প্রোগ্রামটি চালু হওয়ার সাথে সাথে শুরু হওয়া একটি দৃশ্যের বর্ণনা দিন, ফলস ক্যাটাসটি আপনার মালিকানাধীন থাকাকালীন তার জীবন শেষ করবে, উল্লিখিত ইউবির ফলাফল হিসাবে?
  3. দৃশ্যে প্রতিটি পর্যায়ে সম্ভাবনার অনুমান করুন।
  4. প্রোগ্রামটির একক রান আপনার বিড়ালটিকে মেরে ফেলবে এমন মোট সম্ভাবনার গণনা করুন।

বিধি

  1. এটি একটি , তাই আপনি যদি পারেন তবে সৃজনশীল হন।
  2. এটি একটি প্রোগ্রামিং সম্পর্কিত চ্যালেঞ্জ, সুতরাং ইভেন্টের চেইনটি বেশিরভাগ কম্পিউটারের মধ্যেই হওয়া উচিত, বাস্তব জগতে নয় (অবশ্যই, যদি আপনার বিড়ালটি সেখানে থাকে তবে সত্যিকারের বিশ্বে পৌঁছাতে হবে)।
  3. আপনি যদি এমন ভাষা চয়ন করেন যার অনির্ধারিত আচরণ নেই, তবে অনুরূপ কিছু ব্যবহার করুন।
  4. আপনার উত্তর তৈরিতে কোনও প্রাণী ক্ষতিগ্রস্থ হতে পারে না।

স্কোরিং

ভোট গণনা সহ দৃশ্যের মোট সম্ভাব্যতা (যা 1 এর বেশি হতে পারে না)।

সি উদাহরণ:

main(){printf();}

দৃশ্যপট:

  1. printfস্ট্যাক থেকে আবর্জনা দিয়ে ডাকা - অপরিজ্ঞাত আচরণ। সম্ভাব্যতা: 100%।
  2. প্রথম প্যারামিটারটি স্ট্রিং হতে পারে Your cat is ugly!। সম্ভাব্যতা: (1/256) 17 = (1.148 * 10 -37 )%।
  3. বার্তাটি দেখে, আপনি আপনার বন্দুক তুলে আপনার বিড়ালটিকে গুলি করলেন। সম্ভাবনা: 3%।
  4. বিড়াল মারা যায়। সম্ভাবনা: 93%।

মোট সম্ভাবনা: (3.202 * 10 -39 )%।


50
1) অপরিবর্তিত আচরণ বাতিল করুন 2) আপনি অপরিজ্ঞাত আচরণের ডাক দিতে পারেন এবং দীর্ঘ, সুখী জীবনযাপন করতে পারেন এমন নিছক সত্য দ্বারা অনুপ্রাণিত হন 3) বিড়াল বৃদ্ধ বয়সে মারা যায়। মোট সম্ভাবনা: 100%
জিওবিটস

5
@ ওবারন আমি এতক্ষণ প্রোগ্রামিংয়ের পরে ইউবি তৈরির একক উপায় নিয়ে না আসতে পারলে নিজেকে মেরে ফেলতাম । তাহলে বিড়ালটি আর আমার দখলে থাকবে না। ইউবি চালনা আমাকে বাঁচিয়ে রাখে, যাতে "... আপনার মালিকানাধীন অবস্থায় তার জীবন শেষ হয়ে যায় , ফলস্বরূপ ..."। দ্ব্যর্থহীন পার্সিং এফটিডব্লিউ।
জিওবিটস

8
যদি কেউ এই catআদেশটি বা এই জাতীয় কিছুটিকে মেরে ফেলার জন্য এটি পুনরায় ব্যাখ্যা করে তবে আমি আরও আনন্দিত হব ।
কেশলাম

5
-1 আমি বিড়াল ভালবাসি। বিড়াল কেন? কীটিনিগ সিঁদুর হয় না কেন?
ভিএক্স

22
যদি কোনও বিড়াল খাওয়া হয় তবে পাইথন একটি সমাধান।
নিকোলাস বারবুলেসকো

উত্তর:


113

সি

এই প্রশ্নের বেশিরভাগ উত্তর প্রশ্নটির ভুল ব্যাখ্যা করেছিল যে এটি catএকটি ইউএনআইএক্স সিস্টেমে প্রক্রিয়াটিকে হত্যা করছে । এখানে এমন একটি প্রোগ্রাম রয়েছে যা প্রশ্ন দ্বারা সুনির্দিষ্টভাবে বর্ণিত প্রজাতি ফেলিস ক্যাটাসের জৈবিক জীবনরূপের মৃত্যুর কারণ হতে পারে।

এই উদাহরণটি উইন্ডোজে চলে তবে এটিকে iexplore -kইনস্টল করা ওয়েব ব্রাউজার চালু করার কমান্ডের পরিবর্তে বেশিরভাগ ইউএনআইএক্স অপারেটিং সিস্টেমে পোর্ট করা যায় ।

#include <stdlib.h>
#include <stdio.h>    

int main() {
    char i; // uninitialised
    printf("Redirecting you to a website which will inform you how to properly feed your cat.");
    if (i != 42) {
         system("iexplore -k https://pets.stackexchange.com/questions/tagged/cats+diet");
    } else {
         system("iexplore -k https://cooking.stackexchange.com/questions/tagged/chocolate");
    }
    return 0;
}

এই প্রোগ্রামটি ব্যবহারকারীকে বিড়ালের ডায়েট সম্পর্কে পরামর্শ দেওয়ার ভান করে।

এটি ইন্টারনেট এক্সপ্লোরার শুরু করবে এবং কীভাবে বিড়ালদের খাওয়ানো যায় সে সম্পর্কে প্রচুর সহায়ক প্রশ্নগুলির তালিকা ব্যবহারকারীদের পোষা প্রাণীকে স্ট্যাকেক্সচেঞ্জের দিকে পরিচালিত করবে । তবে নেই, একটি কম (1/256) সুযোগ এটি ব্যবহারকারীর পাঠাব stackexchange রান্না পরিবর্তে তালিকা টিপস কিভাবে চকলেট, ধারণকারী খাবারের প্রস্তুতির যা অত্যন্ত বিষাক্ত বিড়ালদের । বিষয়টিকে আরও খারাপ করার জন্য, এটি কিওস্ক মোডে (পূর্ণস্ক্রিন) ইন্টারনেট এক্সপ্লোরার চালু করবে, যা অ্যাড্রেস বারটি গোপন করে এবং অ-প্রযুক্তি-সচেতন ব্যবহারকারীর হাত থেকে বাঁচা শক্ত।

এই চতুর ব্যবহারের ফলে ব্যবহারকারীরা তাদের বিড়াল চকোলেটকে খাওয়ানোর ক্ষেত্রে কোक्स করে যাবেন এটি বিশ্বাস করে যে এটি এটির জন্য উপযুক্ত ডায়েট, ফলে তারা অবিচ্ছিন্নভাবে এটি মেরে ফেলবে।


3
অসীর চেয়ে মসী বড়! :)
পিটার উইটভোয়েট

12
এটি এখনও অবধি একমাত্র সমাধানের মতো দেখা যাচ্ছে যাতে আসলে একটি বিড়ালকে হত্যার কোনও বাস্তব সম্ভাবনা রয়েছে। আমি উত্সাহ দিতে বাধ্য, যদিও আমি আন্তরিকভাবে আশা করি যে বাস্তবে কেউ এটিকে বাস্তবে প্রয়োগ করে না।
চার্লস স্ট্যাটস

43
ইন্টারনেট এক্সপ্লোরার নিজেই আপনার বিড়ালটিকে হত্যা করতে পারে।
মাইকেল হ্যাম্পটন 20

4
সম্ভাবনা বিশ্লেষণ (উদাহরণস্বরূপ) দিয়ে আপনি কী ধাপে ধাপে দৃশ্যের যোগসূত্রটি যুক্ত করতে পারেন? যেমনটি, এটি কোনও বৈধ উত্তর নয়।
উগোরেন

3
ইন্টারনেট এক্সপ্লোরার ব্যবহার এমইতে অপরিবর্তিত আচরণকে প্ররোচিত করে। - দুঃখিত, এটা বলতে হবে।
২৩:৪২

88

সজোরে আঘাত

এই অনুযায়ী , INT_MIN % -1বা অনির্ধারিত পারে না (কি ???) , এবং তাই C / C ++ বাস্তবায়িত কোনো ভাষার জন্য কষ্ট হতে পারে।

#!/bin/bash

cat <<< $((2**63%-1))

catগোড়ার দিকে নিহত করা হবে যদি পিতা বা মাতা bashপ্রক্রিয়া, ক্র্যাশ যা বা ঘটতে পারে আবার নাও পারে।

আমার ভিএম-তে আমি এই আউটপুটটি পাই:

$ ./schroedinger.sh
./schroedinger.sh: line 3:  7805 Floating point exception(core dumped) cat <<< $((2**63/-1))
$ 

(আমি সত্যিই এই প্রশ্নের স্কোরিং বুঝতে পারি না, তবে এখানে যাই হোক)

গণনা $((2**63%-1))। ক্রাশ সর্বদা ব্যাশ ৪.২.২৫ এ ঘটে থাকে, তবে মনে হয় কেবল কিছু 3.x সংস্করণ রয়েছে। আরও অনিশ্চয়তা। আমি আপনাকে সঠিক সম্ভাবনাটি বলতে পারি, তবে হাইজেনবার্গের অনিশ্চয়তার নীতির কারণে আমি তখন একটি ব্ল্যাকহোলের নীচে নেমে যাব। অথবা অন্যকিছু. সুতরাং আমি মনে করি আমরা নিরাপদে বলতে পারি যে তাদের সম্ভাবনা প্রায় 42%।


4
@ ক্লিংটটনেট: এটি "এখানে স্ট্রিংস" নামে পরিচিত - এটি অনেক বেশি গুগলযোগ্য ... এটির শর্টকাটecho $((-2**63/-1)) | cat
ভিএক্স

14
রিয়েল ব্যবহারের জন্য +1 cat
অ্যালভিন ওয়াং

1
@মারদাভি INT_MAX = 2^63 - 1। যদি আমরা 1 টি যোগ করি তবে INT_MAXbit৪ বিট নম্বর স্থানটি চারপাশে মোড়ানো হয় এবং আমরা পাই INT_MIN। অন্য কথায় স্বাক্ষরিত 64 বিট পূর্ণসংখ্যার গাণিতিক 2^63 == -2^63,। আমি ব্যবহার করতে পারতাম -2**63, তবে ছাড়াই নিষ্ঠুরতা পছন্দ করতাম -, যেহেতু এই ক্ষেত্রে মডুলার গাণিতিক একই রকম।
ডিজিটাল ট্রমা


1
সম্ভাবনা বিশ্লেষণ (উদাহরণস্বরূপ) দিয়ে আপনি কী ধাপে ধাপে দৃশ্যের যোগসূত্রটি যুক্ত করতে পারেন? যেমনটি, এটি কোনও বৈধ উত্তর নয়।
উগোরেন

40

সি (ক্রম বিন্দু)

deadcat.c:

#include <stdio.h>
int main()
{
    int i=3;
    int k=0;
    k=i+(++i);
    if (k==7)
        printf("The cat is fine. k=i+(++i) =%d\n",k);
    else
        printf("Urgent Notice: Your cat has rabies. k=i+(++i) =%d\n",k);
}

কার্যকর (বা না):

$ clang -w deadcat.c -o deadcat; ./deadcat
The cat is fine. k=i+(++i) =7
$ gcc deadcat.c -o deadcat; ./deadcat
Urgent Notice: Your cat has rabies. k=i+(++i) =8

পরিস্থিতি এবং সম্ভাবনা

ধরে নিই যে এই প্রোগ্রামটি চালাচ্ছেন এমন পাঁচ শতাংশ লোক সি কোড সংকলনের জন্য ঝাঁকুনি ব্যবহার করেন (জিসিসি ব্যবহার করে 90 শতাংশের বিপরীতে এবং অন্যান্য সি সংকলক ব্যবহার করে 5 শতাংশ):

"বিড়াল ঠিক আছে" পাওয়ার সম্ভাবনা। = .050
 "জরুরী বিজ্ঞপ্তি: আপনার বিড়ালের জলাতঙ্ক আছে" পাওয়ার সম্ভাবনা। = .950

 "আপনার বিড়ালের জলাতঙ্ক আছে" এর প্রতিক্রিয়া হওয়ার সম্ভাবনা এটি নিচে রেখে = .040
 নোটিশটি উপেক্ষা করার সম্ভাবনা = .900
 চিকিত্সার জন্য বিড়ালটিকে পশুচিকিত্সায় নিয়ে যাওয়ার সম্ভাবনা = ।060

 বিড়ালদের বেঁচে থাকার মোট সম্ভাবনা: .05 + .95 * (.90 + .06) = .962
 বিড়াল মারা যাওয়ার মোট সম্ভাবনা: .95 * .04 = .038
 চেক করুন: বিড়ালের বাঁচার বা মারা যাওয়ার মোট সম্ভাবনা: = 1.000

ব্যাখ্যা:

k = i + (++ i) অ্যাক্সেস করে এবং সিকোয়েন্স পয়েন্টগুলির মধ্যে "i" পরিবর্তন করে। সম্ভাবনাটি প্রোগ্রাম দ্বারা নির্ধারিত হয় না; এটি সংকলক নির্বাচনের উপর নির্ভর করে যা ব্যবহারকারীর দ্বারা তৈরি। "অপরিবর্তিত" এর অর্থ অগত্যা "এলোমেলো" নয়।

Https://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-pPoint দেখুন


4
বিভিন্ন সংকলক সহ আচরণ প্রদর্শনের জন্য +1 1
ntoskrnl

1
অপ্টিমাইজেশনের
রাচেট ফ্রিক

1
@ র্যাচেট ফ্রিক: হ্যাঁ, তবে আমি এই বিশেষ সমস্যাটি নিয়ে তা প্রদর্শন করতে পারিনি। আমি gcc-4.2.3 থেকে gcc-4.8.2 এবং সানোস-এর সিসি-5.0 পর্যন্ত বিভিন্ন gcc সংস্করণে -O0, -O1, -O2, এবং -O3 চেষ্টা করেছি, তবে যারা বিড়ালটিকে হত্যা করেছিল তারা সকলেই।
গ্লেন র্যান্ডার্স-পেহারসন

2
সম্ভাবনা বিশ্লেষণ (উদাহরণস্বরূপ) দিয়ে আপনি কী ধাপে ধাপে দৃশ্যের যোগসূত্রটি যুক্ত করতে পারেন? যেমনটি, এটি কোনও বৈধ উত্তর নয়।
উগোরেন

1
আমি ধরে নিয়েছিলাম যে সমস্ত বিড়ালকে চিকিত্সার জন্য পশুচিকিত্সায় নিয়ে যাওয়া হয়েছিল তারা বেঁচে থাকবে। সম্ভবত তাদের মধ্যে কিছু সংক্রামক কৃপণ রোগ ধরা পড়ে বা ভেটেরিনারি অপব্যবস্থায় মারা যাবে। এটি চূড়ান্ত সম্ভাবনাগুলি একটু বদলে দিতে পারে, .96 / .04
গ্লেন র্যান্ডার্স-পেহারসন

37

সি

গল্পের

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

আমরা একটি বর্ধিত ছুটিতে যাচ্ছিলাম, কিন্তু সে পশুচিকিত্সকের অফিসে বিড়ালটিতে চড়াতে চায় নি। তিনি অসুস্থতার সংক্রমণ বা খারাপ আচরণের বিষয়ে উদ্বিগ্ন ছিলেন। আমি একটি স্বয়ংক্রিয় বিড়াল ফিডার তৈরি করেছি যাতে আমরা এটি বাড়িতে রেখে যেতে পারি। আমি সি তে মাইক্রোকন্ট্রোলারের ফার্মওয়্যারটি লিখেছিলাম ফাইলটি mainনীচের কোডের মতো দেখাচ্ছে।

তবে, আমার স্ত্রীও একজন প্রোগ্রামার এবং বিড়ালের প্রতি আমার অনুভূতিগুলি জানতেন, তাই তিনি এটিকে ঘরে বসে ছাড়তে সম্মত হওয়ার আগে একটি কোড-রিভিউয়ের উপর জোর দিয়েছিলেন। তার বেশ কয়েকটি উদ্বেগ ছিল, সহ:

  • main একটি মান সম্মত স্বাক্ষর নেই (একটি হোস্টেড বাস্তবায়নের জন্য)
  • main একটি মান দেয় না
  • tempTmmallocপরিবর্তে ডাকা হয়েছিল বলে অবিরাম ব্যবহার করা হয়calloc
  • এর রিটার্ন মান malloccastালাই করা উচিত নয়
  • মাইক্রোকন্ট্রোলারের সময়টি ভুল হতে পারে বা গড়িয়ে যেতে পারে (ওয়াই 2 কে বা ইউনিক্স সময় 2038 সমস্যার মতো)
  • elapsedTimeপরিবর্তনশীল যথেষ্ট পরিসর নাও থাকতে পারে

এটি অনেক দৃinc়প্রত্যয়মূলক লেগেছিল, কিন্তু শেষ পর্যন্ত তিনি সম্মত হন যে এগুলি বিভিন্ন কারণে সমস্যা ছিল না (এটি আমাদের কোনও দুর্ঘটনা দেয় নি যে আমরা আমাদের বিমানের জন্য ইতিমধ্যে দেরি করেছিলাম)। সরাসরি পরীক্ষার জন্য সময় না থাকায় তিনি কোডটি অনুমোদন করলেন এবং আমরা ছুটিতে গেলাম। যখন আমরা কয়েক সপ্তাহ পরে ফিরে এসেছি , তখন আমার বিড়ালের দুর্দশা শেষ হয়ে গেছে (যদিও এর ফলে আমি এখন আরও অনেক কিছু পেয়েছি)।

Tire পুরোপুরি কল্পিত দৃশ্য, কোনও উদ্বেগ নেই।


কোড

#include <time.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>

//#include "feedcat.h"
// contains extern void FeedCat(struct tm *);
// implemented in feedcat.c
// stub included here for demonstration only
#include <stdio.h>
// passed by pointer to avoid putting large structure on stack (which is very limited)
void FeedCat(struct tm *amPm)
{
    if(amPm->tm_hour >= 12)
        printf("Feeding cat dinner portion\n");
    else
        printf("Feeding cat breakfast portion\n");
}

// fallback value calculated based on MCU clock rate and average CPI
const uintmax_t FALLBACK_COUNTER_LIMIT = UINTMAX_MAX;

int main (void (*irqVector)(void))
{
    // small stack variables
    // seconds since last feed
    int elapsedTime = 0;
    // fallback fail-safe counter
    uintmax_t loopIterationsSinceFeed = 0;
    // last time cat was fed
    time_t lastFeedingTime;
    // current time
    time_t nowTime;

    // large struct on the heap
    // stores converted calendar time to help determine how much food to
    // dispense (morning vs. evening)
    struct tm * tempTm = (struct tm *)malloc(sizeof(struct tm));

    // assume the cat hasn't been fed for a long time (in case, for instance,
    // the feeder lost power), so make sure it's fed the first time through
    lastFeedingTime = (size_t)(-1);

    while(1)
    {
        // increment fallback counter to protect in case of time loss
        // or other anomaly
        loopIterationsSinceFeed++;

        // get current time, write into to nowTime 
        time(&nowTime);

        // calculate time since last feeding
        elapsedTime = (int)difftime(nowTime, lastFeedingTime);

        // get calendar time, write into tempTm since localtime uses an
        // internal static variable
        memcpy(&tempTm, localtime(&nowTime), sizeof(struct tm));

        // feed the cat if 12 hours have elapsed or if our fallback
        // counter reaches the limit
        if(  elapsedTime >= 12*60*60 || 
             loopIterationsSinceFeed >= FALLBACK_COUNTER_LIMIT)
        {
            // dispense food
            FeedCat(tempTm);

            // update last feeding time
            time(&lastFeedingTime);

            // reset fallback counter
            loopIterationsSinceFeed = 0;
        }
    }
}

অপরিবর্তিত আচরণ:

যাঁরা নিজেরাই ইউবি অনুসন্ধান করতে বিরত হন না তাদের জন্য:

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

struct tm * tempTm //... //... memcpy(&tempTm, localtime(&nowTime), sizeof(struct tm));
memcpyওভাররাইট করে tempTM। এই মুছে ফেলা, অন্যান্য বিষয়ের ছাড়াও, elapsedTimeএবং loopIterationsSinceFeed। মানগুলি মুদ্রিত করে এখানে একটি উদাহরণ রান করুন:

pre-smash : elapsedTime=1394210441 loopIterationsSinceFeed=1 post-smash : elapsedTime=65 loopIterationsSinceFeed=0


বিড়ালটিকে হত্যার সম্ভাবনা:

  • সীমাবদ্ধ কার্যকর কার্যকর পরিবেশ এবং বিল্ড চেইন দেওয়া, অপরিবর্তিত আচরণ সর্বদা ঘটে।
  • একইভাবে, অপরিবর্তিত আচরণ সর্বদা বিড়াল ফিডারকে ইচ্ছাকৃতভাবে কাজ করতে বাধা দেয় (বা বরং এটি "কাজ করতে" উদ্দেশ্য হিসাবে অনুমতি দেয়)।
  • যদি ফিডার কাজ না করে তবে সম্ভবত বিড়াল মারা যাবে die এটি এমন কোনও বিড়াল নয় যা নিজের জন্য বাধা দিতে পারে এবং আমি প্রতিবেশীকে এটি সন্ধান করতে বলিনি।

আমি অনুমান করি যে বিড়ালটি সম্ভাব্যতার সাথে মারা যায় 0.995


এটি &মেমপিটিতে প্রথম (প্রথম) , তাই না?
স্কোর_উন্ডার

@ স্কোর_উন্ডার হ্যাঁ, আমি উত্তরটি একটু সম্পাদনা করি। আমি অপরিবর্তিত আচরণের ব্যবহারের অন্যান্য উপায়ে খেলা করেছি, তবে বেশিরভাগই আরও স্পষ্ট ছিল।
জেরি

1
একটি বিড়াল হত্যার জন্য +1, না cat
কেভিন

31

সজোরে আঘাত

ক্লাসিক সংস্করণ

cat & # This is your cat.
pkill -$RANDOM cat

এর বিস্তৃত সমস্ত বিড়ালকে হত্যা করার সুবিধা রয়েছে ।

নোট করুন যে প্রক্রিয়াটি অবিলম্বে বন্ধ হয়ে গেছে, সুতরাং পিকেলের একক অনুরোধের মাধ্যমে এটি শেষ করার একমাত্র উপায় হ'ল সিগ্কিল (9) প্রেরণ।

অতএব:

p(SUCCESS) = p(RANDOM == 9) = 0.0275 %


কোয়ান্টাম সংস্করণ

schroedinger=/dev/null             # We'll need this guy.
heisenberg=/dev/urandom            # Also needed, for uncertainty principle.
cat $heisenberg > $schroedinger &  # Steal cat from Heisenberg and give it to Schrödinger.
felix=$!                           # Name cat for future references.
exec 2> $schroedinger              # Send all results to Schrödinger.
kill -SIGSTOP $felix               # Catch Felix and put him into a box.
if (($RANDOM & 1))                 # Flip a coin.
then kill $felix                   # Heads: Kill! Kill! Kill!
fi                                 # By now, Felix can be thought of as both alive and dead.
read -sn 1                         # Wait for somebody to open the box.
kill -SIGCONT $felix               # Let him open it.
if ps p $felix > $schroedinger     # Let Schrödinger check on Felix.
then echo The cat is alive.        # Hooray for tails!
else echo The cat is dead.         # At least, now we know.
fi                                 # This concludes the experiment.
kill -SIGKILL $felix               # Felix is no longer required.

পরীক্ষার সময় বিড়ালটিকে হত্যা করার সম্ভাবনা: 50%


+1 তবে এটি মনে করি তার চেয়ে বেশি সম্ভাবনা। সাইন ইন (2), সিগ্বুইট (3), সিগব্র্যাট (6), সিগপাইপ (13) এবং সাইনটারম (15) কমপক্ষে, এটি এখানে হত্যা করে।
l0b0

@ l0b0: কমপক্ষে অবিলম্বে তা হয় না। cat &টার্মিনাল থেকে পড়ার চেষ্টা করে, কিন্তু পারে না। আপনি সিগন্যাল (18) পরে প্রেরণ করলে আপনি উল্লিখিত সংকেতগুলির মধ্যে (এবং আরও কয়েকটি) কাজ করবে। এছাড়াও, সে ব্যাপারে আমি সম্মত ঝুলন্ত আপ এবং সসীম বিড়াল হিসাবে একই হবে প্রাণনাশ এটা কিন্তু বিঘ্নিত এটা সন্তোষজনক বলে মনে হচ্ছে না ...: পি
ডেনিস

3
অবর্ণিত আচরণ করা হয়েছে একটি ভাষা এর একটি বৈশিষ্ট্য ব্যবহার করছে নিদিষ্ট যেমন অনির্ধারিত । এটি হ'ল, ভাষা ডিজাইনাররা বাস্তবায়নকে আরও সহজ করার জন্য, বা কোনও বৈধ প্রোগ্রামে কখনই নির্মাণটি ব্যবহার করা উচিত নয় তা বোঝাতে কয়েকটি সিনট্যাক্টিকাল নির্মাণের আচরণকে উদ্দেশ্যমূলকভাবে রেখে গেছেন । অপরিবর্তিত আচরণের সাধারণত এলোমেলো সংখ্যা জেনারেশনের কোনও সম্পর্ক নেই এবং এখানে কোনও অপরিজ্ঞাত আচরণ ব্যবহার করা হচ্ছে না।
ওরেগন ট্রেইল

@ অরেগনট্রেইল: বিধিগুলি বলেছে যে আপনি যদি এমন ভাষা চয়ন করেন যার অনির্ধারিত আচরণ নেই, তবে অনুরূপ কিছু ব্যবহার করুন। বাশের অপরিজ্ঞাত আচরণ নেই, তাই আমি এলোমেলো সংখ্যা ব্যবহার করেছি।
ডেনিস

3
বাশের পরিবেশে প্রচুর অপরিজ্ঞাত আচরণ রয়েছে যা ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, @ ডিজিটালট্রামা বাশের প্রিন্টফের উত্তরগুলি সিস্টেমের প্রিন্টফ ব্যবহার করে যার প্রচুর অপরিজ্ঞাত আচরণ রয়েছে।
ওরেগন ট্রেইল

17

সি

মনে রাখবেন এটি কেবল লিনাক্সে কাজ করে।

main() {
  FILE *f = fopen("skynet", "w");
  srand(time(0));
  while(rand() != rand())
    fputc(rand()%256, f);
  fclose(f);
  system("chmod +x skynet");
  system("./skynet");
}
  1. একটি ফাইলে এলোমেলো ডেটা লিখুন এবং এটিকে আবেদন করুন (100%)
  2. র্যান্ডম ডেটা স্কাইনেটের উত্স কোড হিসাবে দেখা যায় (1x10 ^ -99999999999999999999999999999999999999999999999999999999999999, এপ্রোক্স x)
  3. কিয়ামতের দিন বিড়াল মারা যায় (99.999%)

মোট সম্ভাব্যতা: 1x10 99 -9999999999999999999999999999999999999999999999999999999999999999999999, এপ্রোক্স।


হুঁ মম, স্কাইনেট কী?
সার্জে বোর্স

20
অপরিবর্তিত আচরণ কোথায়?
ugoren

@ সার্জেবার্শ: এন.ইউইকিপিডিয়া.রোগ / উইকি / স্কিনেট_
টারমিনেটর

1
@ugoren আমি মনে করি এলোমেলো বিষয়বস্তু সহ একটি ফাইল চালানো সত্যই সংজ্ঞায়িত হয়নি।
11684

2
@ ১১68৮৪, যদি লিখিত সামগ্রীগুলি স্কাইনেটের কোড হয়ে থাকে, একজন স্কিনেটের প্রোগ্রামাররা জানেন যে তারা কী করছে, কোনও অপরিবর্তিত আচরণ নেই।
ugoren

15

সি ++

আপনার কৌতূহলী না হওয়া অবধি আপনার বিড়ালটি মৃত এবং জীবিত উভয়ই। তারপরে আপনি বুঝতে পারবেন যে আপনার বিড়ালটি মারা গেছে এমন একটি 0.5 সম্ভাবনা রয়েছে।

#ifdef WIN32
#pragma warning(disable: 4700)
#endif
#include <random>
#include <iostream>
#include <vector>
#include <climits>
#include <memory>
class Cat
{
public:
    enum class State {DEAD, ALIVE};
    Cat()
    {
        int x; // Uninitialized Variable on Stack
        if (x % 2 == 0) // Is the Uninitialized Variable even? 50-50
        {
            m_dead = State::DEAD;

        }
        else
        {
            m_dead = State::ALIVE;
        }
    };
    operator State() //Check if your Cat is Dead / Alive
    {
        if (m_dead == State::DEAD)
        {
            delete this; //Boom Cat is dead
            std::cout<<"Your Curiosity killed your Cat"<<std::endl;
            return false;
        }
        return m_dead;
    }
private:
    State m_dead;
};

class Schrödinger
{
public:
    Schrödinger(size_t size):m_size(size)
    {
        for(size_t i = 0; i < size; i++)
        {
            cats.push_back(new Cat());
        }
    }
    ~Schrödinger()
    {
    }
    void Curiosity()
    {
        std::default_random_engine generator;
        std::uniform_int_distribution<int> distribution(0,m_size);
        if(*cats[distribution(generator)] == Cat::State::ALIVE)
        {
            std::cout<<"You Cat is alive and still kicking" <<std::endl;
        }
    }
private:
    std::vector<Cat *> cats;
    size_t m_size;
};
int main()
{
    int size;    
    std::cout<<"How Big is Your Example Space ?";
    std::cin>>size;
    Schrödinger your(size);
    your.Curiosity();
    return 0;

}

আপনি কি this->m_deadপরে অ্যাক্সেস করতে পারেন delete this?
ব্রায়ান চেন

@ ব্রায়ানচেন: একটি রিটার্ন অনুপস্থিত ছিল। এটি দেখানোর জন্য আপনাকে ধন্যবাদ :-)
অভিজিৎ

öC ++ এ কোনও বৈধ প্রতীক বলে মনে হচ্ছে না। সঙ্গে এটি প্রতিস্থাপন oe
রুসলান

13

সি

লিনাক্সে চলে।

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void f(char x) {
    if(sleep(1)==x) system("killall cat");
}
int main() {
    char x; // uninitialised
    system("cat /dev/urandom &");
    f(x);
    return 0;
}

বিড়ালটিকে হত্যার সম্ভাবনা: ১/২6 The ( sleep(1)রিটার্ন ০, সুতরাং xশূন্য হলে এটি মারা যাবে ))

বোনাস হিসাবে এটি বর্তমানে আপনার সিস্টেমে চলমান সমস্ত বিড়ালকে হত্যা করে।


আপনি যদি বিড়ালকে এত ঘৃণা করেন তবে আমি আপনাকে উপস্থাপন করছি:

বিড়াল সেন্টিপিডি (বাশ)

echo "Hello World"|cat|cat|cat

হিউম্যান সেন্টিপিডিতে (ফার্স্ট সিকোয়েন্স) এই কুকুরের সেন্টিপিডির তিনটি কুকুরই মারা গিয়েছিল এবং মানুষের সেন্টিপিডির তিনজনের মধ্যে দু'জন মারা গিয়েছিল এই সত্যের ভিত্তিতে , আমি অনুমান করি যে একটি বিড়াল হত্যার সম্ভাবনা 5/6।


ক্যাট সেন্টিপি সত্যিই মজার
সারেজ বোর্স

বিড়ালটির সেন্টিপিডের "আসল" উত্তর হওয়া উচিত।
ইসমাইল মিগুয়েল

@ ইসমাইল মিগুয়েল আপনি সম্ভবত সঠিক, আমি সি কোডটি সরিয়েছি। প্রথমে এটি একটি রসিকতা হিসাবে বোঝানো হয়েছিল, কিন্তু পরে আমি বুঝতে পেরেছিলাম যে এটির সত্যিকার উত্তর দেওয়ার জন্য আমি এটি পুনঃব্যবহার করতে পারি।
#_HongKongInd dependence

আপনি আপনার সি কোড রাখতে পারেন, আমার কাছে এর বিপরীতে কিছুই নেই এবং ছিল না। আমি ঠিক যদিও উত্তর হিসাবে বাশ সংস্করণটি আরও উপযুক্ত ছিল।
ইসমাইল মিগুয়েল

@ ইসমাইল মিগুয়েল নাহ, যে সি কোডটি যাইহোক বেশ নির্বোধ ছিল
#_HongKongInd dependence

9

জাভাস্ক্রিপ্ট

~"cat".localeCompare("dead")
  ? "Cat is dead"
  : "Cat is fine"

এক্সেকিউশন:

  • ক্রোম: ফলাফলগুলি"Cat is fine"
  • ফায়ারফক্স: ফলাফল"Cat is dead"

ব্যাখ্যা:

15.5.4.9 স্ট্রিং.প্রোটোটাইপ.লোকেলকম্পিয়ার (যে)

দুটি স্ট্রিংকে একটি বাস্তবায়ন-সংজ্ঞায়িত ফ্যাশনে তুলনা করা হয়

গ্লেন রেন্ডার্স-পেহারসনের উদ্ধৃতি দিয়ে, সম্ভাবনাটি প্রোগ্রাম দ্বারা নির্ধারণযোগ্য নয়; এটি ব্রাউজারের পছন্দের উপর নির্ভর করে যা ব্যবহারকারীর দ্বারা তৈরি।


এফএফ-এ পুনরুত্পাদনযোগ্য নয় 27. আপনি কোন সংস্করণে পরীক্ষা করছেন?
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

-1: অপরিজ্ঞাত আচরণ এবং বাস্তবায়ন-সংজ্ঞায়িত আচরণ সম্পূর্ণ আলাদা।
হোয়াইটকার্ক

2
পছন্দ করুন এটি একটি সংজ্ঞায়িত ফলাফল সহ একটি সংজ্ঞায়িত ফাংশন। অদম্য আচরণ।
জর্জ রিথ

1
@ হোয়াইটউয়ার্ক আমি এখানে কোনও সি দেখছি না। যতদূর জাভাস্ক্রিপ্ট সম্পর্কিত , জাভাস্ক্রিপ্টের কি পূর্বনির্ধারিত আচরণ মনে হয়েছে যে বাস্তবায়ন সংজ্ঞায়িত আচরণটি পাসযোগ্য।
জর্জ রিথ

1
পছন্দ করুন একটি শব্দ একটি শব্দ, এটির অর্থ কী তা আমাকে জানাতে আমার কোনও কমিটির দরকার নেই।
জর্জ রিথ

9
int foo() {}

void main() {
    int x = foo();
}

ফাংশনটির একটি মান পড়া অপরিবর্তিত আচরণে একটি মান ফলাফল ফেরত পাওয়ার কথা। এখন, এটি স্পষ্টতই, [উদ্ধৃতি আবশ্যক] যে "আপনি যখনই অপরিজ্ঞাত আচরণে পৌঁছেছেন তখন tyশ্বর একটি কিট্টিকে মেরে ফেলেছেন।" এটি ব্যবহার করে আমরা উপসংহারে পৌঁছেছি:

  • সম্ভাব্যতা আপনি অনির্ধারিত আচরণে পৌঁছেছেন - 100%
  • সম্ভাবনা এটিই আপনার কিটি যা godশ্বর হত্যা করেছে - 1/200 000 000 কেন তা দেখুন
  • সুতরাং সম্ভাবনা 0.0000005%

বিশ্বের সমস্ত বিড়ালকে নির্মূল করার জন্য লুপ দ্বারা সহজেই প্রসারিত করা যায়।


5
আপনার সম্ভাবনা 100 গুণ খুব বেশি (200 এম বিড়াল, 2 এম নয়)।
ugoren

আমি পার্সেন্টস মধ্যে আছে। :)
পেট্র

1
এটি পার্সেন্টে রয়েছে এবং এখনও এটি 100 গুণ বেশি বেশি।
ugoren

আপনি ঠিক বলেছেন, আমি আর সংখ্যা পড়তে পারি না, স্পষ্টতই।
পেট্র

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

5

জাভা (আবর্জনা সংগ্রহ)

যদিও কোড সিস্টেম.gc () কে কল করতে পারে তা নিশ্চিত করে না যে আবর্জনা সংগ্রাহক অব্যবহৃত সমস্ত বস্তু সংগ্রহ করবেন। সুতরাং, নিম্নলিখিত কোডের জন্য, বিড়ালটিকে হত্যা করা হবে কি না তা অনুমানযোগ্য।

public class KillTheCat {
    public static void main(String[] args) throws InterruptedException {
        KillTheCat cat = new KillTheCat();
        cat = null;
        System.gc();
        System.out.println("Cat is still alive.");
    }

    @Override
    protected void finalize() throws Throwable {
        System.out.println("Cat has been killed.");
        System.exit(0);
    }
}

সম্ভাবনা গণনা করা যায় না।

মনে রাখবেন যে সিসআউট পরে এবং সিস্টেম.এক্সিট (0) এর আগে জিসি থ্রেডে একটি প্রসঙ্গ সুইচ উপস্থিত থাকলে বিড়ালটি "পুনর্জীবিত" হওয়ার সম্ভাবনা রয়েছে তবে আমি ধারণাটি সহজ রাখার জন্য এটি আবরণ না করাকে পছন্দ করি।


1
এটা ভাল না। লিখিত হিসাবে এই কোড প্রায় সবসময় উভয় মুদ্রণ করা হবে। লাইনের System.out.close()পরে যুক্ত করা ভাল System.out.println("Cat is still alive.");
durron597

আমি যতদূর বুঝতে পেরেছি, "প্রায় সর্বদা" প্রশ্নের অনির্দেশ্য দিকটির সাথে মেলে।
ব্যবহারকারী3001267

5

সত্যিই কেউ হত্যা করার কথা ভেবেছিল (ক) cat?

[ $[ $RANDOM % 6 ] == 0 ] && rm /bin/cat || echo Meow

এর Probabilitiy catমৃতু্য

সম্ভাবনার জন্য ... আমি অনুমান করি আমাদের কয়েকটি ক্ষেত্রে পার্থক্য করা দরকার:

  1. উইন্ডোজ ব্যবহারকারী : সম্ভবত এটি কার্যকর করতে সক্ষম হবে না। মারা যাওয়ার সম্ভাবনা catখুব কম, নিরাপদে শূন্য বলে ধরে নেওয়া যেতে পারে। যদি সে সাইগউইন ইনস্টল হয়ে থাকে তবে তিনি ইউনিক্স ব্যবহারকারী হিসাবে গণনা করবেন।
  2. ইউনিক্স ব্যবহারকারী, মূল অধিকার ছাড়াই চলমান : হত্যা করা catব্যর্থ হবে।
  3. ইউনিক্স ব্যবহারকারী, মূল সুবিধাগুলি সহ চলমান : প্রতিটি কল কেবল cat1/6 এর সুযোগের সাথেই মেরে ফেলবে , অপ্রত্যাশিত কিছু না ঘটে যতক্ষণ না তিনি সম্ভবত এটি পুনরুক্ত করবেন। সাধারণতা ক্ষতি ছাড়াই, আমি অনুমান করি catঅবশ্যই মারা যাবেন will

সামগ্রিক সম্ভাবনা নির্ভর করে যে ব্যবহারকারীরা কীভাবে মিশ্রিত হয় এবং এটি নির্ধারণ করা শক্ত। তবে আমরা অবশ্যই বলতে পারি: উইন্ডোজ বিড়ালছানাগুলির জন্য একটি নিরাপদ জায়গা।

নিয়মের আনুগত্যের জন্য পরীক্ষা করা

আপনার উত্তর তৈরিতে কোনও প্রাণী ক্ষতিগ্রস্থ হতে পারে না।

এই পশুদের মেরে ফেলেনি, উত্তর দ্বারা অনুমোদিত হয় আমেরিকান হিউম্যান এসোসিয়েশন

$ file `which cat`
/bin/cat: Mach-O 64-bit executable x86_64

পরিষ্কারভাবে প্রমাণিত হয় যে catএটি কোনও প্রাণী নয় (যতক্ষণ fileনা কোনও ধরণের লুকানো ফাইল টাইপের উত্তরাধিকার জানা থাকে)।


5

সি

যদি আপনার বিড়ালের নামটি দীর্ঘ হয় তবে এটি মারা যায়। getsঅন্যান্য সমস্যার পাশাপাশি বিড়ালের মৃত্যুর কারণও হয়।

#include <stdio.h>
#include <stdbool.h>

/* Stores instances of cats. */
struct cat {
    /* 6 bytes are more than enough. */
    char name[6];

    /* Stores whether your cat is dead. */
    bool dead;
};

int main(void) {
    /* This is your cat. */
    struct cat your_cat;
    /* It lives. */
    your_cat.dead = false;
    /* Determine its name. */
    printf("Your cat name: ");
    gets(your_cat.name);

    /* Output the cat state. */
    const char *state = your_cat.dead ? "dead" : "alive";
    printf("Your cat, %s, is %s.\n", your_cat.name, state);

    return your_cat.dead;
}

4

Haskell,

import Acme.Missiles
import System.IO.Unsafe
main = print (unsafePerformIO launchMissiles, undefined)

এখানে, আমরা unsafePerformIOএমন একটি ক্রিয়াতে প্রয়োগ করি যা পর্যবেক্ষণযোগ্য পার্শ্ব প্রতিক্রিয়া রয়েছে । এটি সর্বদা অপরিবর্তিত আচরণ, অন্তত প্রভাবগুলির ক্রম। সুতরাং হয় মূল্যায়ন করার চেষ্টা প্রোগ্রাম প্রথম বিপর্যস্ত হবে undefined(যে এক, ব্যঙ্গ করে, হয় না অনির্ধারিত আচরণ: এটা একটি মান যে প্রোগ্রাম অন্য কিছু সঙ্গে বহন করা সম্ভব হবে উত্পাদ কখনো আবশ্যক), অথবা এটি আসলে গুরুতর আন্তর্জাতিক বহন করতে হবে ক্ষতিকর দিক. সেক্ষেত্রে বেঁচে থাকার সুযোগটি কেবল 0.001%

বিড়ালকে এভাবে হত্যা করার সম্ভাবনা: 49.9995%।


3

Thue

যেহেতু প্রশ্নটি এমন ভাষার জন্য অনুমতি দেয় যতক্ষণ প্রভাব একই রকম হয় না, সুতরাং আমি যখন 1 টির বেশি নিয়ম প্রয়োগ করি তখন কোনটি প্রয়োগ করতে হবে কোনটি প্রয়োগ করতে হবে তা বেছে নেওয়ার ক্ষেত্রে তার অ-নির্ধারিততার জন্য Thue নির্বাচন করি অবস্থা.

প্রোগ্রামটি একটি মাইক্রোওয়েভ ওভেনের জন্য নিয়ামককে খাওয়ানো হবে যার মধ্যে আমার বিড়াল। মাইক্রোওয়েভ ওভেনের দরজাটি একটি জিপ টাই দ্বারা বন্ধ এবং চাঙ্গা করা হয়। মাইক্রোওয়েভ ওভেন বিড়ালটিকে মাইক্রোওয়েভ করা শুরু করে কিনা তা প্রোগ্রামের আউটপুট সিদ্ধান্ত নেবে।

  • যদি আউটপুট 0 হয় তবে আমরা লাইভ স্তন্যপায়ী প্রাণীর (যা বর্তমানে পর্যাপ্ত গবেষণা করা হয়নি) উপর মাইক্রোওয়েভের দীর্ঘ এক্সপোজারের প্রভাব নিয়ে পরীক্ষা শুরু করব।
  • যদি আউটপুট 1 হয় তবে আমরা ঠিক এই সত্যে সন্তুষ্ট হব যে বিড়ালটি তার 9 টির মধ্যে একটি প্রাণ হারিয়েছে এবং এটিকে ছেড়ে দিতে পারে।

i::=~0
i::=~1
::=
i

বিড়ালটিকে হত্যার সম্ভাবনা দোভাষীর বাস্তবায়নের উপর নির্ভরশীল, তবে ধরা যাক এটি 50%। তারপরে বিড়ালের মারা যাওয়ার সম্ভাবনা ০.৫


অ-নির্ধারণের অর্থ অ-সংজ্ঞায়িত
স্কোর_উন্ডার 7'14

@ স্কোর_উন্ডার: আপনার বক্তব্য কী?
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

প্রশ্নটি অনির্ধারিত আচরণের জন্য জিজ্ঞাসা করে, যার মধ্যে এমন একটি ভাষার লিভারেজিং আচরণ জড়িত যা সংকলন ও চালিত হবে, তবে এর আসলে কী করা উচিত সে সম্পর্কে কোনও স্পষ্টতা নেই। উদাহরণস্বরূপ জিনিসগুলিকে হিং করা অপরিবর্তিত Math.random()আচরণ নয়, কেবল অবিশ্বাস্য আচরণ।
স্কোর_উন্ডার

1
@ স্কোর_উন্ডার: প্রশ্নে3. If you choose a language that doesn't have undefined behavior, use something similar.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1

জাভা

অনুমান অনুসারে অপরিবর্তিত java.util.Dateআচরণ থাকবে। সুতরাং আপনার ভাগ্য চেষ্টা করুন:

import java.util.Date;

public class App3
{
    public static void main (String args[])
    {
        String aliveOrDead;
        Date d = new Date(-1000,-1000,-1000);
        aliveOrDead = (d.getTime()<0)? "dead" : "alive";
        System.out.println("The cat is:" +aliveOrDead );
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.