Rätsel der Woche Hüpfende Frösche und Kröten

Spiegel

-

04.03.2019 19:02


Rätsel der WocheHüpfende Frösche und Kröten

Grüne Frösche und braune Kröten wollen ihre Plätze tauschen. Doch das ist gar nicht so einfach: Sie sitzen auf schwimmenden Blättern, die immer nur ein Tier tragen können. Wie klappt es?

SPIEGEL ONLINE

Von und (Grafik)


Das Problem der Frösche und Kröten ist schnell beschrieben. Jedes Tier sitzt auf einem schwimmenden Blatt, nur das Blatt in der Mitte ist nicht besetzt (siehe unten). Die braunen Kröten wollen nach links hüpfen, die grünen Frösche nach rechts. Jedes Tier darf nur in die von ihm gewünschte Richtung springen - entweder auf ein freies Blatt direkt vor ihm oder über einen Frosch beziehungsweise eine Kröte hinweg auf ein freies Blatt direkt dahinter.

Wie müssen die Tiere ihre Positionen wechseln, damit am Ende alle Kröten auf der linken und alle Frösche auf der rechten Seite sind? Das mittlere Blatt soll dann wieder unbesetzt sein.

Sie können die Aufgabe für verschieden große Anzahlen von Tieren lösen. Beginnen Sie am besten mit nur einer Kröte und einem Frosch. Aber klappt es auch mit je zwei, drei, vier oder fünf? Oder ist das Frosch-Kröten-Problem ab einer gewissen Anzahl nicht mehr lösbar?

Mit dem interaktiven Player können Sie Ihre bestmögliche Sprungstrategie herausfinden. Mit dem Schieber stellen Sie die Anzahl der Tiere ein.

 
 

Sprünge: 0

",button = app.find("button.reset"),span_jump = app.find("p.int_jumps span"),p_solved = app.find("p.solved"),items,items_len,int_jumps = 0,min = Number(input_frogs.attr("min")),max = Number(input_frogs.attr("max")),step = Number(input_frogs.attr("step")),is_bidirectional = false;// add scale labels to range inputvar j_label, left,cpv = ((max-min)/step)+1, // count possible valuesperc = 100/(cpv-1), perc_i = 0;console.info (min, max, step, cpv);for (var i = min; i ' + i + '
');range_label.append(j_label);left = "calc(" + String(perc*perc_i )+ "% - " + String(perc_i*(1/cpv)) + "em)";perc_i++;// console.info( "perc_i*(1/cpv) ", perc_i*(1/cpv) ); // console.info( i, left );$(j_label).css("left", left );}function InitSVG(){// add svg to every itemif ( items_len > 0) { for ( var i=0; i 0) {for ( var i=0; i 0 || it.next(".item").next(".x").length > 0 ) {it.addClass("m");}} elseif ( it.hasClass("b") ) {if ( it.prev(".x").length > 0 || it.prev(".item").prev(".x").length > 0 ){it.addClass("m");}}}}}// ##############################################function InitItems(frogs){var hmf;// how many frogs? Wenn Vorgabe, dann die nutzenif ( frogs ){ hmf = frogs;} else {hmf = ( input_frogs.val() && input_frogs.val() = min ) ? input_frogs.val() : startvalue;input_frogs.val(hmf);}// Angabe je Seite, duplizieren für Gesamtzahlhmf = hmf*2;// reset item containerapp_items.empty();// reset solved phraseSolved("");button.addClass("start");// apply items (n frogs + one empty in the middle) to container for (var i=0; i 0) {for ( var i=0; i Math.floor(items_len/2) ){$(items[i]).removeClass("a x").addClass("b");} else {$(items[i]).removeClass("a b").addClass("x");}}}InitSVG();CountJump(false);GetJumpableFrogs();items.on("click",function(){varit = $(this),pp = it.prev(".item").prev(".x"),p = it.prev(".x"),n = it.next(".x"),nn = it.next(".item").next(".x"),class_ab,arr = is_bidirectional ? [ pp,p,n,nn ] : it.hasClass("a") ? [n,nn] : [pp,p];// find possible target of this movefor (var i=0;i 0 ) {class_ab = it.hasClass("a") ? "a" : "b";it.removeClass("a b").addClass("x");arr[i].removeClass("x").addClass(class_ab);CountJump();button.removeClass("start");// everything counts$().spInterface('reCountPage', {countIVW:true, countGA:true});break;}}// check if solvedif ( items_len > 0) {for ( var i=0; i Math.floor(items_len/2) ){// zweite Hälfte der items, ohne Mitte:if ( !$(items[i]).hasClass("a") ) { break;};}if ( i === items_len-1 ) {Solved("Geschafft!");}}}// activate movable itemsGetJumpableFrogs();})}InitItems();// ##############################################// button resetbutton.on("click",function(){InitItems();})// input resetinput_frogs.on("change",function(){InitItems();}) // +++++++++++++ // resize reinit // +++++++++++++ var resizeTimer; $(window).resize(function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(InitItems, 100); });//}(window.jQuery));

ORIGINAL POST

spiegel science added by Aislinn Lister

Comments

There are no comments yet.

You must log in to post a comment.

Similar news

no