Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  114 26132
Sitat av ivioynar Vis innlegg
Den henter denne tråden, finner title-taggen og så henter de 11 neste tegnene (som da er "hello world")?
Vis hele sitatet...
Mer eller mindre korrekt. Du overså at jeg måtte skippe over det første tegnet i tittelen også (tittelen på siden begynner nemlig med space).

Ikke en særlig innoverende HelloWorld dette her, men jeg synes det viser et par interessante egenskaper ved Rebol; å kunne løse dette som en one-liner uten å måtte gjøre noen syntakskrumspring eller inkludere et eneste tegn som . ; | ( { } ) eller lignende viser at språket er fleksibelt og komponerbart.

Direkte støtte for URLs og XML-tags er også ganske stilig!
▼ ... over en måned senere ... ▼
Sitat av |d13m0b Vis innlegg
Credits til slashdot for å komme på denne oppgaven. Svært interessant. Jeg bidrar selv med et innslag i dette. Min versjon er et Hello World program som utvikler en streng til å si "Hello World". Basert på darvinisme.

Starter med en populasjon (2048 stykker) av tilfeldige strenger. Deretter går jeg igjennom hele populasjonen, og beregner hvilke av disse strengene som er nærmest en "target streng (Hello world!)".

Jeg tar så vare på 10% av populasjonen, det er disse som er best egnet til å føre sine "gener" videre til neste generasjon. 90% av populasjonen blir tatt knekken på, og den resterende 10% bruker jeg til å produsere nye strenger. Dette gjøres ved paring av strengene. Ta to strenger, finn et punkt som kalles crossover, og bytt om på verdiene så en ny streng dannes. Har også tatt i betraktning mutasjon. Det er 25% sjangse for at en paring skal resultere i en 1 byte mutasjon.

Bruteforce with a twist.

Og joda, jeg skreiv dette i C++ da jeg i den siste måneden har holdt meg til ANSI C99, så tenkte det kunne være et friskt pust. Det er lenge siden jeg har skrevet C++, så det er sikkert en hel del optimaliseringer som kan gjøres her, men det har ikke vært det som har vært mitt mål her. Ei heller leselighet.

Jeg avviker dog litt fra reglene slashdot har stipulert, men hey! Må nesten det for å vise at evolusjonens gang fører til et resultat jeg ønsker. Det som er interessant med slikt, er at jeg ikke forteller direkte hva som er korrekt måte å gå fram, men at jeg har en funksjon som forteller hvor godt egnet en streng er, og så har jeg et predefinert mål. Måten å komme seg til målet, "finner den ut selv".

Utput:

Kode

Generation 0 Best cromosome with fitness 165, Urgtm4g\dS]8
Generation 1 Best cromosome with fitness 146, iYjfp,?jpZd@
Generation 2 Best cromosome with fitness 107, CidFj!_xgke1
Generation 3 Best cromosome with fitness 102, EhRpl0cdyuh%
Generation 4 Best cromosome with fitness 92, ;blfv Dml`d9
Generation 5 Best cromosome with fitness 63, @dkbo!aboek#
Generation 6 Best cromosome with fitness 59, Egovu&Imxof#
Generation 7 Best cromosome with fitness 50, Lloto!Qypic&
Generation 8 Best cromosome with fitness 48, Ciifv!Ntpmf
Generation 9 Best cromosome with fitness 42, LahdoSeroe$
Generation 10 Best cromosome with fitness 38, Calmr#Ntpmf
Generation 11 Best cromosome with fitness 34, Idktm Seroe$
Generation 12 Best cromosome with fitness 27, Hdflp#Umrk]%
Generation 13 Best cromosome with fitness 20, Idkmq#Xjpke"
Generation 14 Best cromosome with fitness 20, Idkmq#Xjpke"
Generation 15 Best cromosome with fitness 17, Hhlmr Tmpke"
Generation 16 Best cromosome with fitness 14, Idklp Tmpke"
Generation 17 Best cromosome with fitness 12, Hdllp Umrmf
Generation 18 Best cromosome with fitness 11, Hdllp Xmrk`"
Generation 19 Best cromosome with fitness 10, Hdllo#Umrkd"
Generation 20 Best cromosome with fitness 10, HdllpUmrme"
Generation 21 Best cromosome with fitness 9, Hdllo Umrkf"
Generation 22 Best cromosome with fitness 8, Hdllp Umrkd"
Generation 23 Best cromosome with fitness 7, Hdllo Xmrkd#
Generation 24 Best cromosome with fitness 5, Hdllp Xorkd"
Generation 25 Best cromosome with fitness 5, Hdllp Xorkd"
Generation 26 Best cromosome with fitness 5, Hdllp Xorkd"
Generation 27 Best cromosome with fitness 5, Hdllo Xorme"
Generation 28 Best cromosome with fitness 4, Hdllo Xorkd"
Generation 29 Best cromosome with fitness 4, Hdllo Xorkd"
Generation 30 Best cromosome with fitness 4, Hdllo Xorkd"
Generation 31 Best cromosome with fitness 3, Hdllo Workd"
Generation 32 Best cromosome with fitness 3, Hello Xorkd"
Generation 33 Best cromosome with fitness 3, Hello Xorkd"
Generation 34 Best cromosome with fitness 3, Hdllo Xorkd!
Generation 35 Best cromosome with fitness 2, Hello Xorkd!
Generation 36 Best cromosome with fitness 2, Hello Xorld"
Generation 37 Best cromosome with fitness 1, Hello World"
Generation 38 Best cromosome with fitness 1, Hello World"
Generation 39 Best cromosome with fitness 1, Hello World"
Generation 40 Best cromosome with fitness 1, Hello Workd!
Generation 41 Best cromosome with fitness 0, Hello World!
Kildekode: http://helloworldc.pastebin.com/f59b45c15

Edit: Det staves forøvrig Chromosome, ikke cromosome. :/
Vis hele sitatet...
Hehe, har du brukt "The Blind Watchmaker" som inspirasjonskilde her? En stund siden sist jeg leste boka, men jeg kan sverge på at at han fikk laget et lignende program når han ville teste Infinite Monkey-theorem. Tror forresten hans program ble skrevet i BASIC.
Sitat av mandelbrot Vis innlegg
Hehe, har du brukt "The Blind Watchmaker" som inspirasjonskilde her? En stund siden sist jeg leste boka, men jeg kan sverge på at at han fikk laget et lignende program når han ville teste Infinite Monkey-theorem. Tror forresten hans program ble skrevet i BASIC.
Vis hele sitatet...
Det var nok heller Dawkins som brukte en normal og enkel genetisk algoritme for å vise hvor effektivt naturlig seleksjon er over ren tilfeldighet, og ikke genetiske algoritmer som stammer fra Dawkins. Han viste da til sannsynligheten for å få strengen "METHINKS IT IS LIKE A WEASEL" på helt tilfeldige forsøk, og viste i kontrast hvor raskt det gikk hvis man tok vare på hver riktige bokstav og plukket tilfeldige nye bokstaver for de gjenværende hver runde. Det var mer for å vise at "hurricane in a scrap yard"-argumentet til kreasjonister grunner i misforståelser, mer enn å teste infinite monkey-theorem – selv om han nevnte det også. Som tilfeldig-streng-generator brukte han for øvrig sin unge datters klasking på tastaturet, før han lot datamaskinen ta over.
Sitat av Provo Vis innlegg
Det var nok heller Dawkins som brukte en normal og enkel genetisk algoritme for å vise hvor effektivt naturlig seleksjon er over ren tilfeldighet, og ikke genetiske algoritmer som stammer fra Dawkins. Han viste da til sannsynligheten for å få strengen "METHINKS IT IS LIKE A WEASEL" på helt tilfeldige forsøk, og viste i kontrast hvor raskt det gikk hvis man tok vare på hver riktige bokstav og plukket tilfeldige nye bokstaver for de gjenværende hver runde. Det var mer for å vise at "hurricane in a scrap yard"-argumentet til kreasjonister grunner i misforståelser, mer enn å teste infinite monkey-theorem – selv om han nevnte det også. Som tilfeldig-streng-generator brukte han for øvrig sin unge datters klasking på tastaturet, før han lot datamaskinen ta over.
Vis hele sitatet...
Dette er jeg klar over. =) Jeg lurte enkelt og greit bare på om boka gav han ideen til programmet han skrev.

Kode

a=3;IO.readlines($0).each do|l|
     foo = "Do you understand how"
     _m_ = " this program works? "
     __m ||= 1 + 2 + 4 + 8 + 16
        print (l[a+=1].ord-1).chr
     __m -= 1 # o b s c u r i t y
 foo.chomp!   #--# #--# #--# #--#
           x=__m*3;           end
            puts #" lorum ipsum "
 foo=a.methods.sort;x=[];x<<[ x ]
a=a.protected_methods# RUBY FTW #
               exit 0
# Made just for "fun" ...........
Mitt bidrag er en smule kjedelig, men siden jeg bruker bash masse så prøver jeg meg på det. Kunne sikkert gjort det enda vanskeligere.

Kode

#!/bin/bash
DILL=olerdhw
HELLO="`echo $DILL | cut -c 6``echo $DILL | cut -c 3``echo $DILL | cut -c 2``echo $DILL | cut -c 2``echo $DILL | cut -c 1` "
WORLD=`echo $DILL | cut -c 7``echo $DILL | cut -c 1``echo $DILL | cut -c 4``echo $DILL | cut -c 2``echo $DILL | cut -c 5`
echo -n "$HELLO"
echo -n "$WORLD"
▼ ... over en uke senere ... ▼
4 språk.

Kode

% cat hello.c
; x() {-0;} main(){ puts("Hello World!"); } /*
; -} =0;main = putStrLn "Hello World!" {-
(display "Hello World!") (newline)
; +++++++++++++[>+++++++>++++++++++>+++>+<<<<-]>
; ++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.-} --  */
% gcc hello.c; ./a.out
Hello World!
% runhaskell hello.c 
Hello World!
% guile hello.c 
Hello World!
% bff hello.c 
Hello World!
%
Sitat av mandelbrot Vis innlegg
Hehe, har du brukt "The Blind Watchmaker" som inspirasjonskilde her? En stund siden sist jeg leste boka, men jeg kan sverge på at at han fikk laget et lignende program når han ville teste Infinite Monkey-theorem. Tror forresten hans program ble skrevet i BASIC.
Vis hele sitatet...
Nei jeg har ikke lest boken så det var nok ikke inspirasjonskilden. Tror ikke jeg hadde noen spesiell inspirasjon på det tidspunktet, annet enn at det var en tanke som slo meg om at det kunne være en interessant måte å få det til på. Har lekt en del med genetiske algoritmer tidligere i jobb og syntes det var en kreativ tilnærming på "problemet".
▼ ... noen uker senere ... ▼

Kode

class HelloWorldUnicode
{ 
	public static void main(String[] args)
	{ 
		System.out.print("\u0048"); 
		System.out.print("\u0065"); 
		System.out.print("\u006C"); 
		System.out.print("\u006C"); 
		System.out.print("\u006F"); 
		System.out.print("\u002C");
		System.out.print("\u0020"); 
		System.out.print("\u0057"); 
		System.out.print("\u006F"); 
		System.out.print("\u0072"); 
		System.out.print("\u006C");
		System.out.print("\u0064"); 
		System.out.print("\u0021"); 
	}
}
Kanskje ikke så imponerende eller avansert, men var noe jeg fikset på morgenkvisten i Java
Sist endret av T.J; 8. mars 2012 kl. 09:47.
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Sitat av T.J Vis innlegg
Kanskje ikke så imponerende eller avansert, men var noe jeg fikset på morgenkvisten i Java
Vis hele sitatet...
Hvorfor ikke bruke en array?
Sist endret av robhol; 8. mars 2012 kl. 09:50.
Sitat av robhol Vis innlegg
Hvorfor ikke bruke en array?
Vis hele sitatet...
Har nettopp begynt med Java, og har ikke kommet så langt enda
Sitat av robhol Vis innlegg
Hvorfor ikke bruke en array?
Vis hele sitatet...
Ruby-variant med array:

Kode

["\u0048", "\u0065", "\u006C", "\u006C", 
 "\u006F", "\u002C", "\u0020", "\u0077", 
 "\u006F", "\u0072", "\u006C", "\u0064", 
 "\u0021"].each{ |c| print c }
Eller hva med dette?

Kode

puts [72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33].map(&:chr).join
▼ ... mange måneder senere ... ▼
Her er den offisielle hello, world-koden til mitt siste programmeringsspråk: Ropy!

Kode

    |   __+8>____-<3>____+6>__ _________________________
    |  |                      |                         |
    |  |   __>-<3>__&&>>1__   |  _____   ____  _______  |  __
    |  |  |                |  | |  __ \ / __ \|  __ \ \ | / /
    |  |  |                |  | | |__) | |  | | |__) \ \_/ / 
    |  |  |__>7<-__>3+__"  |  | |  _  /| |  | |  ___/ \   /  
    |  |                   |  | | | \ \| |__| | |      | |   
    |  |__65*2+____67*2<+__|  | |_|  \_\\____/|_|      |_|   
    |                         |                         |
    |____001&&________>8+_____|__+ - * / < > ? % ! & "__|
HelloWorld i Java..

public class HelloWorld {


public static void main(String[] args) {
System.out.println("Hello World!");


}

}
Vis hele sitatet...
Selv om jeg ikke er noe annet enn en selvlært hobbykoder, måtte jeg prøve meg jeg også. Synes selv dette er en ganske kreativ løsning, men ser at koden nok kunne vært skrevet bedre. Dessverre er jeg ikke helt inne i loops og slike nyttige automatiseringsprosesser, så om noen ønsker å skrive om og renske koden; vær så god. Noen av funksjonene har jeg søkt meg fram til på nettet, kopiert og tilpasset til mitt bruk. Håper det går greit.

Her er bildet som blir brukt i koden: freak.png

Kode

<?php
function rgb2hex($r, $g, $b){
	$r=dechex($r);
	if (strlen($r)<2)
	$r='0'.$r;

	$g=dechex($g);
	if (strlen($g)<2)
	$G='0'.$g;

	$b=dechex($b);
	if (strlen($b)<2)
	$b='0'.$b;

	return $r . $g . $b;
}

function hex2txt($hex)
{
    $string='';
    for ($i=0; $i < strlen($hex)-1; $i+=2)
    {
        $string .= chr(hexdec($hex[$i].$hex[$i+1]));
    }
    return $string;
}


$bilde = imagecreatefrompng("freak.png");

$rgb = imagecolorat($bilde, 0, 321);
$first = rgb2hex(($rgb >> 16) & 0xFF, ($rgb >> 8) & 0xFF, $rgb & 0xFF);

$rgb = imagecolorat($bilde, 0, 0);
$second = rgb2hex(($rgb >> 16) & 0xFF, ($rgb >> 8) & 0xFF, $rgb & 0xFF);

$rgb = imagecolorat($bilde, 0, 118);
$third = rgb2hex(($rgb >> 16) & 0xFF, ($rgb >> 8) & 0xFF, $rgb & 0xFF);

$rgb = imagecolorat($bilde, 0, 207);
$fourth = rgb2hex(($rgb >> 16) & 0xFF, ($rgb >> 8) & 0xFF, $rgb & 0xFF);

echo hex2txt($first.$second.$third.$fourth);
?>

Legger ved hvordan koden fungerer i spoiler, slik at man kan få muligheten til å finne det ut selv.
SPOILER ALERT! Vis spoiler

Koden henter ut fire rgb-verdier fra fire forskjellige punkter på bildets bakgrunn. Disse blir gjort om til fire hex-verdier og satt sammen. Da ender man opp med "68656C6C6F2C20776F726C64", som vil tilsi "hello, world".
Sist endret av zorro; 9. desember 2012 kl. 02:51.