Avatar billede spala Nybegynder
13. november 2000 - 21:10 Der er 18 kommentarer og
3 løsninger

Tal algoritme

Hejsa

Nogen der kender en algortime der gør det følgende:

Går igennem alle bogstavskombinationer.

f.eks. først:

a,b,c,d,e,f,g,h,i,j,k,l,... når den så når til z skal den starte forfra og sige aa,ab,ac,ad,.. indtil at den til sidst er nåed op på 9 cifre?

- Spala
Avatar billede spala Nybegynder
13. november 2000 - 21:10 #1
bogstavsalgoritme skulle den vist have heddet ;-)
Avatar billede flax Nybegynder
13. november 2000 - 21:23 #2
minder lidt om ideen i et hacjer program ..ggg
Avatar billede flax Nybegynder
13. november 2000 - 21:23 #3
hacker..
Avatar billede moa Nybegynder
13. november 2000 - 21:26 #4
Sikkert, jeg prostituerer mig heller ikke for 300 p. fra et brugernavn, der kun er oprettet for at stille det her spg.! - og efter al sandsynlighed aldrig bliver anvendt igen!!
Avatar billede codebase Praktikant
13. november 2000 - 21:37 #5
:)
I er rigtig glade for at hjælpe folk hva\' *GGG*
er med på en lytter, kunne måske bruges fornuftigt en dag!
Avatar billede spala Nybegynder
13. november 2000 - 21:46 #6
hør nu lige her.

Jeg er blevet spillet opgaven af min IT lærer, men desværre har det ikke kunnet lykkedes mig at udregne algoritmen, derfor prøver jeg nu Eksperten pga. at jeg har hørt meget godt om stedet her.

Hvis jeg var en såkaldt hacker og ville bruge den til noget bestemt ulovligt formål, så ville jeg nok også være sej nok til at udregne den. Og hvis jeg ikke var, så ville jeg nok have anvendt et af de mange hundreder programmer af denne type der findes rundt omkring.

Det eneste der insteresserer mig i denne algoritme er matematikken bag den.

Håber det kan give lidt forståelse for sagen.

- Spala

Avatar billede spala Nybegynder
13. november 2000 - 21:48 #7
jeg staver sørme godt i aften .. der skulle selvfølgelig have stået Stillet istedet for Spillet *GG* :)
Avatar billede lbs Nybegynder
13. november 2000 - 22:55 #8
ok jeg kan lave den i C, det er det nemmeste, jeg kan kender desværre ikke delphi kode.. måske en kan oversætte den og vi kan dele de her point?

#include \"string.h\"
#include <iostream.h>

void getSillyString(char* streng,int niveau){
    char tmp[10];
    char chr;
    if(niveau==9){
        cout << streng << endl;;
        return;
    }
    else{
        strcpy(tmp,streng);
        chr = \'a\';
        for(int i = 0; i < 26 ; i++){
            //tmp[0] = chr;
            tmp[niveau] = chr;
            getSillyString(tmp,niveau+1);
            chr = char(int(chr) + 1);
        }
    }
}

int main(int argc, char* argv[])
{
    getSillyString(\"        \",0);
    return 0;
   
}


Det er fuldt ud testet og det virker.
Det gør ikke andet end at skrive alle tallene ud..
som du nok har gættet tager det ret lang tid :)


Jonas
Avatar billede lbs Nybegynder
13. november 2000 - 22:55 #9
hovsa den der
//tmp[0] l= chr;
skulle have være slettet den smuttede
Avatar billede lbs Nybegynder
13. november 2000 - 23:00 #10
grunden til at jeg kan lide C er at jeg kan typecaste min char til en int og lægge en til, så ved jeg at jeg får det næste bogstav..
ahh det er lækkert..
det kan man hverken i VB eller delphi :)
Avatar billede codebase Praktikant
13. november 2000 - 23:08 #11
hmm. nemt hva\'?
kunne det ikke ha\' været lavet i JAVA elller PHP ?
Avatar billede lbs Nybegynder
14. november 2000 - 00:27 #12
jo, det kunne let have være lavet ihvert sprog.
problemet er bare at cykle fra \'a\' til \'b\' til \'c\'
det er så dejligt nemt i c/c++ som jeg gjorde foroven
Avatar billede codebase Praktikant
14. november 2000 - 00:47 #13
man kunne jo \'smide\' a , b,c osv. ind i array\'et føst, så det kunne jo ikke været et problem! :)
NiceWork!
Avatar billede jakoba Nybegynder
14. november 2000 - 00:56 #14
Ibs > Delphi kode er 99,9% lig med pascal

9 cifre i base 27  bliver 27**9 = 7.625.597.484.987 og så lidt mindre fordi blanktegn kun må være foranstillede.

Jeg tror ikke på du har udskrevet alle tallene. :-))
Avatar billede ugge Nybegynder
14. november 2000 - 03:57 #15
I delphi kan du til gengæld skrive
var
c:Char;

begin
  for c := \'a\' to \'z\' do
      // et eller andet
Avatar billede spala Nybegynder
14. november 2000 - 07:11 #16
hej

tak for hjælpen, jeg skulle mene at jeg godt kan konvertere koden, så jeg kigger lige på det.

btw. så kan man sagtens udføre denne funktion i Delphi :

chr = char(int(chr) + 1);

Den hedder såmænd bare:

chr := char(ord(chr) + 1);
Avatar billede spala Nybegynder
14. november 2000 - 07:13 #17
men hvis nogen skulle have lyst til at konvertere koden så er jeg selvfølgelig villig til at dele pointene 50/50 imellem jer 2.
Avatar billede borrisholt Novice
14. november 2000 - 09:18 #18
en form en knap og et memofelt, og så det følgende kode :

procedure getSillyString(s : String; niveau : Integer);
var
  tmp : array [0..10] of char;
  chr : Char;
  i : Integer;
begin
  if niveau=9 then
  begin
    Form1.Memo1.Lines.Add(s);
    exit;
  end
  else
  begin
    move(s[1],tmp[0],10);
    chr := \'a\';

    for i := 0 to 25 do
    begin
      tmp[niveau] := chr;
      getSillyString(tmp,niveau+1);
      chr := char(integer(chr) + 1);
    end;
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
getSillyString(\'        \',0);
end;

Jens B
Avatar billede canker Nybegynder
14. november 2000 - 09:53 #19
Her er en simpel algoritme.
Jeg skriver kun fra a-f, og jeg går kun kombinationerne igennem 3 gange(3 løkker), da udskriften ellers ikke er særlig fed at vente på :


procedure TForm1.Button1Click(Sender: TObject);
var
  a,b,c:char;
  i:integer;
begin
  for a:= \'a\' to \'f\' do
  begin
    for b:= \'a\' to \'f\' do
    begin
      for c:= \'a\' to \'f\' do
      begin
        memo1.Lines.Add(string(a+b+c));
      end;//c
    end;//b
  end;//a

end;


Ps. hvis den ikke skal starte med aaaaaaaaa (når du har rettet den til 9 løkker), men i stedet a osv., må du dele den op i 9 bidder, hvor den \'dybeste\' kommer til sidst.


prøv den med en knap og en memo!!!
Avatar billede spala Nybegynder
14. november 2000 - 13:16 #20
Takker for det hurtige svar, jeg har valgt at give lbs halvdelen af pointene da hans algoritme er mest gennemført, og borrisholt den anden halvdel for at have oversat den som lovet.
Avatar billede lbs Nybegynder
14. november 2000 - 18:37 #21
Cool, tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester