अस्पष्ट FizzBuzz गोल्फ [बंद]


50

कम से कम संभव obfuscated FizzBuzz कार्यान्वयन बनाएँ।

माना जाना चाहिए, इसे कम से कम एक को संतुष्ट करना चाहिए:

  1. "फ़िज़", "बज़" या "फ़िज़बज़" में से कोई भी शब्द शामिल नहीं है
  2. संख्या 3, 5, या 15 शामिल नहीं है।
  3. ऊपर के किसी भी भ्रामक तरीके से उपयोग करें।

याद रखें: लक्ष्य का पालन ​​करना छोटा और कठिन होना है।

कोड नमूना जिसने इस प्रश्न को प्रेरित किया है:

public class Default
{
        enum FizzBuzz
        {
            Buzz = 1,
            Fizz,
            FizzBuzz
        }
        public static void Main(string[] args)
        {
            byte[] foo = 
              Convert.FromBase64String("IAmGMEiCIQySYAiDJBjCIAmGMEiCIQySYA==");
            MemoryStream ms = new MemoryStream(foo);
            byte[] myByte = new byte[1];
            do
            {
                FizzBuzz fb;
                ms.Read(myByte, 0, 1);
                for (int i = 0; i < 4; i++)
                {
                    fb = (FizzBuzz)(myByte[0] >> (2 * i) 
                         & (int)FizzBuzz.FizzBuzz);
                    Console.Out.WriteLine( (((int)fb > 0) ? "" + fb : "" 
                         + ((ms.Position - 1) * 4 + i + 1)));
                }
            } while (ms.Position < ms.Length);
        }
}

बाउंड को कैसे जानते हैं? आपके समाधान में आपके पास ms.Length है, लेकिन कुछ समाधानों में ऐसी कोई बाध्यता नहीं है ...
Labo

मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि इसमें एक उद्देश्य वैधता मानदंड नहीं है, जिससे निर्विवाद रूप से यह तय करना असंभव हो जाता है कि क्या सबमिशन नियमों का पालन करता है।
डेनिस

जवाबों:


25

गोल्फस्क्रिप्ट, 75 69 65 60 59 वर्ण

100,{)6,{.(&},{1$1$%{;}{4*35+6875*25base{90\-}%}if}%\or}%n*

तो, आपको लगता है कि गोल्फस्क्रिप्ट अपने आप में पहले से ही सही है, सही है? खैर, सिर्फ कल्पना का पालन करने के लिए, मैंने तय किया कि कार्यक्रम में "फ़िज़", "बज़" नहीं होना चाहिए, न ही संख्या 3, 5, न ही 15. :-)

हां, 5 के गुणकों के साथ कुछ संख्याएं हैं, जैसे 25, 35, 90, 100 और 6875। क्या वे लाल झुंड हैं? आप तय करें। ;-)


2
हालांकि मैंने अपने सभी अन्य गोल्फस्क्रिप्ट सबमिशन के लिए कमेंट्री लिखी है, लेकिन कोई भी इसके लिए आगामी नहीं होगा। Rationale: chat.stackexchange.com/transcript/message/436819#436819 :-D
क्रिस

नंबर 3 और 5 आपके कोड में दिखाई देते हैं, इसलिए यह सही नहीं है !!!
लाबो

@ लिबो में से केवल एक मापदंड को संतुष्ट करने की आवश्यकता है, तीनों को नहीं। प्रश्न फिर से पढ़ें। :-)
क्रिस जस्टर-यंग

क्या यह मज़ाक हैं ? मैं उस पर कई घंटे बिताता हूं! हालांकि मैं अभी भी एक 58 वर्ण लंबा पायथन कोड प्राप्त करने में कामयाब रहा: p codegolf.stackexchange.com/a/63543/47040
Labo

4
@ लाबो: मैं अंक ३ और ५ देख सकता हूं लेकिन अंक ३ और ५ नहीं।
डेविड ओंगारो २ 0

65

जावास्क्रिप्ट 97 वर्ण - कोई संख्या नहीं

नंबर? जब आपके पास जावास्क्रिप्ट हो तो नंबर की जरूरत किसे है!

a=b=!![]+![],a--,c=b+b;while(++a)e=!(a%(c+c+b)),alert(!(a%(c+b))?e?"FizzBuzz":"Fizz":e?"Buzz":a);

नोट: एक अनंत लूप है जो आपको अनुक्रम को सचेत करेगा।

बोनस (666 चार्ट )

  • नंबर नहीं है
  • कोई पत्र नहीं (केवल zforपूरी स्क्रिप्ट में उपयोग किया गया है)

_=$=+!![];$__=((_$={})+'')[_+$+_+$+_];__$=((![])+'')[$];_$_=((_$={})+'')
[_+$+_+$+_+$];____=[][$__+((_$={})+'')[$]+(($)/(![])+'')[$]+$__+__$+_$_];$__$=(!![]+"")
[$+$+$]+([][(![]+"")[$+$+$]+(+[]+{})[$+$]+(!![]+"")[$]+(!![]+"")[+[]]]+"")[($+$)+""+
($+$+$)]+(![]+"")[$]+(![]+"")[$+$];$_$_=____()[$-$][$__$]("\"\\"+($)+($+$+$+$+$+$+$)+
($+$)+"\"");_$=(![]+'')[$-$]+([][[]]+[])[$+$+$+$+$]+$_$_+$_$_;$_=(_+{})[$+$+$]+(!![]+'')
[_+$]+$_$_+$_$_;_--,$$=$+$;____()[$-$][$__$]((![]+"")[+[]]+(+[]+{})[$+$]+(!![]+"")[$]+
"(;++_;)$$$=!(_%("+($$+$$+$)+")),____()[+[]][__$+((![])+'')["+($+$)+"]+((!![])+'')["+
($+$+$)+"]+((!![])+'')[+!![]]+_$_](!(_%("+($$+$)+"))?$$$?_$+$_:_$:$$$?$_:_);");

18
असली प्रोग्रामर कोड दूसरे की तरह ही होते हैं।

9
@ M28: हाँ। यह नौकरी की सुरक्षा का एक तरीका है ... 'इस कोड को बनाए रखने वाले किसी व्यक्ति को ढूंढना सबसे आसान काम नहीं होगा।
एंडी

1
आप खिड़की ["eval"] ("" \\ '+ 1 + 7 + 2 +' '') का उपयोग कर सकते हैं z
नब

3
@stevether यह ज्यादातर दुर्व्यवहार प्रकार के रूपांतरण के बारे में है (उदाहरण: +!![]जैसा है 1और ({}+"")[5]जैसा है c) और पहुंच विधि (उदा .: समान है ) का दुरुपयोग करने वाले सरणी संकेतन window['eval'](के समान है eval(
HoLyVieR

1
यदि मैंने कभी देखा है तो उचित वर्ण गणना।
कैप्टनक्रिग

26

पायथन - 78 वर्ण

i=0
while 1:i+=1;print"".join("BzuzzizF"[::2*j]for j in(-1,1)if 1>i%(4+j))or i

1
मुझे समझने में 10 मिनट लगे कि आपने वहां क्या किया। अच्छा और मुड़ा हुआ।
ट्रूफा

23

पोस्टस्क्रिप्ट, 96 बाइट्स

तो यह एक यादृच्छिक कचरा जैसा दिखता है।

1<~0o0@eOuP7\C+tf6HS7j&H?t`<0f>,/0TnSG01KZ%H9ub#H@9L>I=%,:23M].P!+.F6?RU#I;*;AP#XYnP"5~>cvx exec

उपयोग: $ gs -q -dNODISPLAY -dNOPROMPT file.ps


5
मैं शर्त लगाता हूं कि मैं मर जाता हूं ।
kaoD

23

C ++: 886 चार्ट

मैंने 'फ़िज़' और 'बज़' को छिपाने की कोशिश की है। क्या आप उन्हें हाजिर कर सकते हैं?

#include <iostream>
#define d(a,b) a b
#define _(a,b) d(#b,#a)
#define b(b) _(b,b)
#define y _(i,f)c
#define x _(u,b)c
#define c b(z)
#define i int
#define p main
#define s char
#define q 810092048
#define h for
#define m 48
#define a ++
#define e ==
#define g 58
#define n 49
#define l <<
#define oe std::cout<<
#define v '\n'

int  p   (i,  s*t     ){i   j  =   q;h   (*(
i    *     )    t     =  m  ;  2     [     t
]?   0    :    1      ??(   t  ]    ?     a
1    [   t    ]       e  g  ?  1   [     t
]    =   48,  ++0     ??(    t]e   g?0   ??(

t]=  n   ,1[  t]=
2    [     t    ]
=m   :    1    :
1    :   a    0
[    t   ??)  ==g

?0[   t  ]   =49   ,1[
t  ]  =  m     :     1
;j=   (  j    /     4
)  |  (  (   j     &
3)l    28)   )oe   (j&

3?j  &   1?j  &2?
y    x     :    y
:x   :    t    )
l    v   ;    }
i    f   =m&  ~g;

5
कि मेरे शाख को भ्रमित करता है।
मतीन उल्हाक

2
मुझे लगता है कि आप का मतलब था झिल्ली
Korvin Szanto

16

डीसी ( 256 255 बाइट्स)

यहाँ यह है, मैंने पत्रों के अलावा कुछ भी छिपाने के लिए (बल्कि मैं खुद को ऐसा कह सकता हूं) अगर कोशिश की, और +-[];:=(जो कि महत्वपूर्ण और असंभव हैं)। यह लगभग 8482 या मेरी मशीन पर मिलने के बाद सेगफॉल्ट करता है, लेकिन यह है कि रिकर्स लागू करने के तरीके से संबंधित स्टैक मुद्दों के साथ करना है। इसका समाधान खुद ही सही है। 255 बाइट्स यदि आप व्हाट्सएप को हटा दें (पढ़ने में आसानी के लिए शामिल हैं) का आनंद लें:

Izzzdsa+dsbrsc+dsdd+sozdsezzsm+s
nloddd++splbz++ddaso+dln-dstsqlm
d+-sr[PPPP]ss[IP]su[lpdlqlrlsxlu
x]lm:f[lpdltdI+lm+rlblm+-lsxlux]
ln:f[[]sulm;fxln;f[IP]sux]la:f[;
fsk]sg[lmlgx]sh[lnlgx]si[lalgx]s
j[lc[lcp]sklerldlolclerlblolcler
lalox=hx=ix=jlkxclcz+scllx]dslx

Dc के लिए +1। निःसंदेह भी, निश्चित रूप से, यह विशेष रूप से पठनीय नहीं है
जेसी मिलिकन

12

यह एक चाल का उपयोग करते हुए एम्बेड करने के लिए थोड़ा मुश्किल था:

रूबी, 4312 चरस

https://gist.github.com/dzucconi/1f88a6dffa2f145f370f

eval("                                                 

















































                                                                                                                             ".split(/\n/).map(&:size).pack("C*"))

यह भी कैसे काम करता है?
Addison

._। यह कैसे काम करता है ...
TuxCrafting

"आपके प्रोग्राम का स्ट्रिंग" .unpack ("C *")। मैप {| x | "" * x} .join ("\ n")
dzuc

11

ब्रेनफक - 626 656

+[[>+>+<<-]>>>+++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]<[<+>>+<-]>>[-]+++>[
<<<+>>>-]>[-]<<<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]>>[-]<<<<[>+<-]>>>[<
<<+>>>-]<<[>>+<<-]<[>+>+<<-]>[<+>-]+>[<->[-]]<[>>>[-]>[-]<>+++++++[<++
++++++++>-]<.>+++++[<+++++++>-]<.+++++++++++++++++..[-]+<<<-]<[-]>>>[<
+<+>>-]<[>+<-]+<[>-<[-]]>[>>>[-]>[-]<>++++++[<+++++++++++>-]<.>+++++[<
++++++++++>-]<+.+++++..[-]<+<<-]>[-]>[<+<+>>-]<[>+<-]+<[>-<[-]]>[<<<<[
>+>>>>+<<<<<-]>[<+>-]>>>>>>--[<->+++++]<--<[->-[>+>>]>[+[-<+>]>+>>]<<<
<<]>[-]<-[>-<+++++]>--->>[<<[<+>>>+<<-]<[>+<-]>>>.[-]]++++++++++<[->-[
>+>>]>[+[-<+>]>+>>]<<<<<]>[-]<<[>+>>>+<<<<-]>>>>.[-]<<<[>>+<<-]>>.[-]<
<<<<-]<<<++++++++++.[-]<+]

1 से 255 तक जाता है


1
यह वास्तव में BuzzFizz करता है। यह FizzBuzz% 15 के लिए सही हो जाता है, लेकिन यह% 3 और% 5 को स्वैप कर देता है। मैं इसे ठीक करने की कोशिश कर सकता हूं, लेकिन अभी के लिए मेरा दिमाग आधिकारिक तौर पर F'ed है
captncraig

2
30 की लागत से फिक्स्ड। इसे और अधिक प्रयास के साथ पूरा किया जा सकता था, लेकिन मैंने पहले ही इस पर पर्याप्त समय बर्बाद कर दिया है।
कैप्टनक्रिग

9
"बेकार" एक मजबूत शब्द है ...
Claudiu

10

ब्रेनफक, 708 वर्ण

++++++++++[>++++++++++<-]>>++++++++++>->>>>>>>>>>>>>>>>-->+++++++[->++
++++++++<]>[->+>+>+>+<<<<]+++>>+++>>>++++++++[-<++++<++++<++++>>>]++++
+[-<++++<++++>>]>>-->++++++[->+++++++++++<]>[->+>+>+>+<<<<]+++++>>+>++
++++>++++++>++++++++[-<++++<++++<++++>>>]++++++[-<+++<+++<+++>>>]>>-->
---+[-<+]-<[+[->+]-<<->>>+>[-]++[-->++]-->+++[---++[--<++]---->>-<+>[+
+++[----<++++]--[>]++[-->++]--<]>++[--+[-<+]->>[-]+++++[---->++++]-->[
->+<]>>[.>]++[-->++]]-->+++]---+[-<+]->>-[+>>>+[-<+]->>>++++++++++<<[-
>+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>>[-]>>>++++++++++<[->-[>+>>]>[+[-<+>]>
+>>]<<<<<]>[-]>>[>++++++[-<++++++++>]<.<<+>+>[-]]<[<[->-<]++++++[->+++
+++++<]>.[-]]<<++++++[-<++++++++>]<.[-]<<[-<+>]+[-<+]->>]+[-]<<<.>>>+[
-<+]-<<]

यह कैसे काम करता है इसका विवरण मेरे कोड समीक्षा प्रश्न में उपलब्ध है


9

हास्केल - 147 142 138 वर्ण

fi=zz.bu
bu=zz.(:).(++"zz")
[]#zz=zz;zz#__=zz
zZ%zz=zZ zz$zZ%zz
zz=(([[],[]]++).)
z=zipWith3(((#).).(++))(bu%"Fi")(fi%"Bu")$map show[1..]

कोड 19 वर्णों की तुलना में अधिक लंबा है, लेकिन मुझे लगता है कि सौंदर्यशास्त्र इसके लायक था! मेरा मानना ​​है कि सभी तीन "उद्देश्य" संतुष्ट हैं।

> take 20 z
["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14",
"FizzBuzz","16","17","Fizz","19","Buzz"]

नमस्ते, मैं आपके कोड को समझने की कोशिश करता हूं, लेकिन मैं इसे चलाने में असमर्थ हूं! समारोह zZ' is applied to six arguments, but its type (a0 -> b0 -> c0) -> [a0] -> [b0] -> [c0] 'में केवल तीन हैं
RobAu

और मैं, जबकि इसे चलाने में सक्षम हो, केवल मिलता है ["1","2","3","4","5","6"...]
आर्टीकॉम

फिक्स्ड - सही संस्करण अभी भी मेरी डिस्क पर था ... बहुत पहले पाठ को गलत तरीके से चिपकाया जाना चाहिए!
MtnViewMark

कृपया यह निर्दिष्ट करें कि इसे 19 वर्णों से छोटा कैसे किया जा सकता है, या कोड दिखा सकते हैं। मैं उत्सुक हूं और मेरे पास कोई विचार नहीं है
गर्वित हैकेलर

: वहाँ 2 पत्र नामों में से 19 occurrances हैं bu, fi, zz, और zZ। इन्हें एक अक्षर के नाम से छोटा किया जा सकता है।
माउंटन व्यूमार्क

8

S, 33 चार्ट्स / 92 बाइट्स (गैर-प्रतिस्पर्धी)

ѨŃ(1,ṥ)ć⇀ᵖɘƃ႖סР깜 #ē($%3⅋4,$%5?4:8)⋎$⸩

Try it here (Firefox only).

यह भाषा वैसे भी सीमित स्रोत चुनौतियों के लिए ओपी है।


6

जावास्क्रिप्ट, 469 बाइट्स

यह शायद सबसे मजेदार था जो मैंने कभी किया है।

z=0;_=(function(){b=0;window[0xA95ED.toString(36)]((function(){yay="&F bottles of beer on the wall, &F bottles of beer. Take one down, pass it around, &z Bottles of beer on the wall.";return atob("eisrOyAg") + "console.log(((function(y){if((y%0xf)==0){return [1,72,84,84,86,78,84,84]}else if(y%0b11==0){return [1,72,84,84]}else if(y%0b101==0){return [86,78,84,84]}else{b=1;return [y]}})(z).map(function(x){return b==0?yay[x]:x}) ).join(''))"})())});setInterval(_,1000);

इसे यहाँ आज़माएँ


डांग, मुझे सिर्फ एहसास हुआ कि उद्देश्य का पालन करना कम और कठिन होना था ... क्षमा करें: पी
एकोक्विक्लेर

+1 कम होने से चूक गए, लेकिन कम से कम आपके पास वहाँ
फिजूल

4

रूबी - 165 वर्ण

(1..100).each{|i|i%0xF==0? puts(["46697A7A42757A7A"].pack("H*")):i%(0xD-0xA)==0? puts(["46697A7A"].pack("H*")):i%(0xF-0xA)==0? puts(["42757A7A"].pack("H*")):puts(i)}

कोड गोल्फ में यह मेरा पहला प्रयास था। मुझे बहुत मज़ा आया। =)


4

पर्ल 6 (52 बाइट्स)

say "Fizz"x$_%%(2+1)~"Buzz"x$_%%(4+1)||$_ for 1..100

मुझे यहाँ एक स्पष्टीकरण देना चाहिए। यह सबसे खराब नियम का दुरुपयोग है जो मैंने ऐसे कार्य में किया है। मुझे पता है कि आप क्या कह रहे हैं - स्पष्ट Fizzऔर Buzzयहाँ है। लेकिन नियमों पर एक नजर डालते हैं।

माना जाना चाहिए, इसे कम से कम एक को संतुष्ट करना चाहिए :

इससे बचा जाता है 3, 5और 15। इसलिए, यह वैध और वास्तव में संक्षिप्त समाधान है।


3

स्काला, 295 वर्ण

object F extends Application{var(f,i,z)=("",('z'/'z'),"FBiuzzzz");while(i<(-'b'+'u'+'z'/'z')*('¥'/'!')){if(i%(-'f'+'i'/('z'/'z'))==0)f+=z.sliding(1,2).mkString;if(i%((-'b'+'u'+'z'/'z')/('f'/'f'+'i'/'i'+'z'/'z'+'z'/'z'))==0)f+=z.drop(1).sliding(1,2).mkString;if(f=="")f+=i;println(f);i+=1;f="";}}

3

सी ( 237 209 अक्षर)

#include<stdlib.h>
#define e printf  
a=50358598,b=83916098,c=1862302330;_(m,n){return(m%((c&n)>>24))
||!(e(&n)|e(&c));}main(_);(*__[])(_)={main,exit};main(i){_(i,a)
&_(i,b)&&e("%i",i);e("\n");__[i>=100](++i);}

हालांकि मुझे यकीन नहीं है कि यह सी मानक के अनुरूप है :)
यह काम करता है, हालांकि। लिनक्स पर जीसीसी का उपयोग कर, वह है।


3

पायथन 3 - 338

import sys
def fibu():
        (F,I,B,U),i,u,z=sys._getframe(0).f_code.co_name,0xf,0xb,lambda x,y:x%((i//u)+(i^u))==u>>i if y>u else x%(((u<<(u>>2))&i)>>(u>>2))==i>>u
        A,RP = "",chr(ord(U)+((i//u)+(i^u)))*2
        for x in range(100):print(x if not (z(x,u)or z(x,i))else A.join((F+I+RP if z(x,u)else A,B+U+RP if z(x,i)else A)))
fibu()

यह मेरा पहला गोल्फ है। सबसे छोटा नहीं है, लेकिन यह बहुत बदसूरत है! निषिद्ध संख्या या स्ट्रिंग शाब्दिक में से कोई भी नहीं। फ़ेरप, बर्प!


3

अजगर - 157

from itertools import cycle as r
c=str.replace
[c(c(c(z+y,'x','fix'),'y','bux'),'x','zz').strip() or x for z,y,x in zip(r('  y'),r('    x'),range(1,101))]

काफी कम नहीं है, लेकिन मुझे उम्मीद है कि पाठक शुद्ध कार्यात्मक शैली और मनमाने ढंग से लंबी गिनती के लिए एक्स्टेंसिबिलिटी की सराहना करेंगे।


3

के, 155

{m:{x-y*x div y};s:{"c"$(10-!#x)+"i"$x};$[&/0=m[x]'(2+"I"$"c"$49;4+"I"$"c"$49);s"<`rs<pvw";0=m[x;2+"I"$"c"$49];s"<`rs";0=m[x;4+"I"$"c"$49];s"8lrs";x]}'!100

मैं इसे थोड़ा सा गोल्फ सकता था, लेकिन मैं इसे और अधिक मोटे होना चाहता था।


3

पायथन 2 - 54 वर्ण

i=0
while 1:i+=1;print'FizzBuzz'[i%~2&4:12&8+i%~4]or i

पायथन 3 - 56 वर्ण

i=0
while 1:i+=1;print('FizzBuzz'[i%~2&4:12&8+i%~4]or i)

यदि आप 'FizzBuzz' नहीं दिखाना चाहते हैं:

पायथन 2 - 58 वर्ण

i=0
while 1:i+=1;print' zzuBzziF'[12&8+i%~2:i%~4&4:-1]or i

पायथन 3 - 60 वर्ण

i=0
while 1:i+=1;print(' zzuBzziF'[12&8+i%~2:i%~4&4:-1]or i)

या पायथन के साथ गोल्फस्क्रिप्ट को कैसे हराया जाए;)


पहले दो कुछ नहीं कर रहे हैं, क्योंकि i=0इसका मतलब है कि whileलूप कभी दर्ज नहीं किया गया है।
xnor

योग्य मैंने अपने परीक्षण संस्करण का उपयोग किया, जिसमें स्थिति है i<20
लाबो

लेकिन अब यह काम करता है :)
लाबो

यह मूल FizzBuzz समस्या के अनुसार 100 पर नहीं रोकना चाहिए?
डेविड ओंगारो

2

जावास्क्रिप्ट 111 चार्ट - कोई महत्वपूर्ण संख्या नहीं

a=b=c=0;while(a++<99)document.write((b>1?(b=0,"Fizz"):(b++,""))+(c==4?(c=0,"Buzz"):(c++,""))+(b*c?a:"")+"<br>")


2

सी # - 218 वर्ण

using System;class D{static void Main(){int l,i,O=1;l++;string c="zz",a="fi",b="bu";l++;l++;i=l;i++;i++;for(;O<101;O++)Console.WriteLine(((O%l)>0&&1>(O%i))?a+c:(1>(O%l)&&(O%i)>0)?b+c:(1>(O%l)&&1>(O%i))?a+c+b+c:O+"");}}

यदि मुझे अन्य संख्याओं की तरह शुरू किया जा सकता है तो छोटा किया जा सकता है: (कुल 210 वर्ण)

using System;class D{static void Main(){int l=1,i,O=1;string c="zz",a="fi",b="bu";l+=2;i=l;i+=2;for(;O<101;O++)Console.WriteLine(((O%l)>0&&1>(O%i))?a+c:(1>(O%l)&&(O%i)>0)?b+c:(1>(O%l)&&1>(O%i))?a+c+b+c:O+"");}}

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


2

यह बिल्कुल गोल्फ नहीं है, इसकी लगभग 120 लाइनें हैं।

मैंने सोचा कि मैं कुछ ऐसा करूंगा जिसने C ++ मेमोरी मैनेजमेंट के साथ अपरिभाषित व्यवहार के लिए सभी मज़ेदार संभावनाओं का लाभ उठाया।

#include <iostream>
#include <string>

using namespace std;

class Weh;
class HelloWorld;

class Weh
{
public:

    string value1;
    string value2;
    void (*method)(void * obj);

    Weh();

    string getV1();

    static void doNothing(void * obj);
};

class HelloWorld
{
public:
    static const int FOO = 1;
    static const int BAR = 2;
    static const int BAZ = 4;
    static const int WUG = 8;

    string hello;
    string world;
    void (*doHello)(HelloWorld * obj);

    HelloWorld();

    void * operator new(size_t size);

    void tower(int i);
    const char * doTower(int i, int j, int k);

    static void doHe1lo(HelloWorld * obj);
};

Weh::Weh()
{
    method = &doNothing;
}

void Weh::doNothing(void * obj)
{
    string s = ((Weh *) obj)->getV1();
    ((HelloWorld *) obj)->tower(1);
}

string Weh::getV1()
{
    value1[0] += 'h' - 'j' - 32;
    value1[1] += 'k' - 'g';
    value1[2] += 'u' - 'g';
    value1[3] = value1[2];
    value2 = value1 = value1.substr(0, 4);

    value2[0] += 'd' - 'h';
    value2[1] += 'w' - 'k';
    value2[2] = value1[2];
    value2[3] = value1[3];

    return "hello";
}

void * HelloWorld::operator new(size_t size)
{
    return (void *) new Weh;
}

HelloWorld::HelloWorld()
{
    hello = "hello";
    world = "world";
}

void HelloWorld::doHe1lo(HelloWorld * obj)
{
    cout << obj->hello << " " << obj->world << "!" << endl;
}

void HelloWorld::tower(int i)
{
    doTower(0, 0, i);
    tower(i + (FOO | BAR | BAZ | WUG));
}

const char * HelloWorld::doTower(int i, int j, int k)
{
    static const char * NOTHING = "";
    int hello = BAR;
    int world = BAZ;
    int helloworld = FOO | BAR | BAZ | WUG;

    if ((hello & i) && (world & j))
        cout << this->hello << this->world << endl;
    else if (hello & i)
    {
        cout << this->hello << endl;
        cout << doTower(0, j + 1, k + 1);
    }
    else if (world & j)
    {
        cout << this->world << endl;
        cout << doTower(i + 1, 0, k + 1);
    }
    else
    {
        cout << k << endl;
        cout << doTower(i + 1, j + 1, k + 1);
    }

    return NOTHING;
}

int main()
{
    HelloWorld * h = new HelloWorld;
    h->doHello(h);
}

2

रूबी - 89 वर्ण

puts (0..99).map{|i|srand(1781773465)if(i%15==0);[i+1,"Fizz","Buzz","FizzBuzz"][rand(4)]}

मैं प्रतिभा के इस टुकड़े का श्रेय नहीं ले सकता, लेकिन मैं इस सवाल को अपने पसंदीदा कार्यान्वयन के बिना नहीं छोड़ सकता था :)

ऊपर कार्यान्वयन डेविड ब्रैडी द्वारा लिखा गया था और यह फ़िज़बज़ रूबी रत्न से है। यहाँ स्रोत कोड से स्पष्टीकरण दिया गया है:

इस तथ्य का उपयोग करता है कि रूबी की रैंड में बीज 1781773465 बीज FizzBuzz प्रगति में दोहराता 15-अंकीय अनुक्रम उत्पन्न करेगा। यहाँ आधार यह है कि हम चतुराई से एक पूर्वसूचक अनुक्रम देने में रैंड को छल करना चाहते हैं। (यह ध्यान रखना दिलचस्प है कि हम वास्तव में सूचना के आकार में कमी हासिल नहीं करते हैं। 15-अंकों के अनुक्रम को बिट जोड़े के रूप में एन्कोड किया जा सकता है और 30-बिट संख्या में संग्रहीत किया जा सकता है। 1781773465 से 31 बिट्स भंडारण की आवश्यकता होती है, हमारी चतुराई है। वास्तव में हमें भंडारण क्षमता का थोड़ा सा खर्च करना चाहिए। लेकिन यह नहीं है कि बिंदु!

रूबी - 87 वर्ण

puts (0..99).map{|i|srand(46308667)if(i%15==0);["FizzBuzz","Buzz",i+1,"Fizz"][rand(4)]}

यहां एक अलग संस्करण है जो एक छोटे बीज का उपयोग करता है लेकिन लुकअप तालिका एक अलग क्रम में है। यहाँ स्रोत कोड से स्पष्टीकरण दिया गया है:

पहला कार्यान्वयन (89 वर्ण) 0 = int, 1 = Fizz, 2 = Buzz, 3 = FizzBuzz के विशिष्ट क्रम का पालन करता है। यदि ऑर्डर बदला जाता है, तो एक छोटी कुंजी ढूंढना संभव हो सकता है। 24 संभावित क्रमपरिवर्तन हैं। यदि हम यह मान लें कि क्रमपरिवर्तन 2 * 31 स्थान पर समान रूप से वितरित किए जाते हैं , और लगभग 50% संभावना है कि यह एक "लगभग आधे रास्ते" है, तो हम एक सभ्य आत्मविश्वास (20-50% कहते हैं) के साथ मान सकते हैं कि एक है लगभग कहीं भी 1.4e + 9 (2 * 28 से नीचे )। यह अधिक लाभ नहीं है, लेकिन यह 30 बिट्स की जानकारी को कम "छिपाने" के लिए रैंड के पूर्वनिर्धारित अनुक्रम को प्रदर्शित करता है, जो कि 30 बिट्स का है।

परिणाम: क्रमपरिवर्तन [3,2,0,1] 46308667 बीज पर प्रकट होता है, जिसे 26 बिट्स में संग्रहीत किया जा सकता है।


2
बहुत प्यारा है, लेकिन इसमें शाब्दिक "फ़िज़", "बज़" आदि शामिल हैं, इसलिए यह नियमों के अनुसार मान्य नहीं है
एरे ब्रासेउर

2

पायथन, 1 पंक्ति, 376 वर्ण

pep8-E501 की अनदेखी की। केवल python3 में काम करता है।

print(*((lambda x=x: ''.join(chr(c) for c in (102, 105)) + (2 * chr(122)) + ''.join(chr(c) for c in (98, 117)) + (2 * chr(122)) + '\n' if x % (30 >> 1) == 0 else ''.join(chr(c) for c in (102, 105)) + (2 * chr(122)) + '\n' if x % (6 >> 1) == 0 else ''.join(chr(c) for c in (98, 117)) + (2 * chr(122)) + '\n' if x % (10 >> 1) == 0 else str(x) + '\n')() for x in range(1, 101)))

2

वैकल्पिक रूबी (126 वर्ण)

(1..100).map{|i|(x="\xF\3\5\1Rml6ekJ1eno=".unpack('C4m'))[-1]=~/(.*)(B.*)/
[*$~,i].zip(x).map{|o,d|i%d>0||(break $><<o<<?\n)}}

लघु और अस्पष्ट, बस हमें यह कैसे पसंद है। 3 और 5 वास्तव में हैं, लेकिन पूर्णांक शाब्दिक नहीं हैं, इसलिए मुझे लगता है कि अभी भी मायने रखता है।

ध्यान दें कि यह यहाँ पर शाब्दिक 'फ़िज़', 'बज़', 'फ़िज़बज़' के बिना सबसे छोटा रूबी संस्करण है।


1

स्क्वीक (4.4) स्मालटाक 206 बाइट्स

|f i zz b u z|z:=''.b:=28r1J8D0LK. 1to:100do:[:o|0<(f:=(i:=(zz:=b\\4)//2*4)+(u:=zz\\2*4))or:[z:=z,o].b:=zz<<28+(b//4).z:=z,((z first:f)replaceFrom:1to:f with:28r1A041FHQIC7EJI>>(4-i*u*2)startingAt:1),'
'].z

या कम स्पष्ट संदेशों के साथ एक ही एल्गोरिदम, समान वर्ण

|l f i zz b u z|z:=#[].b:=36rDEB30W. 1to:100do:[:o|0<(f:=(i:=(zz:=b\\4)//2)+(u:=zz\\2)*4)or:[z:=z,('',o)].b:=zz<<28+(b//4).l:=36r2JUQE92ONA>>(1-u*i*24).1to:f do:[:k|z:=z,{l-((l:=l>>6)-1<<6)}].z:=z,'
'].'',z

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

ध्यान दें कि यदि आप किसी कार्यक्षेत्र में निष्पादित करते हैं, तो आप घोषणाओं को छोड़ सकते हैं। Fi zz buz | और 14 वर्ण प्राप्त करें।

यदि हम 357 वर्ण (एकल पत्र संस्करण के साथ 315) ले सकते हैं, तो तुच्छ #to: do: loop से बचना बेहतर है:

|fizz buzz if f fi zz b u bu z|f:=fizz:=buzz:=0.z:=#[].b:=814090528.if:=[:i|i=0or:[fi:=28.zz:=27<<7+i.u:=26.(fizz:=[zz=0or:[z:=z,{(u:=u//2)\\2+1+(zz+((fi:=fi//2)\\2+2-(zz:=zz//8)*8)*4)}.fizz value]])value]].(buzz:=[(f:=f+1)>100or:[(fi:=(zz:=b\\4)//2*17)+(bu:=zz\\2*40)>0or:[z:=z,('',f)].b:=zz<<28+(b//4).if value:fi;value:bu.z:=z,'
'.buzz value]])value.'',z

1

हस्केल 226 बाइट्स, लेआउट के लिए व्हाट्सएप सहित;)

z=[fI$ (++)            \ 
(fi zz 1 "Fi" )        \  
(fi zz 2 "Bu" )        \ 
:[show zz]  | zz<-[1..]]
fI (zZ:zz)  | zZ==[]   \
= concat zz | 1==1=zZ  
fi zZ bu zz | zZ%bu=   \
(zz++"zz")  | 1==1=[] 
bu%zz=mod bu (zz*2+1)==0

'वास्तविक' कोड 160 बाइट्स है और इसे संपीड़ित किया जा सकता है, लेकिन तब फ़िज़-बज़-नेस खो देता है।

इसे चलाएं (अच्छे आउटपुट के लिए):

putStrLn (unwords (take 20 z ))

आउटपुट:

1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz 

0

पर्ल

use MIME::Base64;print map{map{(++$i,'Fizz','Buzz','FizzBuzz')[$_]."\n"}(3&ord,3&ord>>2,3&ord>>4,3&ord>>6)}split//,decode_base64"EAZJMIRBEgxhkARDGCTBEAZJMIRBEgxhkA"

2009 में मैंने एक बनाया। यह पता लगाना बहुत आसान है, हालांकि।

संपादित करें: प्रिय, यह "फ़िज़" और "बज़!" का उपयोग करता है :( मुझे लगा कि मैंने उसे बदल दिया है।


0

C 216 बाइट्स

#define t(b) putchar(p+=b);
main(p,v,c){p=70;for(v=c=1;v<=p*2-40&&!(c=0);++v){if(!(v%(p/23))){t(0)t(35)t(17)t(0)++c;}if(!(v%(p/(14+c*9)))){t(-56+!c*52)t(51)t(5)t(0);++c;}if(c){t(-112)p+=60;}else printf("%i\n",v);}}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.