Matematik

Programmering

23. december 2006 af DanielPetersen (Slettet)
Er der nogen, som kan skrive et program som løser følgende:

Udtrykket "9 +4a+3b+2c+d" skal være delelligt med 11.
a,b,c og d er hele tal fra 0-9. Så skal man bestemme antallet af løsninger (a,b,c,d).

På forhånd tak!

Brugbart svar (0)

Svar #1
24. december 2006 af Sentinox (Slettet)

matlab for-loop over muligheder:

------------------------------------------------------
count=0;
for a=0:1:9
for b=0:1:9
for c=0:1:9
for d=0:1:9
if mod(9+4*a+3*b+2*c+d,11)==0
count=count+1;
ax(count)=a;
bx(count)=b;
cx(count)=c;
dx(count)=d;
end
end
end
end
end
count
SOLS=[ax,bx,cx,dx];
------------------------------------------------------
count angiver antallet af løsninger, og SOLS er en matrix indeholdende alle løsningerne.

Der i i alt 909 "løsninger".

//Sentinox

Brugbart svar (0)

Svar #2
24. december 2006 af blackduck (Slettet)

Her er et c++ program der gør det samme. Giver også 909 løsninger.

------------------------
#include

using namespace::std;

int main(int) {
int solutions = 0;

for(int a=0;a<10;a++) {
for(int b=0;b<10;b++) {
for(int c=0;c<10;c++) {
for(int d=0;d<10;d++){
if((9+4*a+3*b+2*c+d)%11==0){
solutions++;
cout <<"a: "<<a<<" b: "<<b<<" c: "<<c<<" d: "<<d<<endl;
}
}
}
}
}

cout<<solutions;
return 0;
}
------------------------
god jul :)

Svar #3
26. december 2006 af DanielPetersen (Slettet)

Tak.
Hvis man nu siger at d er et ulige tal, hvor mange løsninger vil der så være? Det er jo så mindre end 909 muligheder...

Brugbart svar (0)

Svar #4
26. december 2006 af blackduck (Slettet)

Det kan du finde ud af ved at ændre det fjerde for-loop til
for(int d=1;d<10;d=d+2){
Det er i så fald 455 løsninger.

Svar #5
26. december 2006 af DanielPetersen (Slettet)

Interessant! Det vil sige at antallet af mulige løsninger falder fra 909 til 455, hvis d er et ulige tal?

Skriv et svar til: Programmering

Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk? Klik her for at oprette en bruger.