Permalänk
Medlem
Citat:

Ursprungligen inskrivet av savje

>vv \ < >1::..^" "< ^<>81p+:. ^

Fibonaccis talföljd

Visa signatur

"Sleep is one of those funny things about being a human being" - Marshall Brain
"Mike broke the hubble, Mike broke the hubble" - Mystery Science Theater 3000
"Det finns inget som kan kallas skrot!" säger Mulle Meck, "bara gamla saker som går att använda på nya sätt. Rulla ut och rulla på."

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Power
Fibonaccis talföljd

Helt rätt!

Permalänk
Medlem

En för alla matematiker:

int n = stort tal; double x = 1; for (int i = 2; i <= n; i++) x *= i; x = pow(n, 0.5) / x * 2.506649; //avrundat x = n*pow(x, 1./n);

Och ytterligare en:

#define PI 3.1416 #define rnd (double)rand()/(double)RAND_MAX [...] int t = 0, n = 0; for (int i = 0; i < 1000; i++) { if (rnd + sin(PI * rnd) > 1.) n++; t += 2; } cout << t/n << endl;

Jag tror det ska vara rätt...

Och just det, sen får vi inte glömma mitt program från föregående sida på exakt 10 rader:

void func(unsigned int &n) { if (n == ~(unsigned int)0) {n=0; return;} n++; int i = sizeof(unsigned int)*8; while (i > 2) { i--; while (n & (1 << i)) {n -= (n & (1 << i)) - (1 + (i & 1));} } n--; }

Fortfarande olöst så det kanske är dags att köra koden i en kompilator för att se vad den gör...

ja, nu bidrar nog inte jag med något mer på ett tag i alla fall. (~_~)

Visa signatur

Don't worry, be happy <°)))><

Permalänk
Medlem

En för alla som trodde att man inte kunde skriva användbara program i befunge:

&~&\ :85*2+-v v!-+3*85:_$*.v v .+$_:85*5+-v v!-+7*85:_$-. v v./$_75*2+-!vv < v .%_ 0"rorre"v > @_ #! #:,# <

Permalänk
Medlem
Citat:

kod från Savje

&~&\ :85*2+-v v!-+3*85:_$*.v v .+$_:85*5+-v v!-+7*85:_$-. v v./$_75*2+-!vv < v .%_ 0"rorre"v > @_ #! #:,# <

Tyvärr kan jag fortfarande inte befunge ;_;

Okey, här kommer en till då.

C++

double h = .001; double a = 1; b = 0; int i = 0; do { b += h*a; a -= h*b; i++; } while (b > 0); cout << h*i - b/a << endl;

Nej, nu måste jag gå och slänga mig i sängen! (=.=) -Zzzzzzzz...

Visa signatur

Don't worry, be happy <°)))><

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av TriKri
En för alla matematiker:

int n = stort tal; double x = 1; for (int i = 2; i <= n; i++) x *= i; x = pow(n, 0.5) / x * 2.506649; //avrundat x = n*pow(x, 1./n);

e. Stirlings formel ftw! Jag undrar vad konstanten gör där. Är den bara till för att förvirra?

Citat:

Och ytterligare en:

#define PI 3.1416 #define rnd (double)rand()/(double)RAND_MAX [...] int t = 0, n = 0; for (int i = 0; i < 1000; i++) { if (rnd + sin(PI * rnd) > 1.) n++; t += 2; } cout << t/n << endl;

Jag tror det ska vara rätt...

rnd + sin(PI * rnd) > 1 borde vara sant med sannolikheten int(sin(pi x),x=0..1) = 2/pi, så t/n ~ 1000 2/pi/2000 = 1/pi.

Visa signatur

:€

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av TriKri

void func(unsigned int &n) { if (n == ~(unsigned int)0) {n=0; return;} n++; int i = sizeof(unsigned int)*8; while (i > 2) { i--; while (n & (1 << i)) {n -= (n & (1 << i)) - (1 + (i & 1));} } n--; }

n blir alltid noll efter anrop till func.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av TriKri
Tyvärr kan jag fortfarande inte befunge ;_;

Okey, här kommer en till då.

C++

double h = .001; double a = 1; b = 0; int i = 0; do { b += h*a; a -= h*b; i++; } while (b > 0); cout << h*i - b/a << endl;

Nej, nu måste jag gå och slänga mig i sängen! (=.=) -Zzzzzzzz...

Jaha, det här verkar bli pi, men jag vet inte varför. Kan du förklara?

Visa signatur

:€

Permalänk
Medlem

Den här var lite kul:

200p2v +1< >:00g\%| > 2 > :00g- | ^p00+1< g00$ < ^.:g00<

En annan med samma funktion men som är lite mer kompakt o gör det hela lite snabbare:

300pv> v v.23<|!%\g00:< > # :00g\-| ^3p00+2<g00 $< ^ +2< ^.:g00<

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av eighty
Jaha, det här verkar bli pi, men jag vet inte varför. Kan du förklara?

Programmet snurrar en punkt (a, b), som från början är (1, 0), runt origo. Programmet avbryts efter att punkten har snurrats minst ett halvt varv, till (-1, 0) (b inte längre > 0). i Håller reda på hur många gånger punkten snurrats, multiplicera med h för att få sträckan, eller vinkeln.

Sedan drar jag bort b/a för att ta bort det lilla extra som kan ha uppkommit för att b < 0, kanske slutar simuleringen egentligen på ungefär (-1, -0.0005) eller nått sånt.

Märk väl att abs(a, b) skulle kunna öka eller minska genom simuleringen (även om det inte är meningen), hur som helst påverkar inte det resultatet. Prova att initiera a till 2 t.ex.

Citat:

Ursprungligen inskrivet av jesper_o
n blir alltid noll efter anrop till func.

Fel! Försök igen! Märk att i aldrig går under 2.

Citat:

Ursprungligen inskrivet av eighty
e. Stirlings formel ftw! Jag undrar vad konstanten gör där. Är den bara till för att förvirra?

Ja! Rätt! Konstanten lade jag till för att det blir mer exakt för låga värden på n. Jag utgick från att förhållandet n! : a*n^.5*(n/e)^n = 1 då n går mot oändligheten. Formeln verkar stämma men jag vet inte varför. Och a verkar ligga på drygt 2.5.

Citat:

Ursprungligen inskrivet av eighty
rnd + sin(PI * rnd) > 1 borde vara sant med sannolikheten int(sin(pi x),x=0..1) = 2/pi, så t/n ~ 1000 2/pi/2000 = 1/pi.

Som sagt, det borde stämma, jag hoppades på att den skulle generera pi men kollade aldrig koden. Dock en klar försämring gent emot det PI jag redan använde mig av

Visa signatur

Don't worry, be happy <°)))><

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av savje
Den här var lite kul:

200p2v +1< >:00g\%| > 2 > :00g- | ^p00+1< g00$ < ^.:g00<

En annan med samma funktion men som är lite mer kompakt o gör det hela lite snabbare:

300pv> v v.23<|!%\g00:< > # :00g\-| ^3p00+2<g00 $< ^ +2< ^.:g00<

Primtal?

Permalänk
Medlem

En modifierad version av mitt Pi-program som inte använder sig av PI för att komma fram till PI:

#define rnd (double)rand()/(double)RAND_MAX [...] int t = 0, n = 0; double a; for (int i = 0; i < 1000000; i++) { do a = sin(4*rnd); while (a < 0); if (rnd + a > 1.) n++; t += 2; } cout << double(t)/double(n) << endl;

Vad gör dent här koden då?
C++

#define rnd (double)rand()/(double)RAND_MAX [...] int t = 0, n = 0; double a, b; for (int i = 0; i < 1000; i++) { a = rnd; b = rnd; if (a*a + b*b < 1) t++; n++; } cout << double(t<<2)/double(n) << endl;

Visa signatur

Don't worry, be happy <°)))><

Permalänk
Medlem

Någon måste väl skriva lite lätta grejer också... så här är en för nybörjarna
I python

f=lambda x:x>0 and f(x-1)*x or 1

Vad gör funktionen?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Buffi
Någon måste väl skriva lite lätta grejer också... så här är en för nybörjarna
I python

f=lambda x:x>0 and f(x-1)*x or 1

Vad gör funktionen?

Beräknar x! ?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av eighty
e. Stirlings formel ftw! Jag undrar vad konstanten gör där. Är den bara till för att förvirra?

Ha! Jag kollade på wikipedia på Stirling's approximation och upptäckte att konstanten var roten ur två pi! Det viste jag inte.

Visa signatur

Don't worry, be happy <°)))><

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av ChristofferC
Beräknar x! ?

Jupp

Lite svårare (om man inte fuskar och testkör då)
Python

f=lambda z:"sqrt"[:0].join([_ in "aeiouyåäö " and _ or "%s"%chr(111).join("%s"%_*2) for _ in z])

vad gör funktionen?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Neoecs
Primtal?

Japp!

Citat:

Ursprungligen inskrivet av buffi

f=lambda z:"sqrt"[:0].join([_ in "aeiouyåäö " and _ or "%s"%chr(111).join("%s"%_*2) for _ in z])

Rövarspråket?

Denna då? (närliggande, så kanske lite tråkigt men men):

300pv> v v320<|!%\g00:< > # :00g\-| vp00+2<g00 $< ^ +2< ^ :g00< 3>:999**\`vv *< ^ _>\:| @.+1\<

Permalänk
Medlem
Citat:

buffi:

[...]

Rövarspråket?

Indeed.

Permalänk
Medlem

Här kommer en till:
C++ pseudokod

uint64_t a=1, b=1, c; do { c = 2*a*b + a*a; a = c + a*a + b*b; b = c; if (overflow) break; cout << a << "/" << b << " = " << (double)a/b << endl; } while (1);

eller lightversionen

double x = 1; do { x = ((1+x)*(1+1/x)+x)/(x+2); cout << x << endl; } while (du fortfarande orkar titta på skärmen)

Någon som vet hur man ökar antalet värdesiffror som ska skrivas ut förresten?

Visa signatur

Don't worry, be happy <°)))><

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Buffi
Jupp

Lite svårare (om man inte fuskar och testkör då)
Python

f=lambda z:"sqrt"[:0].join([_ in "aeiouyåäö " and _ or "%s"%chr(111).join("%s"%_*2) for _ in z])

vad gör funktionen?

Man kan undra varför man ska behöva krångla på det där viset om man bara vill ha en funktion som skriver ut rövarspråket, bättre i befunge :

>~v >@ , >:52*-!|v < <<<< v!-*84:<# ^ _:554**3--!v ^ < _:554**1+-!| v!-+5**554:< ^ _:554**56++-!| v!-++98**554:< ^ _:872**9+-! | v!--+65**658:< ^ _:865**62*--! | v-+6**865:< ^ ,,\++56**554:_ ^

(funkar iofs bara med småbokstäver och mellanslag )

Permalänk
Medlem

Haha, vad är befunge för skumt språk egentligen.. vad är det för idiot som uppfinner ett språk med bara massa siffror och tecken??? (Och ännu mer korkat att använda det:P) Nej tacka vet jag c++, vb.net, php och andra trevliga läsbara språk xD

Permalänk
Medlem

finns ju värre språk än befunge, tex whitespace, Ook! osv.

Permalänk
Medlem

Kan tipsa om http://en.wikipedia.org/wiki/Category:Esoteric_programming_la... om någon känner sig manad (är lite sugen på brainfuck faktiskt, är nog inte lika svårt som det ser ut)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Vijjje
finns ju värre språk än befunge, tex whitespace, Ook! osv.

whitespace är väl lättläst?

Visa signatur

Erfarenhet är något man får precis efter man hade behövt det.
http://files.upl.silentwhisper.net/upload2/regel7.png

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av savje
Kan tipsa om http://en.wikipedia.org/wiki/Category:Esoteric_programming_la... om någon känner sig manad (är lite sugen på brainfuck faktiskt, är nog inte lika svårt som det ser ut)

äntligen nånting jag har lite erfarenhet av
allt annat är ren grekiska (trots att det va jag som skapade tråden).
jag har provat brainfuck en del, det är inte så svårt.
det e bara att ha en ASCII tabell framför sig och räkna.

sen är det lite krångligare när man ska återanvända rader mha loopar så lägger man till eller plockar bort nån pekare hit o dit.

ganska roligt faktiskt. jag kom så långt att jag skrev hela mitt namn med så lite kod så möjligt. tyvärr har jag den inte kvar, det va i skolan.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Geil
whitespace är väl lättläst?

Det finns highlighting i vim för whitespace vilket gör att det får att läsa.

Permalänk
Medlem

Jag har två nya
En i befunge:

0::>$0g# ::,#$$88*# -#+ #1_@

och en i c:

#include <stdio.h> main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_, main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13? main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?main(_,t, "@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#\ ;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l \ q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# \ ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' \ iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \ ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# \ }'+}##(!!/") :t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1) :0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av savje

...och en i c:

#include <stdio.h> main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_, main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13? main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?main(_,t, "@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#\ ;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l \ q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# \ ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' \ iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \ ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# \ }'+}##(!!/") :t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1) :0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

Tyvärr, längre än 10 rader.
Men allvarligt, att tro att nån kan fundera ut vad det där gör utan att faktiskt testa känns lite .. tveksamt. Men det kanske bara är jag som är dum.

Visa signatur

Min hemsida: http://www.srekel.net
Pocket Task Force: http://ptf.srekel.net
Kaka e gott! http://kaka.srekel.net

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Srekel
Tyvärr, längre än 10 rader.
Men allvarligt, att tro att nån kan fundera ut vad det där gör utan att faktiskt testa känns lite .. tveksamt. Men det kanske bara är jag som är dum.

hehe, man vet aldrig (sen var det lite fusk för jag skrev inte det själv har inte ens testkört det, men om det funkar som det ska är det lite ballt)

Vad som också är ballt är mitt nya befunge program:

74*0>_#"1-84*\:0\#":#0_$>p<p

Även detta är lite ballt:

v > >0::>_#":# ~#v:52*-!_\0p1+0#"< >_ ^

Permalänk
Medlem

Då jag sitter på lisp-labb och har lite tråkigt, och inte sett nån lisp här än så kanske nån vet vad den här funktionen gör?

Den tar en mängd symboler representerad som en lista som argument.

(defun funktion (l) (if (endp l) (list l) (let ((symbol (funktion (cdr l)))) (append (mapcar #'(lambda (x) (cons (car l) x)) symbol) symbol) )))

Visa signatur

Intel Core i7 920, Gigabyte GA-EX58-UD5, 6x2 GB Corsair XMS3 Twin3X DDR3 1333 MHz, XFX GeForce GTX 280 1 GB, Gigabyte GeForce 8600 GT 512 MB, Corsair TX650 650W
NileCity 105,6 Playlist