Beskriv ett maximalt stort ändligt tal i basic!

Lekar, tävlingar, knep och knåp, men inte någon sandlåda.

Moderator: Moderatorgruppen

Justin Case
Inlägg: 3552
Blev medlem: 31 mar 2007 17:46

Beskriv ett maximalt stort ändligt tal i basic!

Inläggav Justin Case » 15 maj 2008 01:44

En tävling i kreativ programmering

Idén till den här tråden kommer från tråden "Beskriv det största ändliga tal du kan med 700 tecken!". Problemet med uppgiften i den tråden var att reglerna inte kunde formuleras på ett tillfredsställande exakt sätt. Därför startar jag nu den här tråden!

Du ska skriva ett sådant program, i programmeringsspråket basic, att om det skulle köras i en dator med oändlig kapacitet och oändligt med tid, skulle någon gång ett ändligt - obs inte oändligt - tal skrivas ut, i siffror och inget annat. Den tävlande, vars program enligt denna definition skulle skriva ut ett större ändligt tal än vad övriga tävlandes program skulle, vinner. Programmet får bestå av högst 700 tecken (blanksteg, tab och enter räknas inte som tecken). Endast sådana tecken som går att producera med ett vanligt tangentbord är tillåtna. Ingen inkopiering, grafik eller liknande är tillåten.

Lycka till!

suchanother
Avstängd
Inlägg: 4109
Blev medlem: 14 feb 2004 23:37
Ort: Göteborg

Inläggav suchanother » 17 maj 2008 09:33

Vilken version av BASIC?
Finns nämligen ursprungliga BASICA, sen QUICKBASIC, sen QBASIC (en bantad version av quickbasic), sen VISUAL BASIC 5, VISUAL BASIC 6 och slutligen .NET (har jag missat nån?)

Det är stora skillnader i kapacitet mellan olika versioner. T.ex. är en sträng begränsad till 256 tecken i qbasic och till några miljarder i VB6.

Jag tycker du ska precisera programmeringsspråket och datorns kapacitet (talrepresentationen i byte).

Sen, är strängar tillåtna? Eller måste talet presenteras i en sådan form att de vanliga operationerna "+", "/", går att utföra?
Jag förutsätter att strängar är tillåtna och presenterar ett första preliminärt tävlingsbidrag i VB6 (bara för att få fart på alla andra programmerare)

**********
dim s$, i&, max&

' (max = datorns maxkapacitet för antalet tecken i en sträng)


s = space$(max)

for  i = 1 to max: mid$(s,i,1) = "9" : next i

do while (så långt tiden tillåter)

  debug.print s

loop

**********

Det här var naturligtvis lite fusk men ser bra och riktigt ut på skärmen när det skrivs ut.

Justin Case
Inlägg: 3552
Blev medlem: 31 mar 2007 17:46

Inläggav Justin Case » 18 maj 2008 18:35

Låt oss använda QBASIC.

Man får använda strängar.

Jag tänkte mig att strängar och liknande inte är begränsade till något max-antal tecken. Kom även ihåg att datorn har obegränsad kapacitet och kan köra i evighet. Med de reglerna ger ditt bidrag ett oändligt tal, och diskvalificerar sig därmed.

Jag tycker det blir intressantare om man själv måste tala om för datorn hur den ska undvika oändligheten än om datorns begränsade kapacitet på något område automatiskt löser det problemet åt en.

Användarvisningsbild
FIG
Inlägg: 836
Blev medlem: 21 apr 2006 20:04
Ort: Bortom All Tid
Kontakt:

Inläggav FIG » 26 jul 2008 11:37

He skulle gärna ställa up, men då gärna i PHP som jag kan.

Har någon börjat eller?

/ FIG
Men kommihåg: Vi Alla Är Vilsen, Men Ändå Fångar I Denna Värd
www: Fig.Maxxflow.com
Mail: fig.ghd742@gmail.com

Användarvisningsbild
FIG
Inlägg: 836
Blev medlem: 21 apr 2006 20:04
Ort: Bortom All Tid
Kontakt:

Inläggav FIG » 26 jul 2008 12:04

Annas så kan du väll skriva ett program som räka ut detta:P

Kod: Markera allt

function bigtal() {
$v = 5/3;
$v = substr($v, 2); //Allså ta bort "1." ur svaret... // 6666666666667 ( för mitt php
$c = 1;
do ($i<$v) { // Loppa så länger $i är minder än $v
 $c = ($c*$v+$v*$i)*$i
}
return $c;
}

Det enda som stoppa detta talet är bergränisnga i system.
Och teknisk sätt så har detta ett sannt värde.
Men kommihåg: Vi Alla Är Vilsen, Men Ändå Fångar I Denna Värd

www: Fig.Maxxflow.com

Mail: fig.ghd742@gmail.com

Användarvisningsbild
FIG
Inlägg: 836
Blev medlem: 21 apr 2006 20:04
Ort: Bortom All Tid
Kontakt:

Inläggav FIG » 26 jul 2008 14:23

FIG skrev:Annas så kan du väll skriva ett program som räka ut detta:P

Kod: Markera allt

function bigtal() {
$v = substr($5/3, 2); //Allså ta bort "1." ur svaret... // 6666666666667 ( för mitt php
$c = 1;
do ($i<$v) { // Loppa så länger $i är minder än $v
 $c = ($c*$v+$v*$i)*$i
}
return $c;
}

Det enda som stoppa detta talet är bergränisnga i system.
Och teknisk sätt så har detta ett sannt värde.
Men kommihåg: Vi Alla Är Vilsen, Men Ändå Fångar I Denna Värd

www: Fig.Maxxflow.com

Mail: fig.ghd742@gmail.com

Justin Case
Inlägg: 3552
Blev medlem: 31 mar 2007 17:46

Inläggav Justin Case » 30 jul 2008 08:53

FIG skrev:Annas så kan du väll skriva ett program som räka ut detta:P

Kod: Markera allt

function bigtal() {
$v = 5/3;
$v = substr($v, 2); //Allså ta bort "1." ur svaret... // 6666666666667 ( för mitt php
$c = 1;
do ($i<$v) { // Loppa så länger $i är minder än $v
 $c = ($c*$v+$v*$i)*$i
}
return $c;
}

Det enda som stoppa detta talet är bergränisnga i system.


Några sådana begränsningar finns inte enligt de regler jag satt upp. Tänk dig en dator utan systembegränsningar. Man måste berätta uttryckligen för datorn när den ska sluta räkna. Att låta datorn hålla på i evighet är inte en godkänd lösning. Uppgiften är att skriva ett program som, om det kördes i evighet i en dator med obegränsade resurser, skulle få datorn att, någon gång innan en evighet har förflutit, skriva ett så stort ändligt tal som möjligt. Obs ändligt tal, inte oändligt.


Återgå till "Lekstugan"

Vilka är online

Användare som besöker denna kategori: 2 och 0 gäster