লকার্স বনাম ক্র্যাকারস: ফাইভ-এলিমেন্ট সিকোয়েন্স


31

চ্যালেঞ্জ

একটি সাধারণ "স্পাই বনাম স্পাই" চ্যালেঞ্জ।

নিম্নলিখিত স্পেসিফিকেশন সহ একটি প্রোগ্রাম লিখুন:

  1. প্রোগ্রামটি কোনও ভাষায় লিখিত হতে পারে তবে 512 টি অক্ষরের বেশি হওয়া উচিত নয় (এই সাইটের কোনও কোড ব্লকে উপস্থাপিত)।
  2. প্রোগ্রামটি অবশ্যই 5 স্বাক্ষরিত 32-বিট পূর্ণসংখ্যাকে ইনপুট হিসাবে গ্রহণ করতে হবে। এটি এমন একটি ফাংশনের আকার নিতে পারে যা 5 টি আর্গুমেন্ট গ্রহণ করে, একটি ফাংশন যা একটি একক 5-উপাদান অ্যারে গ্রহণ করে, বা একটি সম্পূর্ণ প্রোগ্রাম যা কোনও স্ট্যান্ডার্ড ইনপুট থেকে 5 পূর্ণসংখ্যার পাঠ করে।
  3. প্রোগ্রামটি অবশ্যই একটি স্বাক্ষরিত 32-বিট পূর্ণসংখ্যার ফলাফল করে।
  4. ক্রম হিসাবে ব্যাখ্যা করা পাঁচটি ইনপুট যদি প্রোগ্রামারটির চয়ন করার একটি নির্দিষ্ট গাণিতিক ক্রমের সাথে মেলে, তবে "কী" নামক প্রোগ্রামটি অবশ্যই 1 টি ফিরে আসতে হবে। অন্যান্য সমস্ত ইনপুটগুলির জন্য ফাংশনটি অবশ্যই 0 প্রদান করবে।

একটি গাণিতিক ক্রমের বৈশিষ্ট্যটি রয়েছে যে ক্রমের প্রতিটি ধারাবাহিক উপাদান তার পূর্বসূরি প্লাস কিছু স্থির ধ্রুবকের সমান a

উদাহরণস্বরূপ, 25 30 35 40 45একটি গাণিতিক ক্রম যেহেতু অনুক্রমের প্রতিটি উপাদান তার পূর্বসূরী 5 এর 17 10 3 -4 -11সমান হয় তেমনিভাবে , একটি গাণিতিক ক্রম হয় যেহেতু প্রতিটি উপাদান তার পূর্বসূরি প্লাস -7 এর সমান হয়।

সিকোয়েন্সগুলি 1 2 4 8 16এবং 3 9 15 6 12গাণিতিক ক্রম নয়।

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

উদাহরণস্বরূপ, ধরুন আপনি কীটি চয়ন করেছেন 98021 93880 89739 85598 81457। যদি ইনপুটগুলি (ক্রম অনুসারে) এই পাঁচটি সংখ্যার সাথে মেলে তবে আপনার প্রোগ্রামটি অবশ্যই 1 টি ফিরে আসতে হবে 0

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

স্কোরিং

অক্ষর গণনা অনুসারে স্বল্পতম অ-ক্র্যাক জমা দেওয়া (গুলি) বিজয়ী (গুলি) হিসাবে ঘোষণা করা হবে।

যদি কোনও বিভ্রান্তি থাকে তবে বিনা দ্বিধায় জিজ্ঞাসা বা মন্তব্য করতে পারেন।

কাউন্টার-চ্যালেঞ্জ

যারা তাদের নিজস্ব প্রোগ্রাম জমা দিয়েছেন তাদের সহ সকল পাঠককে "ক্র্যাক" জমা দিতে উত্সাহিত করা হয়। সম্পর্কিত জমা বিভাগে এর কীটি পোস্ট করা হলে একটি জমা দেওয়া ক্র্যাক হয়। যদি কোনও জমা পরিবর্তন বা ক্র্যাক না করে 72 ঘন্টার জন্য অব্যাহত থাকে, তবে এটি "নিরাপদ" হিসাবে বিবেচিত হবে এবং ক্র্যাকিংয়ের পরবর্তী কোনও সাফল্য প্রতিযোগিতার কারণে এড়ানো হবে।

আপডেট হওয়া ক্র্যাকিং স্কোর নীতি সম্পর্কে বিশদ জানতে নীচে "অস্বীকৃতি" দেখুন।

ক্র্যাকড সাবমিশনগুলি বিতর্ক থেকে বাদ দেওয়া হয় (প্রদত্ত তারা "নিরাপদ" নয়)। এগুলি সম্পাদনা করা উচিত নয়। যদি কোনও পাঠক কোনও নতুন প্রোগ্রাম জমা দিতে চান তবে তার পৃথক উত্তরে তা করা উচিত।

সর্বোচ্চ স্কোর (গুলি) সহ ক্র্যাকার (গুলি) বিজয়ী প্রোগ্রামগুলির বিকাশকারীদের পাশাপাশি বিজয়ী হিসাবে ঘোষণা করা হবে।

আপনার নিজের জমাটি ক্র্যাক করবেন না দয়া করে।

ভাগ্য সুপ্রসন্ন হোক. :)

লিডারবোর্ড

পেনাল্টিমেট স্ট্যান্ডিং (ডেনিসের সিজেএম 49 জমা দেওয়ার সুরক্ষার জন্য মুলতুবি রয়েছে)।

নিরাপদ লকার

  1. সিজেএম 49, ডেনিস
  2. সিজেম 62, ডেনিস নিরাপদ
  3. সিজেম 91, ডেনিস নিরাপদ
  4. পাইথন 156, মার্টেন বার্ট নিরাপদ
  5. পার্ল 256, চিলিমাজিক নিরাপদ
  6. জাভা 468, জিওবিটস নিরাপদ

ক্রমহীন ক্র্যাকারস

  1. পিটার টেলর [রুবি 130, জাভা 342, গণিত 146 *, ম্যাথমেটিকা ​​72 *, সিজেএম 37]
  2. ডেনিস [পাইথ 13, পাইথন 86 *, লুয়া 105 *, গল্ফস্ক্রিপ্ট 116, সি 239 *]
  3. মার্টিন বাটনার [জাভাস্ক্রিপ্ট 125, পাইথন 128 *, রুবি 175 *, রুবি 249 *]
  4. টাইলো [সি 459, জাভাস্ক্রিপ্ট 958 *]
  5. ফ্রেডিডিকনেটস [গণিত 67a *]
  6. ইলমারি করোনেন [পাইথন 27 182 *]
  7. নাইট্রাস [সি 212 *]

অ-আনুগত্য জমা

দাবি অস্বীকার (আপডেট হয়েছে 11:15 অপরাহ্ন EST, 26 আগস্ট)

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

আগের মতোই, যথাযথ দাখিলাগুলি ক্র্যাক হয়েছে, দাখিলের দৈর্ঘ্য এবং তাদের অনুবর্তী / অ-আনুগত্যের স্থিতিগুলি চিহ্নিত রয়েছে যাতে পাঠকরা তাদের নিজস্ব র‌্যাঙ্কিং অনুমান করতে পারে যদি তারা বিশ্বাস করেন যে নতুন অফিসিয়াল র‌্যাঙ্কিংটি অন্যায় are

এই দেরিতে গেমটির শেষদিকে নিয়ম সংশোধন করার জন্য আমার ক্ষমা চাই।


6
আপনি কীভাবে যাচাই করতে যাচ্ছেন যে প্রোগ্রামগুলি 4 পয়েন্ট পূরণ করে? আপনি কি কোনও প্রমাণ যুক্ত করার জন্য লোকেরা তাদের নিরাপদ উত্তরগুলি সম্পাদনা করবেন বলে আশা করেন? হ্যাশ ফাংশনগুলি আদর্শ বলে ধরে নেওয়া এবং 48-বিটের অন্য একটি উপাদানের (উপরের আপনার অনুমান অনুসারে) স্থানের সংঘর্ষের সম্ভাবনাকে নগণ্য বলে ধরে নেওয়ার ভিত্তিতে কি সম্ভাব্য সাবমিশনগুলি অনুমোদিত?
পিটার টেলর

2
স্কোরিং সিস্টেমটি ক্র্যাকারদের সংক্ষিপ্ততম লকগুলিকে উপেক্ষা করার জন্য উত্সাহিত করবে বলে তারা দুটি ছোট ছোটের চেয়ে দুটি দীর্ঘ লক ক্র্যাক করে আরও ভাল স্কোর করে।
পিটার টেলর

3
@ COTO আমি মনে করি যে সমস্যাটি হ'ল আপনি কেবল 2 ক্র্যাকিং স্কোর এবং শুধুমাত্র সংক্ষিপ্ততম পেতে পারেন । সুতরাং কেন অপেক্ষা এবং আশা এবং আর একটি প্রদর্শিত হবে না? উদাহরণস্বরূপ, মার্টিনের এখন আমার (দীর্ঘতর) লকটি ফাটানোর কোনও উত্সাহ নেই , যেহেতু তিনি ইতিমধ্যে দুটি সংক্ষিপ্ত দুটি ক্র্যাক করেছেন। যে কেউ আমার ক্র্যাক করবে সে এখন দ্বিতীয়টি না করেও তাকে মারবে।
জিওবিটস

1
আমি মনে করি আরও ভাল স্কোরিং সিস্টেম প্রশ্ন এবং ক্র্যাকের মধ্যে মোট সময়ের সমষ্টি হতে পারে। এইভাবে, সহজ সংখ্যার ক্র্যাকিংকে মারধর করা যেতে পারে এবং আসল প্রতিদান সত্যিকারের শক্তদের ক্র্যাকিংয়ের মাধ্যমে আসে।
isaacg

1
আমি গল্ফিংয়ে নতুন, তাই এটি একটি বোকা প্রশ্ন, এর জন্য দুঃখিত। কোডের দৈর্ঘ্যটি বাইটগুলিতে নয় অক্ষরগুলিতে মাপা হয় কেন? দ্বিতীয়টি হ'ল আক্ষরিক অর্থে একটি প্রোগ্রাম যে মেমরির জায়গা দখল করে, তাই আমার কাছে এটি আরও যুক্তিযুক্ত বলে মনে হয়। যেমন। সিজেএম উত্তরটি চরিত্রগুলির মধ্যে সবচেয়ে সংক্ষিপ্ত, তবে এর আকারের দিকে তাকানোর সময় (ইউনিকোডের কারণে 326) এটি শীর্ষেও নেই 5.. সুতরাং আমি অবাক করে বলছি, বাইটের পরিবর্তে চরগুলি গণনা করা কি গল্ফিংয়ে সাধারণ সম্মেলন?
ফ্রেডডিকনেটস

উত্তর:


3

সিজেম, 62 টি অক্ষর

"ḡꬼ쏉壥떨ሤ뭦㪐ꍡ㡩折量ⶌ팭뭲䯬ꀫ郯⛅彨ꄇ벍起ឣ莨ຉᆞ涁呢鲒찜⋙韪鰴ꟓ䘦쥆疭ⶊ凃揭"2G#b129b:c~

স্ট্যাক এক্সচেঞ্জ অচিহ্নিত অক্ষরগুলিকে ম্যালিং করার ঝুঁকিপূর্ণ তবে এই পেস্টটি থেকে কোডটি অনুলিপি করে সিজেএম ইন্টারপ্রেটারে এটি আটকানো আমার পক্ষে ভাল কাজ করে।

কিভাবে এটা কাজ করে

ইউনিকোড স্ট্রিংটিকে ASCII স্ট্রিংয়ের সাথে প্রতিস্থাপনের পরে, নিম্নলিখিত কোডটি কার্যকর করা হবে:

" Push 85, read the integers from STDIN and collect everything in an array.               ";

85l~]

" Convert the array of base 4**17 digits into and array of base 2 digits.                 ";

4H#b2b

" Split into chunks of length 93 and 84.                                                  ";

93/~

" Do the following 611 times:

    * Rotate array A (93 elements) and B one element to the left.
    * B[83] ^= B[14]
    * T = B[83]
    * B[83] ^= B[0] & B[1] ^ A[23]
    * A[92] ^= A[26]
    * Rotate T ^ A[92] below the arrays.
    * A[92] ^= A[0] & A[1] ^ B[5].                                                        ";

{(X$E=^:T1$2<:&^2$24=^+\(1$26=^_T^@@1$2<:&^3$5=^+@}611*

" Discard the arrays and collects the last 177 generated bits into an array.              ";

;;]434>

" Convert the into an integer and check if the result is 922 ... 593.                     ";

2b9229084211442676863661078230267436345695618217593=

এই পদ্ধতির বিভিয়াম-বি ( ট্রাইভিয়ামের মতো সিফারগুলির বীজগণিত বিশ্লেষণ দেখুন ) ব্যবহার করে, এটি স্ট্রিম সাইফার ট্রিভিয়মের একটি দুর্বল সংস্করণ ।

প্রোগ্রামটি প্রাথমিক অবস্থার হিসাবে পূর্ণসংখ্যার ক্রম ব্যবহার করে, রাষ্ট্রকে 434 বার আপডেট করে (354 রাউন্ডগুলি সম্পূর্ণ বিস্তৃতি অর্জন করে) এবং 177 বিট আউটপুট উত্পন্ন করে, যা এটি সঠিক ক্রমের সাথে তুলনা করে।

যেহেতু রাজ্যের আকার অবিকল 177 বিট, এই উচিত স্বতন্ত্র প্রাথমিক অবস্থায় শনাক্ত করতে যথেষ্ট।

উদাহরণ রান

$ echo $LANG
en_US.UTF-8
$ base64 -d > block.cjam <<< IgThuKHqrLzsj4nlo6XrlqjhiKTrrabjqpDqjaHjoanmipjvpb7itozuoIDtjK3rrbLul7bkr6zqgKvvjafpg6/im4XlvajqhIfrso3uprrotbfvmL/hnqPojqjguonhhp7mtoHujLPuipzlkaLpspLssJzii5npn6rpsLTqn5PkmKbspYbnlq3itorlh4Pmj60iMkcjYjEyOWI6Y34=
$ wc -m block.cjam
62 block.cjam
$ cjam block.cjam < block.secret; echo
1
$ cjam block.cjam <<< "1 2 3 4 5"; echo
0

6

সিজেম, 91 টি অক্ষর

q~]KK#bD#"᫖࿼듋ޔ唱୦廽⻎킋뎢凌Ḏ끮冕옷뿹毳슟夫΢眘藸躦䪕齃噳卤"65533:Bb%"萗縤ᤞ雑燠Ꮖ㈢ꭙ㈶タ敫䙿娲훔쓭벓脿翠❶셭剮쬭玓ୂ쁬䈆﹌⫌稟"Bb=

স্ট্যাক এক্সচেঞ্জ অচিহ্নিত অক্ষরগুলিকে ম্যালিং করার ঝুঁকিপূর্ণ তবে এই পেস্টটি থেকে কোডটি অনুলিপি করে সিজেএম ইন্টারপ্রেটারে এটি আটকানো আমার পক্ষে ভাল কাজ করে।

কিভাবে এটা কাজ করে

ইউনিকোড স্ট্রিংটি পূর্ণসংখ্যার (বেস 65533 সংখ্যাগুলির অক্ষরের সংখ্যা বিবেচনা করে) প্রতিস্থাপনের পরে, নিম্নলিখিত কোডটি কার্যকর করা হয়:

" Read the integers from STDIN and collect them in an array.                               ";

q~]

" Convert it into an integer by considering its elements digits of a base 20**20 number.   ";

KK#b

" Elevate it to the 13th power modulus 252 ... 701.                                        ";

D#
25211471039348320335042771975511542429923787152099395215402073753353303876955720415705947365696970054141596580623913538507854517012317194585728620266050701%

" Check if the result is 202 ... 866.                                                      ";

20296578126505831855363602947513398780162083699878357763732452715119575942704948999334568239084302792717120612636331880722869443591786121631020625810496866=

যেহেতু ১৩ টি মডুলাসের সামগ্রীর কাছে কপিরাইটযুক্ত (পুরোটি গোপনীয়, তাই আপনাকে কেবল আমার উপর বিশ্বাস রাখতে হবে), বিভিন্ন ঘাঁটি বিভিন্ন ফলাফল উত্পন্ন করবে, অর্থাত্ সমাধানটি অনন্য।

কেউ যদি ক্ষুদ্র ক্ষুদ্র (13) ব্যবহার করতে না পারে তবে এই লকটি ভাঙার সবচেয়ে কার্যকরী উপায় হল মডিউলকে ফ্যাক্ট করা ( আরএসএ সমস্যাটি দেখুন )। আমি মডুলাসের জন্য একটি 512-বিট পূর্ণসংখ্যা বেছে নিয়েছি, যা 72 ঘন্টাের ফ্যাক্টরীকরণের প্রচেষ্টা সহ্য করতে পারে।

উদাহরণ রান

$ echo $LANG
en_US.UTF-8
$ base64 -d > lock.cjam <<< cX5dS0sjYkQjIgHuiJHhq5bgv7zrk4velOWUse6zjuCtpuW7veK7ju2Ci+uOouWHjOG4ju+Rh+uBruWGleyYt+u/ueavs+6boOyKn+Wkq86i55yY6Je46Lqm5KqV6b2D5Zmz75Wp5Y2kIjY1NTMzOkJiJSIB6JCX57ik4aSe74aS6ZuR54eg4Y+G44ii6q2Z44i244K/5pWr5Jm/5aiy7ZuU7JOt67KT7rO26IS/57+g4p2275+K7IWt5Ymu7Kyt546T4K2C7IGs5IiG77mM4quM56ifIkJiPQ==
$ wc -m lock.cjam
91 lock.cjam
$ cjam lock.cjam < lock.secret; echo
1
$ cjam lock.cjam <<< "1 2 3 4 5"; echo
0

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

এফওয়াইআই, আমি আমার ফ্যাক্টরিং প্রচেষ্টা বাতিল করে দিচ্ছি। এমসিউভ নিজেই 276 ঘন্টা সময়সীমা নির্ধারণ করে, তবে এটি কেবল ফ্যাক্টর বেস তৈরির জন্য। সেই সময়ে এটি found 1740001 rational and 1739328 algebraic entries; এগুলি থেকে প্রক্রিয়াজাতকরণের জন্য প্রায় 100 ঘন্টা সময় ছিল এবং রিপোর্টগুলি sieving in progress b = 46583, 0 complete / 0 batched relations (need 44970493)
পিটার টেলর

@ পিটারটেলর: মনে হচ্ছে 512 বিট ওভারকিল ছিল। আপনি কি আমার অন্যান্য উত্তরে বা এই একটিতে পূর্ণসংখ্যাকে ফ্যাক্ট করার চেষ্টা করছেন?
ডেনিস

উফফফফফফফফফফফফফফফফঃ হ্যাঁ, অন্য এক।
পিটার টেলর

4

পাইথন - 128

আসুন এটি চেষ্টা করুন:

i=input()
k=1050809377681880902769L
print'01'[all((i>1,i[0]<i[4],k%i[0]<1,k%i[4]<1,i[4]-i[3]==i[3]-i[2]==i[2]-i[1]==i[1]-i[0]))]

(ব্যবহারকারী 5 টি কমা-বিভাজিত সংখ্যাকে ইনপুট করার প্রত্যাশা করে, যেমন 1,2,3,4,5))


3
32416190039,32416190047,32416190055,32416190063,32416190071
মার্টিন এন্ডার

বাহ, দ্রুত ছিল! তুমি ঠিক বলছো! আর আমি বাইরে আছি
ফালকো

3
বিটিডব্লিউ, এটি আসলে বৈধ নয়, কারণ আপনার পাঁচটি পূর্ণসংখ্যা 32-বিট পূর্ণসংখ্যায় ফিট করে না।
মার্টিন ইন্ডার

4

জাভা: 468

ইনপুট হিসাবে দেওয়া হয় k(int[5])। সমানভাবে ব্যবধান না থাকলে শুরুর দিকে জামিনত্যাগ করুন। অন্যথায়, দশটি হ্যাশ সঠিক কিনা তা নির্ধারণ করতে কিছুটা সময় লাগে takes বৃহত সংখ্যার জন্য, "কিছুটা" এর অর্থ দশ সেকেন্ড বা তার বেশি হতে পারে, সুতরাং এটি ক্র্যাকারগুলিকে ব্যর্থ করতে পারে।

//golfed
int k(int[]q){int b=q[1]-q[0],i,x,y,j,h[]=new int[]{280256579,123883276,1771253254,1977914749,449635393,998860524,888446062,1833324980,1391496617,2075731831};for(i=0;i<4;)if(q[i+1]-q[i++]!=b||b<1)return 0;for(i=1;i<6;b=m(b,b/(i++*100),(1<<31)-1));for(i=0;i<5;i++){for(j=1,x=b,y=b/2;j<6;x=m(x,q[i]%100000000,(1<<31)-1),y=m(y,q[i]/(j++*1000),(1<<31)-1));if(x!=h[i*2]||y!=h[i*2+1])return 0;}return 1;}int m(int a,int b,int c){long d=1;for(;b-->0;d=(d*a)%c);return (int)d;}

// line breaks
int k(int[]q){
    int b=q[1]-q[0],i,x,y,j,
    h[]=new int[]{280256579,123883276,1771253254,1977914749,449635393,
                  998860524,888446062,1833324980,1391496617,2075731831};
    for(i=0;i<4;)
        if(q[i+1]-q[i++]!=b||b<1)
            return 0;
    for(i=1;i<6;b=m(b,b/(i++*100),(1<<31)-1));
    for(i=0;i<5;i++){
        for(j=1,x=b,y=b/2;j<6;x=m(x,q[i]%100000000,(1<<31)-1),y=m(y,q[i]/(j++*1000),(1<<31)-1));
        if(x!=h[i*2]||y!=h[i*2+1])
            return 0;
    }
    return 1;
}
int m(int a,int b,int c){
    long d=1;for(;b-->0;d=(d*a)%c);
    return (int)d;
}

1
যদি ইনপুট গাণিতিক ক্রমটি নেমে থাকে তবে আপনার কোডটি স্তব্ধ। বা কমপক্ষে, সত্যই দীর্ঘ সময় নেয় । যা আমাকে মনে করে গোপন কোডটি আরোহী ...
কীথ রান্ডাল

3
নিবন্ধন করুন এর সাজানো ক্রম একটি অস্বাভাবিক নেওয়া করতে চার বাইট যোগ করা যাক সংক্ষিপ্ত সময় পরিমাণ, আরও আপনার বিশ্বাস পুনর্বহাল।
Geobits

4

জাভা: 342

int l(int[]a){String s=""+(a[1]-a[0]);for(int b:a)s+=b;char[]c=new char[11];for(char x:s.toCharArray())c[x<48?10:x-48]++;for(int i=0;i<11;c[i]+=48,c[i]=c[i]>57?57:c[i],i++,s="");for(int b:a)s+=new Long(new String(c))/(double)b;return s.equals("-3083.7767567702776-8563.34366442527211022.4345579010483353.1736981951231977.3560837512646")?1:0;}

এখানে একটি স্ট্রিং-ভিত্তিক লকার যা ইনপুট অক্ষর গণনা এবং নির্দিষ্ট ইনপুট উভয়ের উপর নির্ভর করে। ক্রমটি অস্পষ্ট পপ সংস্কৃতি রেফারেন্সের ভিত্তিতে তৈরি হতে পারে। আনন্দ কর!

কিছুটা অবারিত:

int lock(int[]a){
    String s=""+(a[1]-a[0]);
    for(int b:a)
        s+=b;
    char[]c=new char[11];
    for(char x:s.toCharArray())
        c[x<48?10:x-48]++;
    for(int i=0;i<11;c[i]+=48,
                     c[i]=c[i]>57?57:c[i],
                     i++,
                     s="");
    for(int b:a)
        s+=new Long(new String(c))/(double)b;
    return s.equals("-3083.7767567702776-8563.34366442527211022.4345579010483353.1736981951231977.3560837512646")?1:0;
}

2
8675309? 90210?
মালাচি

1
@ মালাচি দুটি অসামান্য উল্লেখ, নিঃসন্দেহে, তবে আমি এই অনুশীলনে তাদের প্রযোজ্যতা নিশ্চিত করতে বা অস্বীকার করতে পারি না।
Geobits

হ্যাঁ, আমি কীভাবে এখনও এই চ্যালেঞ্জটি সম্পূর্ণরূপে কাজ করে তা পুরোপুরি বুঝতে পারি নি, আমি বাড়িতে থাকাকালীন পরে এটিকে শট দিতে পারি।
মালাচি

1
প্রাথমিক শব্দটি হ'ল -8675309ডেল্টা 5551212
পিটার টেলর

@ পিটারটেলর সুন্দরভাবে সম্পন্ন হয়েছে :)
জিওবিটস

4

পাইথন, 147

সম্পাদনা করুন: ডেনিসের মন্তব্যের ভিত্তিতে সংক্ষিপ্ত সংস্করণ। আমি কোনও তথ্য ফাঁস এড়াতে সিকোয়েন্সটিও আপডেট করেছি।

def a(b):
    c=1
    for d in b:
        c=(c<<32)+d
    return pow(7,c,0xf494eca63dcab7b47ac21158799ffcabca8f2c6b3)==0xa3742a4abcb812e0c3664551dd3d6d2207aecb9be

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


বিযুক্ত লগারিদমগুলি আমার পক্ষে অনেক কঠিন মনে হয়েছিল। আমার ক্র্যাকার 26 ঘন্টা ধরে এটি হয়েছে। আমি হাল ছেড়ে দিলাম।
ডেনিস

আপনি সূচনা সমস্যাটি সমাধানের মাধ্যমে প্রাথমিকভাবে c=1, কম্পিউটিং করে c=(c<<32)+dএবং সেই অনুযায়ী ধ্রুবকটি পরিবর্তন করতে পারেন।
ডেনিস

3

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

এই এক খুব দ্রুত ফাটানো উচিত। আমি আরও শক্তিশালী কিছু সঙ্গে অনুসরণ করব।

function unlock(a, b, c, d, e)
{
    return (e << a == 15652) && (c >> a == 7826) && (e - b == d) && (d - c - a == b) ? 1 : 0;
}

6
0, 3913, 7826, 11739, 15652
মার্টিন ইন্ডার

হ্যাঁ আপনি এটি পেয়েছেন :)
rdans

3

রুবি, 175

a=gets.scan(/\d+/).map(&:to_i)
a.each_cons(2).map{|x,y|x-y}.uniq[1]&&p(0)&&exit
p a[2]*(a[1]^a[2]+3)**7==0x213a81f4518a907c85e9f1b39258723bc70f07388eec6f3274293fa03e4091e1?1:0

কোনও ক্রিপ্টোগ্রাফিক হ্যাশ ব্যবহার করা বা srandএটির বিপরীতে , এটি প্রমাণযোগ্য অনন্য (যা কিছুটা সামান্য ইঙ্গিত)। STDIN- এর মাধ্যমে পাঁচটি সংখ্যা নেয়, কোনও অ-সংখ্যা, অ-নিউলাইন চরিত্র বা অক্ষর দ্বারা সীমিত। STDOUT এ আউটপুট।


হ্যাঁ, তারা স্বাক্ষরিত হয়েছে ভুলে গেছেন।
হিস্টোক্র্যাট

2
622238809,1397646693,2173054577,2948462461,3723870345(আমার আগের অনুমানের একটি ভুল ছিল তবে এটি পরীক্ষিত)। আমি যদিও এটি বৈধ বলে মনে করি না, কারণ শেষ সংখ্যাটি একটি স্বাক্ষরিত 32-বিট পূর্ণসংখ্যায় ফিট করে না।
মার্টিন এন্ডার

3

গল্ফস্ক্রিপ্ট (১১6 টি অক্ষর)

স্থান দ্বারা পৃথক পূর্ণসংখ্যা হিসাবে ইনপুট নেয় akes

~]{2.5??:^(&}%^base 2733?5121107535380437850547394675965451197140470531483%5207278525522834743713290685466222557399=

2
-51469355 -37912886 -24356417 -10799948 2756521
ডেনিস

চমৎকার কাজ. আপনি কি ছোট খাজনা কাজে লাগিয়েছেন?
পিটার টেলর

2
না, আমি মডুলাসটি ফ্যাক্টরিজ করেছি। প্রিমোর একাধিক বহুবর্ষীয় চতুর্ভুজীয় চালনী এবং পাইপাই ব্যবহার করে মাত্র 13 সেকেন্ড সময় নিয়েছে ।
ডেনিস

সেক্ষেত্রে আমি আমার বর্তমান গল্ফিংটিকে কমপ্যাক্টলি প্রকাশিত মডিউল ব্যবহার করে ত্যাগ করতে পারি। ফলাফলটি যদি ফ্যাক্টরিং থেকে নিরাপদ থাকতে 1024 বিটের মতো কিছু হতে হয় তবে এমনকি বেস -২ 256 উপস্থাপনাটি ব্যবহার করা এটি দীর্ঘ হতে চলেছে।
পিটার টেলর

আমি আশা করি না. আমার উত্তরটি আপনার মত একই ধারণাটি ব্যবহার করে তবে একটি 512 বিট মডুলাস এবং আরও ছোট এক্সপোঞ্জেন্ট (13) দিয়ে। 72 ঘন্টা সময়সীমা দেওয়া, এটি যথেষ্ট হতে পারে ...
ডেনিস

3

সি 459 বাইট

টাইলোর দ্বারা সলভ - নীচে সম্পাদনা পড়ুন

int c (int* a){
int d[4] = {a[1] - a[0], a[2] - a[1], a[3] - a[2], a[4] - a[3]};
if (d[0] != d[1] || d[0] != d[2] || d[0] != d[3]) return 0;
int b[5] = {a[0], a[1], a[2], a[3], a[4]};
int i, j, k;
for (i = 0; i < 5; i++) { 
for (j = 0, k = 2 * i; j < 5; j++, k++) {
k %= i + 1;
b[j] += a[k];
}
}
if (b[0] == 0xC0942 - b[1] && 
b[1] == 0x9785A - b[2] && 
b[2] == 0x6E772 - b[3] && 
b[3] == 0xC0942 - b[4] && 
b[4] == 0xB6508 - b[0]) return 1;
else return 0;
}

সি সলিউশন লেখার জন্য আমাদের কারও দরকার, তাই না? আমি দৈর্ঘ্য দিয়ে কাউকে প্রভাবিত করছি না, আমি কোনও গল্ফার নেই। আমি আশা করি এটি একটি আকর্ষণীয় চ্যালেঞ্জ, যদিও!

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

int main(){
    a[5] = {0, 0, 0, 0, 0} /* your guess */
    printf("%d\n", c(a));
    return 0;
}

পিএস এর একটি তাত্পর্য রয়েছে a[0] এর নিজস্ব ডান হিসাবে একটি সংখ্যা হিসাবে , এবং আমি মন্তব্য কেউ এটি উল্লেখ করতে চাই!

সম্পাদনা করুন:

সমাধান: 6174, 48216, 90258, 132300, 174342

ক্র্যাকিং সম্পর্কে একটি নোট:

যদিও এটি ব্যবহার করা পদ্ধতি নয় (মন্তব্যগুলি দেখুন), আমি খুব সহজেই একটি ব্রাশফোর্স দিয়ে আমার নিজের সাইফারকে ক্র্যাক করেছিলাম। আমি এখন বুঝতে পারছি যে সংখ্যাগুলি বৃহত করা গুরুত্বপূর্ণ। নিম্নলিখিত কোডটি যে কোনও সাইফারকে ক্র্যাক করতে পারে যেখানে upper_boundএকটি পরিচিত উপরের আবদ্ধ a[0] + a[1] + a[2] + a[3] + a[4]। উপরের সিফারের উপরের গণ্ডিটি 457464যা b[]অ্যালগরিদমের সমীকরণের সিস্টেম এবং কিছু কার্য-কর্মের মধ্য দিয়ে পাওয়া যায়। এটি প্রদর্শিত হতে পারে b[4] = a[0] + a[1] + a[2] + a[3] + a[4]

int a[5];
for (a[0] = 0; a[0] <= upper_bound / 5; a[0]++) {
    for (a[1] = a[0] + 1; 10 * (a[1] - a[0]) + a[0] <= upper_bound; a[1]++) {
        a[2] = a[1] + (a[1] - a[0]);
        a[3] = a[2] + (a[1] - a[0]);
        a[4] = a[3] + (a[1] - a[0]);
        if (c(a)) {
            printf("PASSED FOR {%d, %d, %d, %d, %d}\n", a[0], a[1], a[2], a[3], a[4]);
        }
    }
    printf("a[0] = %d Checked\n", a[0]);
}

এর সাথে a[0] = 6174, এই লুপটি এক মিনিটের মধ্যে আমার কাজটি ভেঙে দেয়।


6
সমাধান: 6174, 48216, 90258, 132300, 174342
টাইলো

বাহ যে দ্রুত ছিল। সুন্দর. ভঙ্গুর, অথবা আপনি যে চতুর কিছু মিস করেছেন তা খুঁজে পেয়েছেন?
ব্রেইনস্টিল

আমি ম্যাথামেটিকার প্রতীকী মূল্যায়নটি এরকমভাবে ব্যবহার করেছি: ঘোস্টবিন. com
পাস্ত

সম্পাদনাটি পুনরায় করুন: আমি মূলত একই জিনিসটি করেছি, তবে উপরের দিকে 500k তে ঝাঁকিয়েছি। উত্তর পেয়েছেন এবং দেখেছেন যে টাইলো ইতিমধ্যে এটি পোস্ট করেছে :(
জিওবিটস

@ জিওবিটস এটি একটি আশ্চর্যজনকভাবে সঠিক অনুমান। এই সংখ্যাগুলির প্রান্তে আরও কিছু 0 রাখা উচিত ছিল।
ব্রেইনস্টিল

3

গণিত 80 67

f=Boole[(p=NextPrime/@#)-#=={18,31,6,9,2}&&BitXor@@#~Join~p==1000]&

চলমান:

f[{1,2,3,4,5}] (* => 0 *)

সম্ভবত ক্র্যাক করা বেশ সহজ, এর একাধিক সমাধানও থাকতে পারে।

আপডেট: মার্টিন বাটনার পরামর্শ মতো যা করে গল্ফিং উন্নত করেছে। ফাংশনটির কার্যকারিতা এবং কী পরিবর্তিত হয়নি।


@ মার্টিনব্যাটনার যখন আপনি ক্র্যাক করেন তখন উচ্চতর স্কোর পেতে উত্তরগুলি উন্নত করে। স্মার্ট; পি
টাইলো

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

4
{58871,5592,-47687,-100966,-154245}
ফ্রেডডিকনেটস

@ ফ্রেডডিঙ্কনেটস এটি তৈরি করার সময় আমি যে সমাধানটি ব্যবহার করেছি তা নয়। জানেন না যে NextPrimeএটি নেতিবাচক মানগুলি ফিরিয়ে দিতে পারে। কিভাবে তুমি এটা খুজে পেলে?
টাইলো 21

তাহলে আপনার কীটি অনন্য নয়: পি। আমি মাত্র কয়েকটি পরীক্ষা চালিয়েছি - সেখানে সত্যিই এমন অনেকগুলি সংখ্যা নেই যেখানে নেক্সটপ্রিম [#] - # 31 -এর মূল্যায়ন করে, তাই এটি ক্র্যাক করার সহজ উপায়।
ফ্রেডডিকনেটস

2

পাইথন 27, 283 182

ঠিক আছে, আমি আমার লকারটিতে খুব আত্মবিশ্বাসী, তবে ইনপুটটিতে 'রিভার্স করা কঠিন' গণনাগুলি যুক্ত করার পরে এটি বেশ দীর্ঘ হয়েছে - এটি ভাল করার জন্য - বিপরীত করা শক্ত।

import sys
p=1
for m in map(int,sys.argv[1:6]):m*=3**len(str(m));p*=m<<sum([int(str(m).zfill(9)[-i])for i in[1,3,5,7]])
print'01'[p==0x4cc695e00484947a2cb7133049bfb18c21*3**45<<101]

সম্পাদনা করুন: আরও গল্ফিংয়ের জন্য ক্লেভকে ধন্যবাদ। আমি সম্পাদনার সময় বুঝতে পেরেছিলাম যে আমার অ্যালগোরিদমে একটি ত্রুটির পাশাপাশি ত্রুটি রয়েছে, পরের বারের মতো আমার ভাগ্য ভাল হবে।


5
এটি আর্গুমেন্টগুলির পুনঃক্রমের অধীনে আক্রমণাত্মক, সুতরাং এটি কোনও বৈধ লকার নয়।
পিটার টেলর

তদ্ব্যতীত, পোস্ট হিসাবে চিহ্নিত কোডটি বগি হিসাবে আমি সন্দেহ করি: কীটি 121174841 121174871 121174901 121174931 121174961কাজ করে তবে কেবল [1,3,5,7]line লাইনের তালিকার সাথে প্রতিস্থাপন করা হয় [1,3,5,7,11]
ইলমারি করোনেন

ডার্ন, হ্যাঁ আমি কেবল আমার টাইপোগুলি ঠিক করছিলাম, সেই সময় আমি আমার অ্যালগরিদমে একটি গুরুতর ভুল করেছি, খুব সহজেই এটি ক্র্যাক করা যায়: |
স্টোকাস্টিক

প্রকৃতপক্ষে, বাগটি খুঁজে পেতে এবং ফিক্স করা একটি কঠিন অংশ ছিল; আপনার অ্যালগরিদম দেওয়া হয়েছে, ধ্রুবকটি ফ্যাক্টর করা চেষ্টা করা এক ধরণের স্পষ্ট বিষয় ছিল।
ইলমারি করোনেন

2

গণিত 142 146

সম্পাদনা : কীটি অনন্য ছিল না, যোগ করা 4 টি অক্ষর, এখন এটি।

n=NextPrime;
f=Boole[
    FromDigits /@ (
        PartitionsQ[n@(237/Plus@##) {1, ##} + 1] & @@@ 
            IntegerDigits@n@{Plus@##-37*Log[#3],(#1-#5)#4}
    ) == {1913001154,729783244}
]&

(পাঠযোগ্যতার জন্য স্পেসস এবং নিউলাইনগুলি যুক্ত, গণনা করা হয়নি এবং প্রয়োজন নেই)।

ব্যবহার:

f[1,2,3,4,5]   (* => 0 *)

1
প্রাথমিক পদ 256208, ব-দ্বীপ -5
পিটার টেলর

ডাং, তবুও এটি অনন্য নয়, কারণ এটি আমার মূল কী নয়। আপনি কি ব্রুটফোর্স করেছেন?
ফ্রেডডিকনেটস

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

তবে এই পদ্ধতিটি যেভাবেই অনন্য হতে পারে তার কোনও উপায় নেই। পাঁচটি ইনপুটগুলির মধ্যে দ্বিতীয়টি কেবল একটি পরিমাণে ব্যবহৃত হয় যা পাস করা হয় NextPrime; যদি আমরা এটিকে প্লাস বা বিয়োগ করে পৃথক করি তবে তাদের মধ্যে অন্তত একটি একই পরের প্রাইম দেবে।
পিটার টেলর

হ্যাঁ তবে একটি গাণিতিক ক্রমের জন্য এটি প্রয়োজনীয় ইনপুট- এটি অনন্য বলে মনে করা হয়েছিল।
ফ্রেডডিকনেটস 26:54

1

@ ডেনিস দ্বারা 2 ঘন্টা ফাটল


জিনিস শুরু করার জন্য কেবল একটি সহজ - আমি এটি দ্রুত ফাটানো আশা করি fully

পাইথ , 13

h_^ZqU5m-CGdQ

STDIN এ কমা দ্বারা পৃথক ইনপুট নেয়।

এটি এ জাতীয়ভাবে চালান (-সি মানে প্রোগ্রামটি কমান্ড লাইন আর্গুমেন্ট হিসাবে গ্রহণ করুন):

$ echo '1,2,3,4,5' | python3 pyth.py -c h_^ZqU5m-CGdQ
0

প্রোগ্রামটি স্থির করেছিলাম - আমি অনুমানটি বুঝতে পারি নি।

এই ভাষাটি এই প্রতিযোগিতার জন্য খুব অনবদ্য হতে পারে - ওপি যদি এটি মনে করে তবে আমি এটিকে সরিয়ে দেব।


7
আপনি কি সবে ছেড়ে দিয়েছেন যে 1,2,3,4,5মূলটি?
পিটার টেলর

1
প্রতিটি ইনপুট আমি চেষ্টা করেছি 1, আপনি কি 1 এবং 0 আউটপুট হিসাবে স্যুইচ করেছেন?
টাইলো

দুঃখিত, আমি আউটপুট বনাম ফেরতের পার্থক্য বুঝতে পারি নি - প্রোগ্রামটি এখন কাজ করা উচিত। অন্তর্নিহিত একই অ্যালগরিদম।
isaacg

3
97,96,95,94,93(আমি সবেমাত্র আমার ক্র্যাকিংয়ের স্কোরটি মেরে ফেলেছি))
ডেনিস

@ ডেনিস ভাল হয়েছে। ক্র্যাকিং স্কোর সিস্টেমটি পরিবর্তন করা দরকার - এটি কিছু অদ্ভুত উত্সাহ তৈরি করছে।
isaacg

1

লুয়া 105

আমার সন্দেহ হয় এটি ফাটল ফেলার আগে খুব বেশি দিন চলবে না, তবে আমরা এখানে যাচ্ছি:

function f(a,b,c,d,e)
   t1=a%b-(e-2*(d-b))
   t2=(a+b+c+d+e)%e
   t3=(d+e)/2
   print(t1==0 and t2==t3 and"1"or"0")
end

(স্পষ্টতার জন্য স্পেস যুক্ত হয়েছে, তবে এটি গণনার অংশ নয়)


3, 7, 11, 15, 19বা6, 14, 22, 30, 38
ডেনিস

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

t1==0যখনই Sবাড়ছে এছাড়াও, উভয় শর্ত একজাতীয়; যদি Sএকটি সমাধান হয়, তাই হয় kS
ডেনিস

1

পার্ল - 256

sub t{($z,$j,$x,$g,$h)=@_;$t="3"x$z;@n=(7,0,split(//,$g),split(//,$h),4);@r=((2)x6,1,1,(2)x9,4,2,2,2);$u=($j+1)/2;for$n(0..$#r+1){eval{substr($t,$j,1)=$n[$n]};if($@){print 0; return}$j+=$r[$n]*$u}for(1..$x){$t=pack'H*',$t;}eval$t;if($@||$t!~/\D/){print 0}}

যুক্তি পরিচালনার জন্য আমাকে প্রচুর ত্রুটি করতে হয়েছিল এবং এটি অবশ্যই আরও অনেক কিছু ঘটাতে পারে। 1আপনি যখন সঠিক পাঁচটি নম্বর পাবেন এটি মুদ্রণ করবে । আশা করা যায় এটি 0অন্য সব কিছুর জন্য একটি মুদ্রণ করবে (ত্রুটি বা কিছুই হতে পারে, আমি জানি না)। যদি কেউ কোডটি উন্নত করতে বা এটি আরও গল্ফ করতে সহায়তা করতে চায় তবে বিনা দ্বিধায় সহায়তা করুন!


সাথে কল করুন:

t(1,2,3,4,5);

1

রুবি - 130

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

কেউ তাড়াতাড়ি সমাধান না করলে আরও ক্লু দেবে।

x=($*.map{|i|i.to_i+2**35}*'').to_i
(9**8).times{x=((x/4&1^x&1)<<182)+x/2}
p x.to_s(36)=="qnsjzo1qn9o83oaw0a4av9xgnutn28x17dx"?1:0

3
প্রাথমিক মান 781783, ইনক্রিমেন্ট 17982811
পিটার টেলর

@ পিটারটেলর আরগ ... =)
ভেক্টরাইজড

1

রুবি, 249

a=gets.scan(/\d+/).map(&:to_i)
a.each_cons(2).map{|x,y|x-y}.uniq[1]&&p(0)&&exit
r=(a[0]*a[1]).to_s(5).tr'234','(+)'
v=a[0]<a[1]&&!r[20]&&(0..3).select{|i|/^#{r}$/=~'%b'%[0xaa74f54ea7aa753a9d534ea7,'101'*32,'010'*32,'100'*32][i]}==[0]?1:0rescue 0
p v

মজা হবে. গণিত কার দরকার?


2
309, 77347, 154385, 231423, 308461তবে আমি এটি অনন্য বলে মনে করি না।
মার্টিন এন্ডার

হ্যাঁ, এটা না। একই রেজেক্সের জন্য (অর্থাত্ প্রথম দুটি সংখ্যার পণ্য), আমিও খুঁজে পাই 103, 232041, 463979, 695917, 927855এবং 3, 7966741, 15933479, 23900217, 31866955। এবং আমি আরও নিশ্চিত যে অতিরিক্ত +এস ব্যবহার করে অন্যান্য বৈধ regexes আছে ।
মার্টিন এন্ডার

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

আপনি যদি এটি ঠিক করার চেষ্টা করতে চান তবে অধিকারী কোয়ান্টিফায়ারগুলিকে অ্যাকাউন্টে নেওয়ার বিষয়টি নিশ্চিত করুন। আমি serোকানো ()বা অনুরূপ করে আরও বড়, সমতুল্য রেজেক্স তৈরি করতে পারি ।
মার্টিন ইন্ডার

1

সিজেম, 49 টি অক্ষর

"腕옡裃䃬꯳널֚樂律ࡆᓅ㥄뇮┎䔤嬣ꑙ䘿휺ᥰ籃僾쎧諯떆Ἣ餾腎틯"2G#b[1q~]8H#b%!

এটি অনলাইনে চেষ্টা করুন।

কিভাবে এটা কাজ করে

" Push a string representing a base 65536 number and convert it to an integer.            ";

"腕옡裃䃬꯳널֚樂律ࡆᓅ㥄뇮┎䔤嬣ꑙ䘿휺ᥰ籃僾쎧諯떆Ἣ餾腎틯"2G#b

" Prepend 1 to the integers read from STDIN and collect them into an array.               ";

[1q~]

" Convert that array into an integer by considering it a base 2**51 number.               ";

8H#b

" Push the logical NOT of the modulus of both computed integers.                          ";

%!

ফলাফলটি 1 হবে এবং কেবলমাত্র যদি দ্বিতীয় পূর্ণসংখ্যার প্রথমটির একটি ফ্যাক্টর হয়, যা দুটি প্রাইমের একটি পণ্য: একটি গোপন অনুক্রমের সাথে সম্পর্কিত এবং অন্যটি যা কোনও বৈধ ক্রমের সাথে সামঞ্জস্য করে না। সুতরাং, সমাধানটি অনন্য।

একটি 512 বিট পূর্ণসংখ্যা Factorizing নয় যে কঠিন, কিন্তু আমি আশা করি কেউ কিছু 72 ঘন্টা করা সক্ষম হবে। 320 বিট পূর্ণসংখ্যার ব্যবহার করে আমার পূর্ববর্তী সংস্করণটি ভেঙে গেছে

উদাহরণ রান

$ echo $LANG
en_US.UTF-8
$ base64 -d > flock512.cjam <<< IuiFleyYoeijg+SDrOqvs+uEkNaa76a/5b6L4KGG4ZOF76Gi46WE64eu4pSO5JSk5ayj6pGZ5Ji/7Zy64aWw57GD5YO+7I6n6Kuv65aG7qK04byr6aS+6IWO7rSn7YuvIjJHI2JbMXF+XThII2IlIQ==
$ wc -m flock512.cjam
49 flock512.cjam
$ cjam flock512.cjam < flock512.secret; echo
1
$ cjam flock512.cjam <<< "1 2 3 4 5"; echo
0

আমি 24 ঘন্টা ধরে এটিতে চালিত মিসভিউ পেয়েছি, তবে এটির স্ব-চাপিত সময়সীমা 276.51 সিপিইউ-ঘন্টা এবং আমি কেবল একটি সিপিইউ দিয়েছি আমি আশাবাদী নই।
পিটার টেলর

0

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

ইনপুটগুলিকে বেশ কয়েকটি ডেটা ধরণের রূপান্তর করে এবং পথে প্রতিটি ডেটা টাইপের সাথে প্রাসঙ্গিক কিছু ম্যানিপুলেশন করে। সময় লাগে এমন কারও পক্ষে মোটামুটি সহজেই বিপরীত হওয়া উচিত।

function encrypt(num)
{
    var dateval = new Date(num ^ (1024-1) << 10);

    dateval.setDate(dateval.getDate() + 365);

    var dateString = (dateval.toUTCString() + dateval.getUTCMilliseconds()).split('').reverse().join('');

    var result = "";

    for(var i = 0; i < dateString.length; i++)
        result += dateString.charCodeAt(i);

    return result;
}

function unlock(int1, int2, int3, int4, int5)
{
    return encrypt(int1) == "5549508477713255485850495848483249555749321109774324948324410511470" && encrypt(int2) == "5756568477713252485848495848483249555749321109774324948324410511470" && encrypt(int3) == "5149538477713248485856485848483249555749321109774324948324410511470" && encrypt(int4) == "5356498477713256535853485848483249555749321109774324948324410511470" && encrypt(int5) == "5748568477713251535851485848483249555749321109774324948324410511470" ? 1 : 0;
}

5
ব্রুট জোর করে:320689, 444121, 567553, 690985, 814417
টাইলো

@ টিইলো আপনি যদি এখনই থামেন তবে আমি মনে করি কোনও ক্র্যাকার আপনার স্কোরকে হারাতে পারে না। ;)
মার্টিন এন্ডার

2
@ মার্টিনবাটনার যতক্ষণ না ওপি-তে প্রতি 512 এর নিচে গল্ফ করা যায়, আমি মনে করি না এটি গণনা করে।
জিওবিটস

0

সি, 239 (ডেনিস দ্বারা ক্র্যাকড)

এখানে যানআমার আপডেট জমা দেওয়ার জন্য ।

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

p(long long int x){long long int i;x=abs(x);
for (i=2;i<x;i++) {if ((x/i)*i==x) return 0;}return 1;}
f(a,b,c,d,e){char k[99];long long int m;sprintf(k,"%d%d%d%d%d",e,d,c,b,a);
sscanf(k,"%lld",&m);return p(a)&&p(b)&&p(c)&&p(d)&&p(e)&&p(m);}

1
তো 0 0 0 0 0,?
ডেনিস ২

দীর্ঘশ্বাস যে একটি বাগ ছিল, কিন্তু হ্যাঁ যে কাজ করে।
অরবি

আমি একটি সংশোধিত সংস্করণ দিয়ে আপডেট করেছি যা আরও বেশি আকর্ষণীয় হওয়া উচিত;)
অরবি ২

সংশোধিত সংস্করণটি এখানে দেখুন
অরবি

0

সি, 212 অরবি দ্বারা - ক্র্যাকড

অরবির https://codegolf.stackexchange.com/a/36810/31064 এর কমপক্ষে দুটি কী রয়েছে:

13 103 193 283 373
113 173 233 293 353

অরবি যে পদ্ধতিটি আমি তা ক্র্যাক করার জন্য জিজ্ঞাসা করলাম। ফাংশন পি x%i==02 এবং x এর মধ্যে সমস্ত আই জন্য পরীক্ষা করে x প্রাইম কিনা তা পরীক্ষা করে (যদিও এর (x/i)*i==xপরিবর্তে ব্যবহার করে)x%i==0 ), এবং x একটি মৌলিক সংখ্যা হলে সত্যটি প্রত্যাবর্তন করে। ফাংশন এফ চেক করে যে ক, খ, সি, ডি এবং ই সবই প্রধান। এটি সংখ্যা মি, ই, ডি, সি, বি এবং একটি (সেই ক্রমে) এর দশমিক উপস্থাপনের একটি সংক্ষিপ্তকরণও প্রধান কিনা তাও পরীক্ষা করে। কীটি হ'ল এ, বি, সি, ডি, ই এবং এম সবই প্রধান।

সবুজ এবং তাও (2004) দেখায় যে কোনও দৈর্ঘ্যের কে জন্য প্রাইমগুলির অসীম অনেকগুলি গাণিতিক ক্রম রয়েছে, তাই আমাদের কেবল এই সিকোয়েন্সগুলি সন্ধান করতে হবে যা মি প্রাইম হওয়ার জন্যও সন্তুষ্ট হয়। -9.223372037e + 18 এবং 9.223372037e + 18 দ্বারা আবদ্ধ হওয়ার পরে দীর্ঘ সময় নিয়ে আমরা জানি যে সংক্ষিপ্ত স্ট্রিং দীর্ঘ দীর্ঘায়িত হওয়ার জন্য, সংখ্যাগুলি 9999 এর উপরের আবদ্ধ থাকে। সুতরাং অজগর স্ক্রিপ্টটি ব্যবহার করে সমস্ত উত্পন্ন করার জন্য সমস্ত প্রাইম <10000 এর মধ্যে গাণিতিক ক্রমগুলি এবং তারপরে তাদের বিপরীত সংমিশ্রণটি একটি প্রধান কিনা তা পরীক্ষা করে আমরা অনেকগুলি সম্ভাব্য সমাধান খুঁজে পেতে পারি can

কোনও কারণে আমি ভ্রান্ত ইতিবাচক নিয়ে এসেছি, তবে উপরের দুটিটি প্রোগ্রাম অনুযায়ী বৈধ। এছাড়াও সমাধানগুলি থাকতে পারে যেখানে ই positiveণাত্মক এবং বাকীগুলি ইতিবাচক (পি x এর মডুলাস ব্যবহার করে) তবে আমি সেগুলির সন্ধান করিনি।

আমি যে কীগুলি দিয়েছি তা সমস্ত গাণিতিক ক্রম কিন্তু অরবির স্ক্রিপ্টে আসলে ইনপুটগুলিকে একটি গাণিতিক ক্রম হতে হবে বলে মনে হয় না, সুতরাং সেখানে অবৈধ কীগুলিও থাকতে পারে।


0

ম্যাটল্যাব: দৃশ্যত অবৈধ

খুব সহজ, আপনাকে কেবল সঠিক এলোমেলো সংখ্যা তৈরি করতে হবে।

function ans=t(a,b,c,d,e)
rng(a)
r=@(x)rng(rand*x)
r(b)
r(c)
r(d)
r(e)
rand==0.435996843156676

এটি এখনও ত্রুটিযুক্ত হতে পারে, তবে এটি কোনও সমস্যা হওয়া উচিত নয়।


1
মন্তব্যগুলিতে এই পদ্ধতিটি নিষিদ্ধ। যদি প্রশ্নটিতে এটি উল্লেখ না করা থাকে তবে একটি সম্পাদনার প্রস্তাব দিন। দুঃখিত।
পিটার টেলর

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

0

ম্যাটল্যাব (সিম্বলিক সরঞ্জামবাক্স সহ), 173 টি অক্ষর

এটি কোনও সরকারী প্রবেশ নয় এবং কারও ক্র্যাকিংয়ের স্কোরকে গণনা করবে না, তবে এটি আপনাকে পাগল বৌদ্ধিক অধিকারের জাল দেবে। ;)

function b=L(S),c=sprintf('%d8%d',S(1),S(2)-S(1));b=numel(unique(diff(S)))==1&&numel(c)==18&&all(c([8,9])==c([18,17]))&&isequal(c,char(sym(sort(c,'descend'))-sym(sort(c))));

প্রতীকী সরঞ্জাম বাক্সটি শুধুমাত্র বড় পূর্ণসংখ্যার বিয়োগফল পরিচালনা করতে প্রয়োজনীয়।

এটিকে জোর করে কুকুর হওয়া উচিত, তবে আপনি যদি এর সাথে জড়িত সিরিজের সাথে পরিচিত হন তবে সমাধানটি তুচ্ছ।


0

পাইথন 2 (91)

সম্পাদনা: এটি অনুমোদিত নয় কারণ স্বতন্ত্রতার পক্ষে যুক্তিটি সম্ভাব্য। আমি হাল ছেড়ে দিলাম।


s=3
for n in input():s+=pow(n,s,7**58)
print s==0x8b5ca8d0cea606d2b32726a79f01adf56f12aeb6e

পছন্দ হিসাবে ইনপুট হিসাবে পূর্ণসংখ্যার তালিকা নেয় [1,2,3,4,5]

লুপটি বোঝা যাচ্ছে ইনপুটগুলিকে একটি বিরক্তিকর উপায়ে পরিচালনা করতে হবে, পরিমাণের পরিমাণ এবং ঘাঁটিঘাঁটি রেখে। ধারণাটি পৃথক লগের মতো, তবে গাণিতিক সরলতার পরিবর্তে অগোছালো জটিলতার সাথে। হতে পারে মডিউলসের সংমিশ্রণটি একটি দুর্বলতা, এই ক্ষেত্রে আমি এটির মতো কিছু করতে পারি 7**58+8

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

শুভ ক্র্যাকিং!


0

গণিত - 72

আমার স্ক্রিপ্টের 2 সংস্করণ, একই সংস্করণটির সাথে আমার সংস্করণ 1 এর উদ্দেশ্যে তৈরি করা হয়েছে।

এটি মূলত এর জন্য নেতিবাচক প্রাথমিক সংখ্যাগুলি সরিয়ে দেয় NextPrime

f=Boole[(p=Abs[NextPrime/@#])-#=={18,31,6,9,2}&&BitXor@@#~Join~p==1000]&

চলমান:

f[{1,2,3,4,5}] (* => 0 *)

ধরে নিলাম যে আপনার কোডটি কী করে আমি সঠিকভাবে বুঝতে পেরেছি, আমি বেশ কয়েকটি সমাধান পেয়েছি যার মধ্যে সবচেয়ে ছোটটি প্রাথমিক শব্দটি 9244115, ডেল্টা 25
পিটার টেলর

@ পিটারটেলর আমি নিশ্চিত করতে পারি যে এটি বৈধ।
মার্টিন ইন্ডার

@ পিটারটেলর সঠিক, অন্য কী 1073743739, 1073886396, 1074029053, 1074171710, 1074314367
টাইাইলো

0

পাইথন, 86 টি অক্ষর

a,b,c,d,e=input()
print 1if(a*c^b*e)*d==0xd5867e26a96897a2f80 and b^d==48891746 else 0

মত নম্বর লিখুন 1,2,3,4,5

> python 36768.py <<< "1,2,3,4,5"
0
> python 36768.py <<< "[REDACTED]"
1

এটি বৈধ জমা নেই; এটি ইনপুট গ্রহণ করে 1,0,1,63021563418517255630720,0
ডেনিস

@ ডেনিস ফিক্সড আমি আশা করি এটি এখন বৈধ।
নাস্তা

1
19960211, 31167202, 42374193, 53581184, 64788175
ডেনিস

@ ডেনিস সঠিক এবং দুর্দান্ত আমি মনে করি আমি গণিতে খুব দরিদ্র।
নাস্তা

2
@ ডেনিস, 63021563418517255630720কোনও 32-বিট নম্বর নয়।
পিটার টেলর

0

পাইথন, 78

(14 মিনিটের মধ্যে টাইাইলোর দ্বারা ফাটল)

মজা!

def L(a): return 1 if a==[(i-i**6) for i in bytearray(' ','utf-8')] else 0

ঠিক আছে, এটি এখানে সঠিকভাবে প্রদর্শিত হয় না :(

পাঁচটি সংখ্যার একটি তালিকা আশা করে, যেমন। [1,2,3,4,5]


1
খুব সহজ:[-481890276, -594823292, -728999970, -887503650, -1073741792]
টাইলো

ভেবেছিল তাই হয়েছে, ভাল হয়েছে :)
বৈদ্যুতিন সংক্ষিপ্ত বিবরণ

0

সিজেম, 37 টি অক্ষর (ভাঙা)

"煷➻捬渓类ⶥ땙ዶ꾫㞟姲̷ᐂ㵈禙鰳쥛忩蔃"2G#b[1q~]4G#b%!

এটি অনলাইনে চেষ্টা করুন।

কিভাবে এটা কাজ করে

আমার নতুন উত্তর দেখুন।

উদাহরণ রান

$ echo $LANG
en_US.UTF-8
$ base64 -d > flock.cjam <<< IueFt+Keu+aNrOa4k+exu+K2peuVmeGLtuq+q+Oen+Wnsu6AhMy34ZCC47WI56aZ6bCz7KWb5b+p6JSDIjJHI2JbMXF+XTRHI2IlIQ==
$ wc -m flock.cjam
37 flock.cjam
$ cjam flock.cjam < flock.secret; echo
1
$ cjam flock.cjam <<< "1 2 3 4 5"; echo
0

1
737262825 208413108 3974530688 3445680972 2916831257কাজ করে কিন্তু গাণিতিক অগ্রগতি নয়। 3 ঘন্টা 20 মিনিটে ফ্যাক্টরড দু'বছর আগে ইসি 2 তে 12 75 এর জন্য 512-বিট নম্বরগুলি স্পষ্টতই 72 ঘন্টার মধ্যে করণীয় ছিল, তাই আমি মনে করি এটি নিরাপদ হত।
পিটার টেলর

@ পিটারটেলর: এটি 1 প্রদান করে, তবে শেষ তিনটি পূর্ণসংখ্যা MAX_INT এর চেয়ে বড়, সুতরাং এটি কোনও বৈধ কী নয়। বলা হচ্ছে, 3 এইচ 20 মিটি বেশ চিত্তাকর্ষক। আমি যে অ্যালগরিদমটি ব্যবহার করছিলাম 256-বিট সেমিপ্রাইমের জন্য 16 ঘন্টা সময় নিয়েছিল ...
ডেনিস

আমি ভেবেছিলাম সেখানে কোথাও কিছু নেতিবাচক সংখ্যা থাকতে হবে কারণ ডেল্টা প্রায় সঠিক ছিল তবে বেশ নয় quite আমি এটি পেতে হবে।
পিটার টেলর

1
737262825 208413109 -320436607 -849286323 -1378136039
পিটার টেলর

@ পিটারটেলর: একটাই। আমি আশা করি 512 বিট সংস্করণটি দীর্ঘস্থায়ী হবে।
ডেনিস

-2

সি, 212 (ক্র্যাকড)

এটি আমার পূর্ববর্তী জমা দেওয়ার মতো একই ধারণা , আরও ভালভাবে গল্ফ করেছে, একটি বাগ সংশোধন হয়েছে যা 0,0,0,0,0 পেরিয়ে গেছে (বাগটি নির্দেশ করার জন্য ডেনিসকে ধন্যবাদ)। -Std = c99 দিয়ে সংকলন করুন।

#define L long long
p(L x){x=abs(x);for(L i=2;i<x;i++){if((x/i)*i==x)return 0;}return(x>1);}
f(a,b,c,d,e){char k[99];L m;sprintf(k,"%d%d%d%d%d",e,d,c,b,a);sscanf(k,"%lld",&m);
return p(a)&p(b)&p(c)&p(d)&p(e)&p(m);}

নেতিবাচক প্রাইমগুলির যে কোনও সিকোয়েন্স (গাণিতিক বা না) কাজ করবে। দুই উদাহরণ: -7 -37 -67 -97 -127,-157 -127 -97 -67 -37
ডেনিস

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