Zahlenrätsel!


Quiest

I like turtles!
Joined
Sep 2, 2004
Messages
3,411
Age
41
Location
Dteuschland ;)
Helft mir Leute, ich kriegs nicht raus!

Man muss die Zahlen 3, 3, 8 und 8 beliebig mit folgenden Rechensymbolen verbinden, so dass die Rechnung 24 ergibt: + - * / ( )
(Also 3 und 8 müssen jeweils 2x verwendet werden und Addieren, Subtrahieren, Multiplizieren und Dividieren sowie Klammern setzen kann man beliebig.)

z.B.:

(8+3)*3-8=25 ist falsch, soll ja 24 rauskommen.
 
Ich bin zwar bisher hier nur passiv unterwegs, aber das hat mich dann doch gereitzt:
8/(3-8/3)

Gruß, Dirk

ps. traue niemals einer selbst geschriebenen Software
 
Krass, Dirk.
Darf man erfahren wie du auf die Loesung gekommen bist?

@jix: pwnd :p
 
Nachdem ich auch ein Programm geschrieben habe, das mir gesagt hat, dass es keine Lösung geben würde, war eigentlich klar, dass es irgendwie mit Brüchen zusammenhängen muss (die sind halt so schwer in einem Programm zu handeln).
Wenn man sich dann noch überlegt, dass so ein Rätsel meistens eine Lösung hat, auf die man nicht ohne weiteres kommt, landet man schnell beim Teilen durch einen Bruch. Normalerweise teilt ja kein Mensch im Kopf durch Zahlen wie 0,333333. Und ab da gibt es nicht mehr viele Möglichkeiten.
 
Soo hier ist mein überarbeitetes programm das nichtmehr alles ausrechnet und alles ausgibt sondern nurnoch das was hinkommt (ich hab bei den vielen möglichkeiten die 24 einfach übersehen....)

Ruby:
Code:
templates = [
  "((XyX)yX)yX",
  "(XyX)y(XyX)",
  "(Xy(XyX))yX",
  "Xy((XyX)yX)",
  "Xy(Xy(XyX))"
]

opcombs = (0..63).map{|e|("%3s" % (e.to_s(4))).tr(" 0123","++\\-\\*\\/")}



comb38s = %w(3388 3838 3883 8338 8383 8833)

templates.each do |template|
  opcombs.each do |opcomb|
    comb38s.each do |comb38|
      oc = opcomb.dup
      c38 = comb38.dup
      
      code = template.gsub('y'){oc.slice!(0,1)}
      code.gsub!('X'){c38.slice!(0,1)+".0"}
      
      res = eval(code) rescue "ERROR"
      
      if (res-24).abs < 0.000001 # float errors
        puts code.gsub(".0","")
      end
    end
  end
end
 
steht doch drüber.. ruby... ist ne echt tolle object orientierte nette (langsame) sprache... für web apps ist die performance aber noch total ok... (auf ruby on rails laufen schließlich auch riesen dinger wie basecamp und die anderen sachen von 37signals)
 
Bin noch immer nicht dahintergekommen, also aus eigenen Stücken heraus zumindest nicht.
 
Back
Top