Avatar billede ole8 Nybegynder
03. oktober 2007 - 23:25 Der er 3 kommentarer

Hvordan finder jeg det inverse?

"Vi er nu klar til at lave en meget simpel implementation af inverse, der retunerer nul hvis parameteren a har en inverse, og kaster en exception hvis den ikke har. Brug din viden fra Algebra og Talteori til at implementere inverse."

Mit bud:
    public int inverse(int a) throws Exception
    {
      int A;
      if( (a * A % n) == 1) {return 0;}
      else{throw new Exception("Tallet " + a + " har ikke en invers");}
    }


Er der nogen der har en smart trick til at løse opgaven?
Avatar billede arne_v Ekspert
03. oktober 2007 - 23:35 #1
Jeg tror at programmeringen er nem nok.

Men hvad skal der reelt beregnes ?

integers har ingen invers

floating point invers er altid 1/x

invertering af matricer kan der være lidt kød på

din kode antyder at

inv(a) * a modulus n = 1

er betingelsen.

Er n konstant eller en parameter ?
Avatar billede nielle Nybegynder
04. oktober 2007 - 06:51 #2
> integers har ingen invers

At dømme efter koden er den inverste der tales om ikke i forhold til mængden af de hele tal, Z, men derimod i forhold til modulus-n - den der skrives som Zn.
Avatar billede ole8 Nybegynder
04. oktober 2007 - 17:26 #3
jeghar løst det. Tak for hjælpen..
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