Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Детские задачи (https://javascript.ru/forum/offtopic/52743-detskie-zadachi.html)

Vlasenko Fedor 04.01.2015 23:26

Детские задачи
 
Сегодня у кума, сын 3 класс загадывает задачку
есть
123456789 = 100
между цифрами можно ставить любые арифметические знаки и скобки
мой вариант после 5 минут
1 + 2 + 3 + 4 + 5 + 6 + 7 + (8*9) = 100
Ваши варианты?:haha:
alert(1 + 2 + 3 + 4 + 5 + 6 + 7 + (8*9) );

krutoy 04.01.2015 23:41

Poznakomlus,
По-моему, это тупорылая задача, она решается методом тупого перебора, нет там никакого алгоритма решения. Попадалось что-то подобное у сына друга. Не уверен, но вроде так.

bes 04.01.2015 23:43

Цитата:

Сообщение от Poznakomlus
Детские задачи
Сегодня у кума, сын 3 класс загадывает задачку
есть
123456789 = 100
между цифрами можно ставить любые арифметические знаки и скобки
мой вариант после 5 минут
1 + 2 + 3 + 4 + 5 + 6 + 7 + (8*9) = 100
Ваши варианты?

скобки там зачем и почему код не запускаемый? :)
ты предлагаешь реализовать алгоритм полного перебора?

Vlasenko Fedor 04.01.2015 23:59

че, есть полный перебор, готов предложить?
твой пост без варианта говорит не тянешь (3 класс :haha: )
эти цифры в уме складываются по мере чтения, или уже отвык от калькулятора
Во блин как бы ты ответил этому пацаненку

bes 05.01.2015 00:04

Цитата:

Сообщение от Poznakomlus
че, есть полный перебор, готов предложить?
твой пост без варианта говорит не тянешь (3 класс )
эти цифры в уме складываются по мере чтения, или уже отвык от калькулятора

:D ты чё завёлся-то, у меня нет варианта, но задача в принципе интересная, кто знал, что ты в уме считать предложишь :D

Vlasenko Fedor 05.01.2015 00:12

Племяшка сказал, что есть 5 вариантов. Я ответил, что наверное больше давай пиши 2 вариант

JsLoveR 05.01.2015 00:37

Нетрудная задачка :)
alert (
  ((1 * 2) + (3 * 4)) * 5 + (6 + 7 + 8 + 9)
);

Vlasenko Fedor 05.01.2015 00:44

JsLoveR,
молодец
alert(1 +((2+3) *4 * 5)+6+(7*(8-9)));

ждем следующий :write:

bes 05.01.2015 00:44

alert(
	(1 + 2 + 3) * 4 + 5 + 6 + 7 * 8 + 9
);

кто-нибудь решит по-умному? :haha:

Vlasenko Fedor 05.01.2015 00:52

bes да молодец и вот мы все подходим к 3 классу :dance:
Цитата:

Сообщение от bes
решит по-умному

эт к быкам и коровам советую

JsLoveR 05.01.2015 00:55

Следующие:)
alert (
    (1 + 2 - 3) + 4 * ((56 / 7) + 8 + 9)
);

alert (
    (1 + 2) * 3 * 4 + 5 + (6 * 7 + 8 + 9)
);

Vlasenko Fedor 05.01.2015 01:08

JsLoveR плюсанул, ты подтвердил мое предположение.
Всем спасибо. Иногда стоит потренироваться. (3 класс) :dance:

bes 05.01.2015 01:46

для затравки

//без деления и скобок
var operators = ["+", "-", "*", "/"],
	mas = "123456789".split(""),
	str = "", 
	result,
	n = 0,
	index,
	resultArray = [];
for (var i = 0; i < 100000; i++) {
	n++;
	mas.forEach(function (value) {
		index = Math.round( 2 * Math.random() );
		str += value + operators[ index ];
	});
	str = str.substr(0, str.length - 1);
	result = eval(str);
	if ( result == 100 && resultArray.indexOf(str) == -1) resultArray.push(str);
	str = "";
	result = "";
}
console.log(resultArray.join("\n"));


1+2-3*4-5+6*7+8*9
1+2+3-4*5+6*7+8*9
1-2+3*4*5-6+7*8-9
1+2-3*4+5*6+7+8*9
1*2*3*4+5+6+7*8+9
1-2+3*4*5+6*7+8-9
1+2*3+4*5-6+7+8*9
1-2*3-4-5+6*7+8*9
1*2*3*4+5+6-7+8*9
1+2+3+4+5+6+7+8*9
1*2*3-4*5+6*7+8*9
1-2*3-4+5*6+7+8*9
1-2*3+4*5+6+7+8*9

bes 05.01.2015 11:18

взял функцию Sweet
http://javascript.ru/forum/misc/1942...tml#post117263

если ничего не напутал, то без скобок всего 15 вариантов

function combinator(matrix){
  return matrix.reduceRight(function(combination, x){
    var result = [];
    x.forEach(function(a){
      combination.forEach(function(b){
        result.push( [ a ].concat( b ) );
      });
    });
    return result;
  });
};

var ops = ["+", "-", "*", "/"],
	digits = "123456789".split(""),
	mas = [],
	resultArray = [];
	
//mas = combinator([ [1],ops,[2],ops,[3],ops,[4],ops,[5],ops,[6],ops,[7],ops,[8],ops,[9] ]);
digits.forEach(function (value) {
	mas.push([value]);
	mas.push(ops);
});
mas.splice(-1);
mas = combinator(mas);


mas = mas.map(function (value) {
	return value.join("");
});
mas.forEach(function (value) {
	if ( eval(value) == 100 ) {
		resultArray.push(value);
	};
});
console.log(resultArray.join("\n"));


1+2+3+4+5+6+7+8*9
1+2+3-4*5+6*7+8*9
1+2-3*4+5*6+7+8*9
1+2-3*4-5+6*7+8*9
1+2*3+4*5-6+7+8*9
1+2*3*4*5/6+7+8*9
1-2+3*4*5+6*7+8-9
1-2+3*4*5-6+7*8-9
1-2*3+4*5+6+7+8*9
1-2*3-4+5*6+7+8*9
1-2*3-4-5+6*7+8*9
1*2*3+4+5+6+7+8*9
1*2*3-4*5+6*7+8*9
1*2*3*4+5+6+7*8+9
1*2*3*4+5+6-7+8*9

nerv_ 05.01.2015 11:41

Цитата:

Сообщение от bes
взял функцию Sweet
перебор всех возможных значений

подключили комбинаторику :)

Gozar 05.01.2015 11:51

Цитата:

Сообщение от Poznakomlus
Иногда стоит потренироваться. (3 класс)

Хочешь сказать что проще не бывает: запрограммировать робота на уровне человека 3 класса? Ты хотя бы на уровне детсада попробуй. Это ещё никому не удалось. Самообучающиеся роботы это ещё не реальность. Все они ограничены и требуют целого парка программистов. Так что сарказм тут не очень уместен. Мозг сложный орган и повторить его также сложно.;)

bes 05.01.2015 12:30

Цитата:

Сообщение от nerv_
подключили комбинаторику

так давно это изучал и так редко пользовал, что теперь даже не могу сформулировать как назвать такой случай вклинивания подстановочных значений в строгую последовательность и посчитать общее количество различных вариантов, которое может получиться, а занового изучается как физика после новогодней пьянки :) (хотя .... booze continues :D )

nerv_ 05.01.2015 12:54

Цитата:

Сообщение от Gozar
Хочешь сказать что проще не бывает: запрограммировать робота на уровне человека 3 класса?

на уровне червя

bes 05.01.2015 13:35

Цитата:

Сообщение от nerv_
на уровне червя

http://2045.ru/news/33574.html
рано или поздно доиграются, арабы приделают пулькомёт и хана нам всем :yes:
хотя всех нас ждут черви

nerv_ 05.01.2015 14:52

Цитата:

Сообщение от bes
рано или поздно доиграются, арабы приделают пулькомёт и хана нам всем

Согласно твоей логике, человечество должно было уничтожить само себя с появлением оружия (лук, копья и т.п.) Как видишь живы до сих пор :) Более того, зачем арабам "пулькомет", если можно всех жахнуть бомбой?

Послушай академика РАН - Кризис человеческой цивилизации

bes 05.01.2015 15:02

Цитата:

Сообщение от nerv_
Согласно твоей логике, человечество должно было уничтожить само себя с появлением оружия (лук, копья и т.п.) Как видишь живы до сих пор Более того, зачем арабам "пулькомет", если можно всех жахнуть бомбой?

достаточное количество бомб арабам сбросить не дадут, а вот объекты (пока черви) с непредсказуемой реакцией на событие (а роботам ведь пох, у них страха нет) - реальная опасность, это как крутого боксёра, который никогда не проигрывает у себя на ринге, забивает кучка малолеток в подворотне

bes 05.01.2015 15:12

забыл добавить - малолетки были пьяны или под наркотой

nerv_ 05.01.2015 15:19

Цитата:

Сообщение от bes
(а роботам ведь пох, у них страха нет) - реальная опасность

См. видео по ссылке в моем предыдущем посте. От начала до конца.

bes 05.01.2015 15:24

Цитата:

Сообщение от nerv_
См. видео по ссылке в моем предыдущем посте. От начала до конца.

извини, nerv_, час такого видео я не потяну, если там есть что дельное, поделись

Gozar 05.01.2015 16:25

Цитата:

Сообщение от nerv_
Согласно твоей логике, человечество должно было уничтожить само себя с появлением оружия (лук, копья и т.п.) Как видишь живы до сих пор

Достаточно поиздеваться над ранимым человеком, чтобы он озлобился так, что будет ненавидеть 90% населения, за этими 90% он не увидит 10% которые будут ему нравиться.

Достаточно посмотреть на то, как ведут себя амеры в отношении эболы.

Я не удивлюсь если все так и случиться когда-нибудь в будущем. Гигантские роботы собранные в гараже какого-нибудь бедолаги будут крушить мир. http://lurkmore.to/%D0%9C%D0%B0%D1%8...B9%D0%B5%D1%80

bes 05.01.2015 19:29

Цитата:

Сообщение от Gozar (Сообщение 349676)

проникся статьёй и клипом
<iframe width="640" height="390" src="//www.youtube.com/embed/DEzqTC6zBDo" frameborder="0" allowfullscreen></iframe>

krutoy 05.01.2015 22:07

Цитата:

Сообщение от Gozar

че то сильно смахивает на постановку. здания картонные какие то.

У нас, кстати, был такой случай, мужик не согласился переезжать, его завод обстроил вокруг, так и живет. Правда, выезжать ему не препятствуют.


Часовой пояс GMT +3, время: 03:49.