Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 08.01.2014, 18:08   #11 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Владимир, как??? Там же всего 10*10*10=1000 комбинаций цифр.
Хотя, если вспомнить теорию вероятности...
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием

Старый 08.01.2014, 18:08
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я уверен, что эти топики не без полезной информации

Задача на Си
Задача с if
Задача на C#
Задача по С + +

Старый 08.01.2014, 18:22   #12 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
Владимир, как???
Да очень просто!
1. Ограничимся шестизначными числами, т.е. 0 в первой позиции не допускаем. Тогда мы можем найти полное число троек, дающих в сумме 13:
Код:
Var
 N,x,y,z:byte;
Begin
 N:=0;
 for x:=1 to 9 do
  for y:=0 to 9 do
   for z:=0 to 9 do
    if (x+y+z)=13 then Inc(N);
 Writeln(N);
 Readln
End.
Результат: 69.
Но!!! "Счастливым" является число, в котором СУММЫ троек цифр совпадают. Суммы, а не обязательно сами тройки! То есть "счастливой" является комбинация ЛЮБОЙ из 69 торек С ЛЮБОЙ ДРУГОЙ из них же! Вот так. И плюс к тому, в младшей тройке первый 0 допускается, т.е. там их - 75. Отсюда полное число комбинаций есть 69*75=5175. Уф, совпало!
А вообще проще не умствовать и не лезть в дебри комбинаторики, а решить простым перебором.
Vladimir_S вне форума   Ответить с цитированием
Старый 08.01.2014, 18:26   #13 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

А почему первая цифра не может быть равной 0? как насчет такого варианта 067139? Такие номера часто встречаются, например, в кинотеатрах, как вспомню, так и начинает голова чесаться (мы раньше перед киносеансом в щелбаны играли на цифры в номерах билетов)
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 08.01.2014, 18:29   #14 (permalink)
Стася
Новичок
 
Регистрация: 03.12.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
Ну вы радоваться то не торопитесь, задача решена не полностью, вы еще не реализовали механизм определения счастливого числа, введенного с клавиатуры
Ну это-то уже не сложно

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
А вот у меня получилось самую малость другое число: 5175.
А вот это уже проблема)
Стася вне форума   Ответить с цитированием
Старый 08.01.2014, 18:31   #15 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Это-то как раз не проблема и вполне объяснимо
Если следовать логике Владимира, первая тройка без 0 в начале дает 69 вариантов, вторая тройка даст вычисленные нами 75 комбинаций, в целом по билету будет 69*75=5175 комбинаций. Полное же количество вариантов с 0 в начале первой тройки даст нам 75*75=5625 комбинаций номеров
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 08.01.2014, 18:34   #16 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
А почему первая цифра не может быть равной 0? как насчет такого варианта 067139?
Ну, вообще-то речь в задаче идет о ШЕСТИЗНАЧНЫХ числах, а 067139 вообще-то пятизначное. Но если допустить и такие, то ответ будет 75²=5625.
Vladimir_S вне форума   Ответить с цитированием
Старый 08.01.2014, 18:36   #17 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
даст нам 75*75=5625 комбинаций номеров
Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
ответ будет 75²=5625.
Уф, ну, кажись, справились в два ума!
Vladimir_S вне форума   Ответить с цитированием
Старый 08.01.2014, 18:38   #18 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Формально вы правы, но на деле шестизначные номера билетов могут начинаться и с первых трех нулей и против этого ничего не поделаешь

Все дело в некорректности формулировки задачи. Следовательно, во всем виноват преподаватель, разработавший этот билет. На том и остановимся
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 08.01.2014, 18:41   #19 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
Формально вы правы, но на деле шестизначные номера билетов могут начинаться и с первых трех нулей и против этого ничего не поделаешь
Ха! Так ведь в задаче-то речь вовсе не о билетах, никакие билеты там не фигурируют, а именно о ШЕСТИЗНАЧНЫХ ЧИСЛАХ.
Vladimir_S вне форума   Ответить с цитированием
Старый 08.01.2014, 18:45   #20 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

задача решается тривиально в этом случае
Цитата:
var a,b,c,x,y,z,n:integer;
begin
n:=0;
for a:=1 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do
for x:=0 to 9 do
for y:=0 to 9 do
for z:=0 to 9 do
if ((x+y+z=13) or (a+b+c=13)) and (a+b+c=x+y+z) then inc(n);
writeln('n=',n);
readln
end.
__________________
Убить всех человеков!

Последний раз редактировалось AlexZir; 08.01.2014 в 18:53 Причина: Исправил ошибки :-)
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 21:39.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.