BlackBoard (http://www.black-board.net/index.php)
- Sonstiges (http://www.black-board.net/board.php?boardid=34)
-- Bildung (http://www.black-board.net/board.php?boardid=39)
--- Mathe ne lustige mathe aufgabe (http://www.black-board.net/thread.php?threadid=15833)


Geschrieben von sleeepy am 04.02.2004 um 13:52:

  ne lustige mathe aufgabe

Man multipliziert 1999 mit einer Zahl die aus 1999 Einsen besteht. Welche Quersumme hat das Produkt.


Wer das löst, bekommt nen Keks von mir...^^



Geschrieben von LX am 04.02.2004 um 14:11:

 

Wenn man das mal bissel durchrechnet, kommt man auf eine Regelmäßigkeit:
code:
1:
2:
3:
4:
5:
6:
7:
8:
              1999
             19990 +
            199900 +
           1999000 +
          19990000 +
         199900000 +
         ...
2221111...11110889

Heraus kommt eine Zahl, die schonmal 1999 Stellen hat, davon drei 2en, eine 0, zwei 8en und eine 9, der Rest 1en. Macht also insgesamt 1992*1 + 3*2 + 2*8 + 9 + 1*0 = 2023.

Wenn ich mich net irgendwo verhaspelt hab, will ich jetzt den Keks Zunge raus



Geschrieben von Black Star am 04.02.2004 um 14:15:

 

Der Trick, den ich mir ausgedacht habe:

111111....111111 * 1999 = 1111111.....111111 * ( 2000 - 1)
= 2222.....2222000 - 11111......11111
= 22211111111.....1110889

Dh. Quersumme = 3*2 + 9 + 2*8 + (1999-4)*1 = 2026

Schick mir den Keks per Post zu - und wehe der ist nicht lecker!



Geschrieben von LX am 04.02.2004 um 14:47:

 

Okay, ich habe mich verhaspelt, die drei 2en am Anfang der Zahl liegen auf den Stellen 2000 - 2002, insofern kommt 2026 letztendlich hin, wie Black Star es raushat... aber'n halben Keks kannste mir trotzdem geben Zunge raus



Geschrieben von sleeepy am 04.02.2004 um 16:38:

 

/me überreicht LX und Black Star je einen halben vertrockneten schockoladenkeks...



Geschrieben von Bogus am 04.02.2004 um 21:45:

 

ist zwar etwas spät, ich hab mich aber auch mal dran gesetzt, auch wenn es schon gelöst wurde


hab mal ganz simpel angefangen.

bei 1mal 1999 kommt man auf 28
bei 11mal 1999 auf 29
bei 111mal 1999 auf 30 usw.

die gesetzmäßigkeit isz offensichtlich. du addierst 27 zur anzahl der einsen, und man erhält 2026.

das könnte man bestimmt mit vollständiger induktion beweisen. hab aber keine lust.



Geschrieben von sleeepy am 04.02.2004 um 22:14:

 

auch nich schlecht....zwar spät...aber ok....bogus bekommt nen viertel keks....^^



Geschrieben von Nightwolf am 04.02.2004 um 22:23:

 

Im bb ist ja irgendwie voll das Mathe-Fieber ausgebrochen, der traum aller Mathe Lehrer Augenzwinkern



Geschrieben von sleeepy am 05.02.2004 um 17:18:

 

^nja...da ich die mathe aufgabe letztens gesehen hab, und da auch ordentlich antworten kamen, dachte ich mir dass wär hier ein guter platz dafür....^^



Geschrieben von CDW am 05.02.2004 um 18:20:

 

LX & BlackStar (und Bogus) : Lasst mir ein paar Krümmel übrig großes Grinsen
naja, die gängigsten Anstäze wurden schon gepostet - und mein Ansatzt ist der einfachste von allen: ich multipliziere die beiden Zahlen "wirklich" und zähle dann die Quersumme:
WOZU soll ich mir irendelche Gesetzmäßigkeiten ausarbeiten oder Tricks ausdenken, wenn ich die geballte Power von 500 000 000 Rechenoperationen pro Sekunde hab großes Grinsen ?
Antwort ist übrigens:2026

Übrigens war die Schwierigkeit hier dass Delphi gerade mal REEL mit 19 Stellen kennt (in C braucht man auch mathelibs für größere Zahlen), also gibts ein Array mit 3000 Stellen (sicherheitshalber Augen rollen )...
ich bilde damit das schriftliche Addieren nach (nur die Zahlen werden von links nach rechts geschoben). Ein hervorragendes Beispiel für verschwendung von Systemressourcen (von Spieleprogrammierern abgeschaut Augenzwinkern )
Quellcode für Delphi (und Freepascal müsste auch gehen, Turbopascal dürfte an dem 3000der Array scheitern *g*):
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
program Project2;
{$APPTYPE CONSOLE}
{Rechenkraft pur:man kanns auch so nennen: wie ein Aufkleber auf einem Panzer:
HUBRAUM STATT SPOILER!!!}

const ZAHL_GROSSE=1999;
      ARRAY_GROSSE=3000;{auf nummer sichergehen}
      andere_zahl=1999;
      MIN=1;
      MIN_ZAHL=1;
type triesenzahl=array[1..ARRAY_GROSSE]of byte;

var riesen_zahl,Kopie:triesenzahl;

procedure ini_riesen_zahl(var riesen_zahl:triesenzahl);
var i:integer;
begin
    for i:=MIN to ZAHL_GROSSE do
      riesen_zahl[i]:=MIN_ZAHL;
    for i:=ZAHL_GROSSE+1 to ARRAY_GROSSE do
      riesen_zahl[i]:=0;  
end;

procedure multiplizieren(var riesen_zahl,kopie:triesenzahl;multiplicator:integer);
var i,j,temp,temp2:integer;
begin
         {etwas auf die Schnelle, also nicht allgemeingültig, nachbilden von schriflicher multiplikation}
  for j:=1 to multiplicator-1 do
  for i:=min to ARRAY_GROSSE do
    begin
       temp:=riesen_zahl[i]+kopie[i];
       if temp<10 then
          begin
             riesen_zahl[i]:=temp 
          end else
          begin
             temp2:=temp div 10;
             temp:=temp mod 10;
             riesen_zahl[i]:=temp;
             riesen_zahl[i+1]:=riesen_zahl[i+1]+temp2;
          end;


    end;
end;

function quersumme(riesen_zahl:triesenzahl):integer;
var i,temp:integer;
begin
   temp:=0;
   for i:=min to ARRAY_GROSSE do
     temp:=temp+riesen_zahl[i];
   quersumme:=temp;
end;
begin

  ini_riesen_zahl(riesen_zahl);
  ini_riesen_zahl(kopie);
  multiplizieren(riesen_zahl,kopie,andere_zahl);
  writeln(quersumme(riesen_zahl));
  readln;
  

end.

PS: für alle die kein delphi oder freepascal haben: eine gezippte binary.


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH