Eine besondere Zahl [gelöst] - Seite 2

Neue Frage »

Steve_FL Auf diesen Beitrag antworten »

wir wollen trotzdem weiterraten Augenzwinkern
Das können wir doch noch beweisen Big Laugh

Ich bleib bei meinem Ansatz:
und laut dieser Lösung stimmts bis jetzt auch Augenzwinkern

@Thomas: ja, aber wie weisst du ob eine Zahl durch 3 und DANACH noch durch 2 teilbar ist?

Da müssten wir dann schon wieder einiges suchen gehn Augenzwinkern

Ich hatte jetzt ne Idee, die werd ich dann mal posten, wenn ich drüber nachgedacht hab

mfg
jama Auf diesen Beitrag antworten »
RE: t in min
Zitat:
Original von fALK dELUXE
hmm, ich hab die Zeit genutzt und hab mich geduscht smile . Ich schätze so zirka 5min bei nicht optimiertem code.
Aber die Zeit hat wohl bei meinem programm keine bedeutung, da ich die zahlen per Zufall generiert habe und "zufällig" nach der 1.8mio Zahl kam dann die richtige.

schönen abend noch... wenn bedarf ist, kann ich auch mal ein rätsel posten.


klar, bin schon auf dein rätsel gespannt Augenzwinkern

@steve: ja, versuch das mal. würde mich auch mal interessieren, inwieweit man das dingfest machen kann.
Thomas Auf diesen Beitrag antworten »

Naja, ich hätte gesagt das ist einfach eine Zahl, die gerade ist und deren Quersumme durch 3 teilbar ist.... Augenzwinkern

Schon, oder?

also nehmen wir mal ein paar Beispiele:

12 gerade & Quersumme = 3

24 gerade & Quersumme = 6 = 3 * 2

18 gerade & Quersumme = 9 = 3 * 3

30 gerade & Quersumme = 3

smile
BlackJack Auf diesen Beitrag antworten »

ok, jetzt hab ich auch mal zeit gefunden und mein programm fertig geschrieben. ich komme auf das gleiche ergebniss. hier die wichtigsten proceduren/functionen in pascal:
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:
function rndset(range:byte; var s:byteset):byte; {erzeugt eine zufallszahl 1<=x<=range, die in dem set of byte drin liegt, und entfehrnt die zufallszahl aus dem byteset}
  begin
  repeat
    result := random(range)+1
  until result in s;
  s := s - [result];
  end;

function create_number:longword; {soll eigentlich eine 10stellige zahl erzeugen, die jede ziffer nur einmal enthält, klapp aber nicht so ganz}
  var bset:byteset;
      b:byte;
      i:integer;
  begin
  result := 0;
  bset := [1..9];
  for i := 1 to 9 do
    begin
    b := rndset(9,bset);
    result := result + round(power(10,i)*b);
    end;
  end;

function check_number(x:longword):boolean;{prüft die "besondere" eigenschaft}
  var i:word;
  begin
  result := false;
  for i := 1 to 10 do
    if (x div round(power(10,10-i))) mod i <> 0 then
      exit;
  result := true;      
  end;

function alle_drin(x:longword):boolean;{prüft, ob in der zahl jede ziffer _genau_ einmal vorkommt}
  var i : integer;
      s:string;
  begin
  alle_drin := false;
  str(x,s);
  for i := 0 to 9 do
    begin
    if pos(chr(i+ord('0')),s) =0 then exit;
    delete(s,pos(chr(i+ord('0')),s),1);
    if pos(chr(i+ord('0')),s)<>0 then exit;
    end;
  alle_drin := true;  
  end;{(wenn die procedure create_number richtig funktionieren würde, bräuchte ich diese procedure nicht}

begin
  repeat
    x := create_number;
  until check_number(x) and alle_drin(x);
  showmessage(inttostr(x));
end.

braucht <5 sekunden, um die zahl zu finden.
Steve_FL Auf diesen Beitrag antworten »

@Thomas: ok Augenzwinkern
Gerade muss diese Ziffer an der 6. Stelle ja sowieso sein.
Also müssen wir einfach auf die Quersumme achten.

dann kann man wahrscheinlich ein paar Beziehungen aufstellen Augenzwinkern

mfg
boris Auf diesen Beitrag antworten »

was haltet ihr davon wenn man das ganze mal danach untersucht wie die teil barkeits verhältnisse der jeweiligen zahlen aus sehen müssen und was sich dann für gleocungen ergeben ( ich versucha jetzt mal so).
für brutefroce bin ich nicht das kann jeder Tanzen
cu
 
 
jama Auf diesen Beitrag antworten »

bin ich mal gespannt.

ach ja, Willkommen noch-"definitionslücke", boris. glückwunsch übrigens, du bist der erste seit ich die rangliste überarbeitet habe, den ich als "definitionslücke" sehe Big Laugh smile
Steve_FL Auf diesen Beitrag antworten »

@Boris:
Willkommen
ich bin auch gegen Bruteforce.
Sag dann, wie es mit deiner Idee gelaufen ist...klingt interessant Big Laugh

mfg
martins1 Auf diesen Beitrag antworten »

Ich habe eine Möglichkeit gefunden es mit sehr wenig Brute Force zu machen. Ganz ohne kommt man nicht aus. Hier mein Lösungsweg:

Die Zahl muss also die Form haben:
u g u g 5 g u g u 0
Soweit sind wir uns einig. Nummerieren wir die Stellen:
u1 g1 u2 g2 5 g3 u4 g4 u5 0

Eine Zahl ist durch 9 teilbar, wenn ihre Ziffernsumme durch 9 teilbar ist. Da jede

Permutation der Ziffern 1 .. 9 die selbe Ziffernsumme erzeugt (45), ist es gleich welche

Ziffer am Schluss steht. Man kann sich also auf die ersten 8 Ziffern konzentrieren, die

letzte Stelle ergibt sich automatisch.
Für u kommt in Frage: 1 3 7 9
Für g kommt in Frage: 2 4 6 8
Bem.: Ich werde die folgende Syntax benutzen "x: m1 m2". Es bedeutet für x kommt nur m1

und m2 in Frage.

Eine Zahl ist durch 8 teilbar, wenn die letzten drei Stellen durch 8 teilbar sind:
g3 u4 g4 muss durch 8 teilbar sein.
Da 200, 400, 600 und 800 durch 8 teilbar sind, müssen auch die letzeten beiden Stellen (u4

g4) durch 8 teilbar sein. Es kommen also in Frage die Kombinationen:
10*u4+g4: 16 32 72 96 (E1)
und daher
g4: 2 6 (E2)

Eine Zahl ist durch 4 teilbar, wenn die letzten beiden Stellen durch 4 teilbar sind.
u2 g2 muss durch 4 teilbar sein. Alle Möglichkeiten ausprobiert:
10*u2+g2: 12 16 32 36 72 76 92 96
g2: 2 6 (E3)

Eine Zahl ist durch 6 teilbar, wenn sie durch 3 und 2 teilbar ist:
u1 + g1 + u2 + g2 + 5 + g3 ist also durch 3 teilbar.
Da u1 + g1 + u2 bereits durch drei teilbar ist (Ersten 3 Stellen sind durch 3 teilbar),

muss auch g2 + 5 + g3 durch 3 teilbar sein. Alle Möglichkeiten ausprobiert:
{g2, g3}: {2, 8} {4, 6} (E4) beliebige Reinfolge!!
Nach (E3) folgt: g3: 4 8 (E5)

Mithilfe von (E2) und (E4) kann man schließen, dass
Falls {g2, g3}={2, 8}, dann ist g4=6 und g1=4
Falls {g2, g3}={4, 6}, dann ist g4=2 und g1=8
Also folgt g1: 4 8 (E6)

Eine Zahl ist durch 3 teilbar, wenn die Ziffernsumme durch 3 teilbar ist.
u1 + g1 + u2 muss durch drei teilbar sein.
Alle Möglichkeiten ausprobiert (unter Berücksichtigung von(E6) ):
1+4+3=8
1+4+7=12 oK
1+4+9=14
3+4+7=14
3+4+9=16
7+4+9=20
1+8+3=12 oK
1+8+7=16
1+8+9=18 oK
3+8+7=18 oK
3+8+9=20
7+8+9=24 oK
Die Summanden können auch vertauscht sein!!

Probieren wir die Fälle 1+4+7 und 7+4+1 aus:
g1=4 laut Annahme
g3=8 (nach (E5) )
g2=2 (nach (E4) )
u4=9 (nach (E1) )

1472589/7=210369.857...
7412589/7=1058941.28...

Also ist g1 ungleich 4.
Daraus folgt g1=8 (nach (E6) )
g3=4 (nach (E5) )
g2=6 (nach (E4) )
g4=2 (nach (E3) )
Und nach (E1) u4: 3 7

Zusammenfassung: Die Zahl hat die Form
u1 8 u2 6 5 4 u4 6
u4: 3 7
möglich: 1 3 7 9

Den Rest muss man ausprobieren. Die letzte Bedingung ist die Teilbarkeit durch 7.
Möglichkeiten sind:
1836547
3816547
7896543
9876543
1896543
1896547
9816543
9816547

Nur 3816547 ist durch 7 teilbar.

Die gesuchte Zahl lautet also: 3816547290 Yahoo!!
Thomas Auf diesen Beitrag antworten »

Wow Gott

smile
Steve_FL Auf diesen Beitrag antworten »

da waren wir ja nah dran Augenzwinkern
:] @martins1

da hatte ich etwa die hälfte Augenzwinkern

mfg
martins1 Auf diesen Beitrag antworten »

Hab ich vorher nicht bemerkt. (Das nächste Mal sollte ich die Beiträge sorgfältiger lesen...). Da hätte ich mir viel Tippserei sparen können. Muss ich mir merken! verwirrt
Steve_FL Auf diesen Beitrag antworten »

lol Augenzwinkern
Hast du aber gut gelöst.
Respekt Big Laugh

mfg
skeller Auf diesen Beitrag antworten »
RE: Eine besondere Zahl [gelöst]
nun...1. die aufgabenstellung ist fehlerhaft:

es gibt 5 lösungen:

(lösber mit zettel und stift, ohne pc/taschenrechnter innerhalb von ca 30 minuten)

lösungen:

3816547290
3872589610
7416549230
7836549210
9876543210
Dual Space Auf diesen Beitrag antworten »
RE: Eine besondere Zahl [gelöst]
Scheint zu stimmen ... Freude

Würde es dir viel ausmachen deinen Lösungsweg (skizzenhaft) zu posten?
Rare676 Auf diesen Beitrag antworten »

Klick!

Dieser Thread zielte damals auch auf diese Aufgabe hinaus. Leider durfte ich nicht posten und hab meine Lösung darauf hin nicht mehr geschrieben. Ich wusste zu der Zeit auch nichts von diesem Thread hier.

Ich hatte allerdings nur 2 Lösungen herausbekommen gehabt.

Die genaue Aufgabenstellung hieß:

Man bestimme alle natürlichen Zahlen n mit folgenden Eigenschaften:
a) In der Dezimaldarstellung von n kommt jede der Ziffern 0,1,2,3,4,5,6,7,8,9 genau einmal vor.
b) für k=1,2,...,10 ist k ein Teiler der aus den ersten k Ziffern von n gebildeten Zahl.


Wenn Interesse besteht versuche ich es einzuscannen. Im Prinzip besteht es aus Teilbarkeit und durchprobieren.

Edit: Es ist aber nicht so ordentlich und mit Fachvokabular geschrieben, wie ihr es vllt gewöhnt seidAugenzwinkern
Dual Space Auf diesen Beitrag antworten »

Mich interessiert ja grad die Lösung von skeller, weil er 5 Lösungen bekommen hat. Aber gern kannst du deinen Beweis posten. Allerdings würde ich mir ein eingescanntes Blatt wahrscheinlich nicht angucken. Augenzwinkern

Also poste lieber richtig. smile

@skeller: Kannst du mit deinem Beweis ausschließen, dass es mehr als diese 5 Lösungen gibt?
skeller Auf diesen Beitrag antworten »
RE: Eine besondere Zahl [gelöst]
ah...gibt tatsächlich nur die eine....hätte doch mitm taschenrechner nochmal prüfen müssen....und 2 meiner lösungen sind keine korrekten permutationen
skeller Auf diesen Beitrag antworten »
RE: Eine besondere Zahl [gelöst]
lösungsweg:

da die 3.ziffer ungerade ist, kommt für die 4. nur 2 und 6 in frage
ähnlich bei ziffer 8 ..auch nur 2 und 6 möglich
5. ziffer ist 5, 10, ziffer ist 0

nun bleiben:

ziffer 1: 1,3,7,9
ziffer 2: 4,8
ziffer 3: 1,3,7,9
ziffer 4: 2,6
ziffer 5: 5
ziffer 6: 4,8
ziffer 7: 1,3,7,9
ziffer 8: 2,6
ziffer 9: 1,3,7,9
ziffer10: 0

quersumme von ziffer 1 bis 3 muss durch 3 teilbar sein (teilberkeitskriterium durch 3)

bleiben folgende möglichkeiten für ziffer 1 bis 3:

183
147
189
381
387
741
783
981
987

quersumme von ziffer 4 bis 6 muss auch durch 3 teilbar sein.

also bleibt für den 2.block:

258 oder 654

beide blöcke nun kombinieren (unter ausschluss doppelter ziffern) und mögliche 7.ziffer anhängen, dann teilbarkeit durch 7 prüfen:

die mit x am ende sind durch 7 teilbar

183 654 7
183 654 9
147 258 3 x
147 258 9
189 654 3
189 654 7
381 654 7 x
381 654 9
387 654 1
387 654 9
741 258 3
741 258 9
783 654 1
783 654 9 x
981 654 3
981 654 7
987 654 3
987 654 1

bei den 3 übrigen entweder 2 oder 6 anhängen (je nachdem was übrig ist) und teilbarkeit durch 8 prüfen:

147 258 3 6
381 654 7 2 x
783 654 9 2

381 654 72 ..rest anhängen:

381 654 729 0 ..fertig


in meiner ersten lösung hatte ich nciht aufgepasst und einge ziffern doppelt bzw bei teilbarkeiten 7 und 8 geschlampt (ist unterwegs aufm schmierblatt entstanden ohne tr)
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »