काफी चुनौती मैं


12

चुनौती

इस कार्य में आपको एक प्रोग्राम लिखना है जो एक पूर्णांक N (-1e9 <= N <0 && 0 <N = + 1e9) इनपुट लेगा , फिर T = (abs (N)% M + 1) की गणना करें , यदि एन सकारात्मक है फिर टी-वें चरित्र का उत्पादन शुरू करें और अपने स्रोत के अंत से टी-वें चरित्र का उत्पादन करें।

एम बाइट्स में आपके स्रोत का आकार है।

उदाहरण: यदि आपका स्रोत है:abcd efg/hi

इनपुट:

 2

आउटपुट:

 c

इनपुट :

-3

आउटपुट:

g 

इनपुट :

-9249678

आउटपुट:

b 

इनपुट :

-11

आउटपुट:

i 

प्रतिबन्ध

  • किसी भी फ़ाइल ऑपरेशन का उपयोग न करें
  • आप अपनी पसंद की किसी भी भाषा का उपयोग कर सकते हैं
  • बचने की कोशिश करें या बल्कि 1 बाइट सबमिशन का उपयोग न करें, क्योंकि यह सभी मज़े को खराब करता है।
  • सबसे छोटा समाधान जीत!

संपादित करें: समस्या कथन को संशोधित किया गया है ताकि समाधानों को एक यादृच्छिक परीक्षण-डेटा (और सभी समाधानों के लिए एक ही डेटा) का उपयोग करके आंका जा सके, इसलिए कृपया अपने समाधान को तदनुसार अपडेट करें, असुविधा के लिए क्षमा करें (यदि कोई हो)।


उदाहरण उदाहरण के परीक्षण के मामले में यदि इनपुट 5 या -7 है , तो आउटपुट एक एकल स्थान होना चाहिए: "" (उद्धरण के बिना)।
क्विक्सोटिक

क्या होगा यदि N 0 है?
आआआआआआआआआआआ आआआआआ

@ बिसनेस: इस ओर इशारा करने के लिए धन्यवाद, मैंने समस्या कथन को बदल दिया है, मुझे नहीं लगता कि $ 0 $ अब हो सकता है :-)
Quixotic

3
यह एक अजीब मानचित्रण होता रहता है, अब एक पात्र को 0 से 1: कूदने पर छोड़ दिया जाता है -2 -> / -1 -> h 0 -> i 1 -> b 2 -> c। लेकिन कम से कम मानचित्रण अब एकमत नहीं है।
आआआआआआआआआआआ आआआआआ आआआआआ

1
मुझे लगता &&है कि पहले वाक्य में ए का मतलब है ||?
पाओलो एबरमन

जवाबों:


12

x86 असेंबली (32-बिट लिनक्स, एटी एंड टी सिंटैक्स): 548

फ़ाइल के अंत में कोई नई पंक्ति नहीं:

pushl 8(%esp)
call atoi
mov $274,%ebx
cmp $0,%eax
jg a
dec %eax
a:cdq
idiv %ebx
cmp $0,%edx
jge p
add %ebx,%edx
p:add $s,%edx
cmp $s+273,%edx
jl l
push $34
mov %esp,%edx
l:mov $4,%eax
mov $1,%ebx
mov %edx,%ecx
mov $1,%edx
int $128
mov $0,%ebx
mov $1,%eax
int $128
s:.ascii "pushl 8(%esp)
call atoi
mov $274,%ebx
cmp $0,%eax
jg a
dec %eax
a:cdq
idiv %ebx
cmp $0,%edx
jge p
add %ebx,%edx
p:add $s,%edx
cmp $s+273,%edx
jl l
push $34
mov %esp,%edx
l:mov $4,%eax
mov $1,%ebx
mov %edx,%ecx
mov $1,%edx
int $128
mov $0,%ebx
mov $1,%eax
int $128
s:.ascii "

मैंने इसे संकलित किया gcc -nostartfiles -m32 qc1.S -o qc1

सत्यापन, सकारात्मक संख्या:

$ for i in $(seq 548 1095); do ./qc1 $i; done | cmp - qc1.S && echo Good
Good

सत्यापन, नकारात्मक संख्या:

$ for i in $(seq -1095 -548); do ./qc1 $i; done | cmp - qc1.S && echo Good
Good

संपादन को यह अजीब नंबरिंग योजना के बारे में सही लगा। मुझे लगता है। इसने लंबाई नहीं बदली।


+ 1, यह विधानसभा में ऐसा करने के लिए शानदार काम है, लेकिन एक छोटी सी बात मैंने परीक्षण को सर्वसम्मत बनाने के लिए समस्या को संशोधित किया है, इसलिए कृपया अपने समाधान को संशोधित करें जैसे बुद्धिमान, धन्यवाद।
19ix पर क्विक्सोटिक

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

1
@ डीबन: मैं वास्तव में नंबरिंग स्कीम के आसपास अपना सिर लपेटने में सक्षम नहीं हो सकता। क्या आप उचित सत्यापन लाइनें प्रदान कर सकते हैं? (समस्या कथन ठीक जगह होगा)
जेबी

+1, यह आपका दूसरा "अमान्य" asnwer यहाँ (कोड-गोल्फ वार) है,
जिसकी कीमत बढ़ रही है

@ ईएक्सएक्सएक्स: रिकॉर्ड के लिए, दूसरा पोस्ट किए जाने के समय मान्य था।
जेबी

10

Whaddaya जानते हैं, HQ9 + अपनी शानदार वापसी करता है!

Q

अनुक्रमण को परेशान करने की आवश्यकता नहीं है जब चुनने के लिए केवल एक चरित्र है!


क्या यह कोई इनपुट लेता है?
Quixotic

@ डिबन: यकीन:echo '-1' | hq9+ qc1
जेबी

क्षमा करें, यह मेरे लिए बहुत मायने नहीं रखता है, मेरे पास PHP में एक समान समाधान है, लेकिन इस प्रकार का समाधान सभी मज़ा को खराब नहीं करता है?
साभार

आप नहीं करते है यह स्वीकार करने के लिए यदि आप इसे में फिट बैठता है नहीं लगता है, तुम्हें पता है! आपको इसे उखाड़ना भी नहीं है। तुम भी इसे कम कर सकते हैं, हालांकि मैं व्यक्तिगत रूप से सराहना नहीं कर रहा हूँ ;-)
जेबी

नहीं, यह स्वीकार या अस्वीकृति के बारे में नहीं है, मैं सिर्फ एक बिंदु बता रहा था कि मैं इसे पसंद करूंगा क्योंकि मैं कुछ नया सीखता हूं :-)
क्विक्सोटिक

5

रूबी 1.9, 66 वर्ण

z=gets.to_i;s="z=gets.to_i;s=%p;$><<(s%%s)[z%%66]";$><<(s%s)[z%66]

वास्तव में एक सामान्य क्वीन के लिए ज्यादा अंतर नहीं है।

  • संपादित करें: अब नए चश्मे का अनुसरण करता है।

5

GolfScript 26 वर्ण

{':f`f'+1/\~.1<- 26%=}:f`f

गतिशील भाषाओं के आविष्कार से पहले Quines अधिक मजेदार थे।

संपादित करें: किन्नरों के लिए, यहां एक "वास्तविक" गोल्फस्क्रिप्ट क्वीन है, कोई `और ~ केवल इनपुट पार्स करने के लिए उपयोग किया जाता है।

विकलांग GolfScript 44 वर्ण

'"\x27"\+1/\~.1<- 22%='"\x27"\+1/\~.1<- 22%=

गौर करें कि यह कितनी बार एक ही स्ट्रिंग को दो बार दोहराया जाता है, इसलिए स्ट्रिंग शाब्दिक 'को इसके सामने हैक करने की आवश्यकता है और यह उपयोग के लिए तैयार है।


1
मैं GolfScript नहीं जानता, लेकिन आपकी टिप्पणी मुझे "फ़िले ऑपरेशन" की बाधाओं की श्रेणी के बारे में सोचने के लिए धक्का देती है। देखभाल करने के लिए अपनी पारी का विस्तार?
जेबी

जादू `ऑपरेटर के उपयोग से होता है, मूल रूप से मैं एक फ़ंक्शन को परिभाषित करता हूं, इसे एक चर में संग्रहीत करता हूं, फ़ंक्शन को इसे अपने स्वयं के स्ट्रिंग प्रतिनिधित्व में बदलता है (` करता है), और फिर मैं फ़ंक्शन को चलाता हूं, जो कार्य को तुच्छ रूप से पूरा कर सकता है। जैसा कि यह स्ट्रिंग में खुद के निर्दोष हैं।
आआआआआआआआआआआ आआआआआ

+1: से Quines were more fun before the invention of dynamic languages.:-)
क्विक्सोटिक

3
मुझे यकीन है कि नरक के रूप में विधानसभा भाषा में यह एक कोशिश नहीं होगी ...
जेबी

6
उसको खरोंचो। मैंने इसे विधानसभा की भाषा में आजमाया।
जेबी

2

पेंगुइन, 4 बाइट्स

सोर्स कोड में 4 नल बाइट्स होते हैं। इनपुट के बावजूद, आउटपुट इस प्रकार एक अशक्त बाइट होना चाहिए, जो एक द्वारा पूरा किया जाता है. निर्देश ।


0

छोटी बात, 94 90 59 52

उदाहरण के लिए, ऑब्जेक्ट क्लास में, संकलित करें:

q:n|s|s:=thisContext method source.^s at:n\\s size+1

फिर q भेजें: <n> किसी भी वस्तु के लिए; यहाँ एक पूर्णांक:

सत्यापन:

1 q: 0 -> q
1 q: 1 ->:
1 q: 2 -> n
...
1 q: -1 ->)
1 q: -2 ->)
1 q: -3 -> 1

या बेहतर:
(0 से: 100) इकट्ठा: [: n | 1 q: n] as: स्ट्रिंग
-> |')q:n|s m|s:=thisContext method source.m:=s size.^s at:(n>=0ifTrue:n-1\\m+1ifFalse:m-(0-n\\m))q:n|s m|'

(-1 downTo: -500) इकट्ठा: [: n | 1 q: n] as: स्ट्रिंग
-> |')m\\n-0(-m:eslaFfi1+m\\1-n:eurTfi0=>n(:ta s^.ezis s=:m.ecruos dohtem txetnoCsiht=:s|m s|n:q))m\\n-0('

नॉन-
स्मॉलटालर्स के लिए स्पष्टीकरण: यह कॉनटेक्स्ट वर्तमान स्टैक फ्रेम है, जिसे इसकी विधि के लिए कहा जा सकता है , जो इसके स्रोत के लिए कहा जा सकता है ।


0

रूनिक एनकाउंटर , 17 बाइट्स

"3X4+kSq:l͍iS%%@

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

बस प्रोग्राम स्ट्रिंग उत्पन्न करने के लिए मानक क्वीन का उपयोग करता है, फिर किसी दिए गए सूचकांक पर चरित्र प्राप्त करने के लिए स्ट्रिंग-आधारित मोड्यूलो ऑपरेटर 1 का उपयोग करता है (जो मूल रूप से नकारात्मक और सकारात्मक संकेतों का समर्थन करता है, पायथन द्वारा प्रभावित व्यवहार)।

  1. ,"विभाजन" कमांड कटौती टुकड़ों में स्ट्रिंग अप (के तार्किक पर्याप्त उलटा *स्ट्रिंग डुप्लिकेट xबार), +संयोजित करता है, और -हटा देगा xअंत से पात्रों (के एक तार्किक पर्याप्त उलटा +)। तो %कमांड की भूमिका होती है charAt(x): एकमात्र मूल स्ट्रिंग ऑपरेशन शेष (स्टैक जैसे ऑपरेशनों को उसी कमांड द्वारा संभाला जा रहा है जो स्टैक के साथ होता है; उदाहरण lके लिए स्टैक का आकार तो स्ट्रिंग की लंबाई है)।

0

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

f=n=>("f="+f).substr(n%28,1)

एक संशोधित क्वीन।

28 से बड़े मान को नियंत्रित किया जाता है %28, 0 से कम मूल्य को नियंत्रित किया जाता है .substr()

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