Перейти к содержимому

Фотография

ЗадачиИнтересные задачи, интересные решения, способы реализации


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 101

#22019624
asr

asr
  • Модератор
  • 24 325 сообщений
Тема для интересных задач.
Обсуждение решений и реализаций на разных языках, сравнение, нахождение лучшего.

Сообщение отредактировал asr: 22.08.2012, 12:32:47

  • 0

#21
asr

asr
  • Модератор
  • 24 325 сообщений

1) Перебор с дробями работает?
2) реализация поиска НОДа для дробных чисел так как она мне в общем представляется сейчас займет более 5 минут :D и самое главное - мне это сейчас не нужно! :idea:
3) модератор поощряет оффтоп?

1) Кудаж ему деваться?
2) Сколько займет?
3) Уже перекинул.

Сообщение отредактировал asr: 22.08.2012, 13:27:31

  • 0

#23
topcraze

topcraze
  • В доску свой
  • 2 009 сообщений
1. Странно. У вас там вроде как Round участвует, причем округляет до целого
2. Хз. При наличии полностью свободного времени и условии того, что мое предположение верно час, два наверное. Ну а если неверно - сами понимаете.. :)
  • 0

#24
asr

asr
  • Модератор
  • 24 325 сообщений

1. Странно. У вас там вроде как Round участвует, причем округляет до целого
2. Хз. При наличии полностью свободного времени и условии того, что мое предположение верно час, два наверное. Ну а если неверно - сами понимаете.. :)

1 Round имеет параметры. По умолчанию до целого, при использовании Round(XXX,2) до второго знака после запятой.
2 Понятно.
  • 0

#25
Gonzo

Gonzo
  • Свой человек
  • 565 сообщений
2 часа ночи, а мне, по всей видимости, делать нечего...
Вот и решил с вами порешать... нет, как-то нехорошо сказано, задачку в общем того этого...
Значится, чего мы имеем: a и b > 0, a > b, a и b - целые числа...

Вариант 1: поиск НОД вычитанием, не особо эффективно, но для данной задачи работает...

1) из большего числа вычитаем меньшее;
2) если результат = 0, то числа равны друг другу и являются НОД (следует выйти из цикла);
3) если результат не равен 0, то большее число заменяем на результат вычитания;
4) вращаем барабан... а нет, это не из той оперы... переходим к пункту 1;

тестируем на паре чисел a = 1071 и b = 462...
1071 - 462 = 609
609 - 462 = 147
462 - 147 = 315
315 - 147 =168
168 - 147 = 21
147 - 21 = 126
126 - 21 = 105
105 - 21 = 84
84 - 21 = 63
63 - 21 = 42
42 - 21 = 21
21 - 21 = 0 Конец: НОД – это уменьшаемое или вычитаемое.
  • 0

#26
Gonzo

Gonzo
  • Свой человек
  • 565 сообщений
Хотя, это ещё не всё... можно найти НОД делением... это побыстрее будет...
1) большее число делим на меньшее;
2) если делится без остатка, то меньшее число и есть НОД (следует выйти из цикла);
3) если есть остаток, то большее число заменяем на остаток от деления;
4) переходим к пункту 1;

1071/462 = 2 и 147 в остатке
462/147 = 3 и 21 в остатке
147/21 = 7 и 0 в остатке
Конец: НОД - это делитель.
  • 1

#27
Gonzo

Gonzo
  • Свой человек
  • 565 сообщений
А... ещё же эту байду реальзовать надо...
Мде, а у меня и IDE'шек никаких нету... :cry:

О, прозрение! Viva la Microsoft! Microsoft Über Alles :dont:
Всегда под рукой блокнот и Internet Explorer.


<script language="javascript">
function gcf_by_dividing(a,b) {
while(a != 0 && b != 0) {
if(a > b)
a = a % b;
else
b = b % a;
}
return(a+b);
}
//в цикле в a или b записывается остаток от деления...
//если остатка нет (мы не знаем в а он или b, поэтому проверяем оба условия), то цикл завершается...
//в конце выводится сумма a и b, т.к. мы не знаем, в какой переменной записан НОД, а в одной из них в любом случае 0, который на результат суммы никак не влияет.
</script>
<input onclick="alert(gcf_by_dividing(1071,462))" type="submit" value="НОД Вариант 2">

Сообщение отредактировал Gonzo: 23.08.2012, 02:40:48

  • 0

#28
Gonzo

Gonzo
  • Свой человек
  • 565 сообщений
Опп, про первый вариант я как-то позабыл... непорядок! Реализовываем...


<script language="javascript">
function gcf_by_subtracting(a,b) {
while (a != b) {
if (a > b)
a -= b;
else
b -= a;
}
return a;
}
</script>
<input onclick="alert(gcf_by_subtracting(1071,462))" type="submit" value="НОД Вариант 1">

Сообщение отредактировал Gonzo: 23.08.2012, 02:45:01

  • 0

#29
Gonzo

Gonzo
  • Свой человек
  • 565 сообщений
О, есть же рекурсия... это ещё короче...

<script language="javascript">
function gcf_recursive(a, b) {
return b && gcf_recursive(b, a%b) || a;
}
</script>
<input onclick="alert(gcf_recursive(1071,462))" type="submit" value="НОД Вариант 3">


Upd. забыл про минуса...


<script language="javascript">
function gcf_recursive2(a, b) {
return b && gcf_recursive(b, a-b) || a;
}
</script>
<input onclick="alert(gcf_recursive2(1071,462))" type="submit" value="НОД Вариант 4">


А вот с дробями что-то не соображу... мде, видимо я идиот, как жаль :cry:
Надо будет посмотреть, что об этом математики думают, хотя, надо ли оно мне?
Нет, определенно не надо... потому что пиво заканчивается, денег нет, торт кудук, палящее солнце будет завтра жара, а люди занимаются хе**ёй :cry:
Фхтагн, во истину! :mad:

Upd2. Я хочу быть программистом!!! Или не хочу... ладно, пускай будет undefined!!!

Сообщение отредактировал Gonzo: 23.08.2012, 03:03:01

  • 0

#30
asr

asr
  • Модератор
  • 24 325 сообщений

А вот с дробями что-то не соображу... мде, видимо я идиот, как жаль :cry:
Надо будет посмотреть, что об этом математики думают, хотя, надо ли оно мне?
Нет, определенно не надо... потому что пиво заканчивается, денег нет, торт кудук, палящее солнце будет завтра жара, а люди занимаются хе**ёй :cry:
Фхтагн, во истину! :mad:

Upd2. Я хочу быть программистом!!! Или не хочу... ладно, пускай будет undefined!!!

Мне понравилось.

Сообщение отредактировал asr: 23.08.2012, 09:27:09

  • 0

#31
asr

asr
  • Модератор
  • 24 325 сообщений
Ладно задача попроще более логическая.
Есть планирование, есть выполнение плана, надо посчитать процент выполнения плана.
Запланировано 1000 тенге выполнено на 2000 тенге процент выполнения 200%
Запланировано 0 тенге выполнено на 2000 тенге процент выполнения ???%
  • 0

#32
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Хотя, это ещё не всё... можно найти НОД делением... это побыстрее будет...
1) большее число делим на меньшее;
2) если делится без остатка, то меньшее число и есть НОД (следует выйти из цикла);
3) если есть остаток, то большее число заменяем на остаток от деления;
4) переходим к пункту 1;

1071/462 = 2 и 147 в остатке
462/147 = 3 и 21 в остатке
147/21 = 7 и 0 в остатке
Конец: НОД - это делитель.

Gonzo, отлично. НОД(1071, 462) = 21 найден всего за 3 итерации.

Быдлокодеры со своим перебором по 462 раза идут лесом.
  • 0

#33
asr

asr
  • Модератор
  • 24 325 сообщений


Хотя, это ещё не всё... можно найти НОД делением... это побыстрее будет...
1) большее число делим на меньшее;
2) если делится без остатка, то меньшее число и есть НОД (следует выйти из цикла);
3) если есть остаток, то большее число заменяем на остаток от деления;
4) переходим к пункту 1;

1071/462 = 2 и 147 в остатке
462/147 = 3 и 21 в остатке
147/21 = 7 и 0 в остатке
Конец: НОД - это делитель.

Gonzo, отлично. НОД(1071, 462) = 21 найден всего за 3 итерации.

Быдлокодеры со своим перебором по 462 раза идут лесом.

Звездоболы туда же..
  • 0

#34
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Звездоболы туда же..

Самокритичность, достойная похвалы.

Сообщение отредактировал Visual1: 23.08.2012, 10:40:09

  • 0

#35
asr

asr
  • Модератор
  • 24 325 сообщений


Звездоболы туда же..

Самокритичность, достойная похвалы.

Для непонятливых звездоболы это типа вас....
Звездит много результат 0.
Решения моей задачки я не увидел.
  • 0

#36
asr

asr
  • Модератор
  • 24 325 сообщений



Звездоболы туда же..

Самокритичность, достойная похвалы.

Для непонятливых звездоболы это типа вас....
Звездит много результат 0.
Решения моей задачки я не увидел.

Видимо нет в инете....:))
  • 0

#37
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Для непонятливых звездоболы это типа вас....
Звездит много результат 0.

Вы звездите (это ваша терминология, не моя) еще больше. А ваш результат - даже не 0, а ниже нуля. Он отрицательный.

Решения моей задачки я не увидел.

И не увидите. Потому что у вас неприятная манера врать и хамить.
  • 0

#38
thcrym

thcrym
  • Завсегдатай
  • 142 сообщений

Хотя, это ещё не всё... можно найти НОД делением... это побыстрее будет...
1) большее число делим на меньшее;
2) если делится без остатка, то меньшее число и есть НОД (следует выйти из цикла);
3) если есть остаток, то большее число заменяем на остаток от деления;
4) переходим к пункту 1;

1071/462 = 2 и 147 в остатке
462/147 = 3 и 21 в остатке
147/21 = 7 и 0 в остатке
Конец: НОД - это делитель.

Нахождения НОДа ни в школе, ни в универе не могу вспомнить, а алгоритм грамотный.

Ладно задача попроще более логическая.
Есть планирование, есть выполнение плана, надо посчитать процент выполнения плана.
Запланировано 1000 тенге выполнено на 2000 тенге процент выполнения 200%
Запланировано 0 тенге выполнено на 2000 тенге процент выполнения ???%

смею предположить на 2000%

Сообщение отредактировал thcrym: 23.08.2012, 11:15:47

  • 0

#39
Gonzo

Gonzo
  • Свой человек
  • 565 сообщений
Никогда бы не подумал, что буду читать математический справочник.... :faceoff:
Но, сегодня, находясь в трезвом уме, почитав про НОД и рациональные числа, пришёл к выводу, что для дробей это понятие (НОД) отсутствует как таковое...
Следовательно как его вычислить - х.з.
  • 0

#40
asr

asr
  • Модератор
  • 24 325 сообщений


Решения моей задачки я не увидел.

И не увидите. Потому что у вас неприятная манера врать и хамить.

Я знаю что не увижу ибо шевелить мозгами, это не из инета дергать примеры.
Я что соврал что вы до сих пор не представили алгоритм? Уже все здесь присутсвующие представили. Кроме вас.
Хамить? А кто тут начал звездеть про "программиста за такое надо гнать поганой метлой с работы"



Ладно задача попроще более логическая.
Есть планирование, есть выполнение плана, надо посчитать процент выполнения плана.
Запланировано 1000 тенге выполнено на 2000 тенге процент выполнения 200%
Запланировано 0 тенге выполнено на 2000 тенге процент выполнения ???%

смею предположить на 2000%

смею предположить на 2000% будет при плане в 1 тенге. Что не равно плану в 0 тенге.

А что скажет наш звездун? Подозреваю или промолчит или опять бла-бла-бла... "мне некогда, мне не интересно, у вас грубое обращение.."

Сообщение отредактировал asr: 23.08.2012, 12:22:09

  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.