Регистрирайте сеРегистрирайте се

Как с 8 опита можем със 100% сигурност да познаем число


 
   Форум за математика Форуми -> Забавна математика
Предишната тема :: Следващата тема  
Автор Съобщение
NoThanks
Гост






МнениеПуснато на: Fri Nov 21, 2008 7:20 pm    Заглавие: Как с 8 опита можем със 100% сигурност да познаем число

Като гледам, че напоследък пускате доста задачи тук, се присетих за една, по която правихме програмка в 10ти клас Very Happy Да се намери алгоритъм, чрез който с 8 опита можем със 100% сигурност да познаем число в интервала [1;1000], ако след всеки от опитите ни се казва дали търсеното число е по-малко или по-голямо от това, което сме казали.
Върнете се в началото
Реклама







Пуснато на:     Заглавие: Реклама

Върнете се в началото
dgs
Редовен


Регистриран на: 23 Jun 2008
Мнения: 228

Репутация: 25Репутация: 25Репутация: 25
гласове: 13

МнениеПуснато на: Fri Nov 21, 2008 7:25 pm    Заглавие:

Тоя алгоритъм щеше да пасне перфектно на задачата за зайците (Задача 14 на седмицата - още не е решена), стига там да можехме да правим 8 последователни опита (а не само един).
// Трябват ни (само) 5 последователни опита и ще нахраним (поне) 936 човека. Може и повече, стига да са ни останали живи зайци след 5-тия опит
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fed
VIP


Регистриран на: 24 May 2007
Мнения: 1136
Местожителство: София (Русе)
Репутация: 113.3
гласове: 33

МнениеПуснато на: Fri Nov 21, 2008 8:20 pm    Заглавие:

Двоично търсене по някакъв начин...
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dgs
Редовен


Регистриран на: 23 Jun 2008
Мнения: 228

Репутация: 25Репутация: 25Репутация: 25
гласове: 13

МнениеПуснато на: Fri Nov 21, 2008 8:32 pm    Заглавие:

И аз в предишния пост си мислех за двоично търсене.
Ама сега на второ четене, мисля, че 8 на брой опита не стигат за 100% сигурност при 1000 числа
С 8 опита и двоично търсене, ще стесним интервала до четири последователни числа. И едно от тези четири е търсеното
При 1000 числа, трябват 10 опита за двоичното търсене
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fed
VIP


Регистриран на: 24 May 2007
Мнения: 1136
Местожителство: София (Русе)
Репутация: 113.3
гласове: 33

МнениеПуснато на: Fri Nov 21, 2008 8:57 pm    Заглавие: Re: Как с 8 опита можем със 100% сигурност да познаем число

Прав си...

NoThanks написа:
Да се намери алгоритъм, чрез който с 8 опита можем със 100% сигурност да познаем число в интервала [1;1000]

Намираме си човек, който чете мисли и от време на време бъркаме нарочно числото да не стане съмнително Rolling Eyes
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
NoThanks
Гост






МнениеПуснато на: Sat Nov 22, 2008 12:22 pm    Заглавие:

dgs написа:
И аз в предишния пост си мислех за двоично търсене.
Ама сега на второ четене, мисля, че 8 на брой опита не стигат за 100% сигурност при 1000 числа
С 8 опита и двоично търсене, ще стесним интервала до четири последователни числа. И едно от тези четири е търсеното
При 1000 числа, трябват 10 опита за двоичното търсене

Прав си, грешката е моя. Все пак съм горд, че се сетих за задачката, макар и в не най-точния й вид Laughing
Върнете се в началото
martosss
VIP Gold


Регистриран на: 17 Mar 2007
Мнения: 3937
Местожителство: Somewhere over the rainbow
Репутация: 424.2Репутация: 424.2
гласове: 213

МнениеПуснато на: Sat Nov 22, 2008 4:07 pm    Заглавие:

е ми трябва винаги да казваме числото, което е най-близко да средата на интервала... ама наистина с 8 опита не става Confused с 9-10 опита е по-вероятно Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Methuselah
VIP


Регистриран на: 17 Feb 2007
Мнения: 1057
Местожителство: София
Репутация: 105.9
гласове: 20

МнениеПуснато на: Sat Nov 22, 2008 5:09 pm    Заглавие:

С log2|b - a| за [a;b] Mr. Green
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dgs
Редовен


Регистриран на: 23 Jun 2008
Мнения: 228

Репутация: 25Репутация: 25Репутация: 25
гласове: 13

МнениеПуснато на: Sat Nov 22, 2008 5:27 pm    Заглавие:

Methuselah написа:
С log2|b - a| за [a;b] Mr. Green


ROUND(0,4999 + log2|b - a|) за [a;b] Mr. Green Mr. Green
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
JusTok
Редовен


Регистриран на: 26 Jul 2007
Мнения: 117
Местожителство: Варна
Репутация: 45.3Репутация: 45.3Репутация: 45.3Репутация: 45.3Репутация: 45.3
гласове: 24

МнениеПуснато на: Sun Nov 23, 2008 10:07 pm    Заглавие:

Това май не е възможно с по малко от 10 опита Confused
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
voknid
Редовен


Регистриран на: 06 Dec 2008
Мнения: 150
Местожителство: гр. Пловдив
Репутация: 18.1Репутация: 18.1
гласове: 6

МнениеПуснато на: Fri Dec 12, 2008 12:51 am    Заглавие: Бабешки алгоритъм

Деля 1000 на 2, резултата пак на 2 и т.н. докато получа число по-малко от 1. Ето какво се получава:
оп
ит 1000
1 = 500
2 = 250
3 = 125
4 = 62.5
5 = 31.25
6 = 15.625
7 = 7.8125
8 = 3.90625
9 = 1.953125
10 = 0.9765625
Извод: за гарантирано познаване на цяло число от 1 до 1000 са достатъчни 10 опита, ако след всеки опит знаем посоката (+ или -) към верния отговор. Не трябва ли автора на тази тема да и коригира заглавието - вместо 8, 10? Между другото - нещо подобно се използува в т.н. алгоритъм за сортиране на числа чрез "клатене". Ако бъркам нещо, поправете ме.

Пример: Игра "Познай теглото на предмета"
Стратегия:
1. След всеки грешен опит корегирам долната или горната граница на диапазона, в който търся.
2. За следващия опит избирам средата на новия диапазон.
3. Повтарям т.1 и т.2 докато диапазона се стесни достатъчно близо до верния отговор.

Начално положение: долна граница = 0 кг., горна = 1000 кг. Предмета тежи 300 кг. Аз не знам това, но трябва да го позная с минимален брой опити чрез налучкване или смятане.
опит 1 - посочвам 500 (средата), отговарят ми: "не улучи, надолу" (=> нова горна граница = 500)
опит 2 - посочвам 250 =(0 + 500)/2, отговарят ми: "не улучи, нагоре" (=> нова долна граница = 250)
опит 3 - посочвам 375 =(250+500)/2, отговарят ми: "не улучи, надолу" (=> нова горна граница = 375) и т.н. доближавайки се с всеки следващ опит все по-близо до верния отговор.
Трябва да помня последните долна и горна граница и да ги събирам и деля на 2 наум. Това е номера Laughing


Последната промяна е направена от voknid на Fri Dec 12, 2008 7:45 pm; мнението е било променяно общо 3 пъти
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
charlie_eppes
Редовен


Регистриран на: 06 Dec 2007
Мнения: 207

Репутация: 3Репутация: 3Репутация: 3
гласове: 16

МнениеПуснато на: Fri Dec 12, 2008 5:59 am    Заглавие:

Дайте пример!!! Ако да речем че числото е 71? Как ще стане работата???
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
savage309
Напреднал


Регистриран на: 28 Feb 2007
Мнения: 277

Репутация: 39.6Репутация: 39.6Репутация: 39.6Репутация: 39.6
гласове: 3

МнениеПуснато на: Fri Dec 12, 2008 6:59 pm    Заглавие:

charlie_eppes написа:
Дайте пример!!! Ако да речем че числото е 71? Как ще стане работата???

500,250,125,63,94,78,70,74,72,71 Question
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
charlie_eppes
Редовен


Регистриран на: 06 Dec 2007
Мнения: 207

Репутация: 3Репутация: 3Репутация: 3
гласове: 16

МнениеПуснато на: Fri Dec 12, 2008 7:19 pm    Заглавие:

savage309 написа:
charlie_eppes написа:
Дайте пример!!! Ако да речем че числото е 71? Как ще стане работата???

500,250,125,63,94,78,70,74,72,71 Question

Можеш ли да обясниш какво правиш след 63?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
voknid
Редовен


Регистриран на: 06 Dec 2008
Мнения: 150
Местожителство: гр. Пловдив
Репутация: 18.1Репутация: 18.1
гласове: 6

МнениеПуснато на: Fri Dec 12, 2008 8:09 pm    Заглавие:

charlie_eppes написа:
savage309 написа:
charlie_eppes написа:
Дайте пример!!! Ако да речем че числото е 71? Как ще стане работата???

500,250,125,63,94,78,70,74,72,71 Question

Можеш ли да обясниш какво правиш след 63?


[tex]94 = int(\frac{63+125}{2})[/tex] отг.: не, надолу

[tex]78 = int(\frac{63+94}{2})[/tex] отг.: не, надолу

[tex]70 = int(\frac{63+78}{2})[/tex] отг.: не, нагоре

[tex]74 = int(\frac{70+78}{2})[/tex] отг.: не, надолу

[tex]72 = int(\frac{70+74}{2})[/tex] отг.: не, надолу

[tex]71 = int(\frac{70+72}{2})[/tex]
Ако отговорът е "надолу", смъкваме горната граница. Ако отговорът е "нагоре", вдигаме долната. Елементарно, нали!


Последната промяна е направена от voknid на Sat Dec 13, 2008 11:24 am; мнението е било променяно общо 1 път
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
charlie_eppes
Редовен


Регистриран на: 06 Dec 2007
Мнения: 207

Репутация: 3Репутация: 3Репутация: 3
гласове: 16

МнениеПуснато на: Fri Dec 12, 2008 8:40 pm    Заглавие:

voknid написа:
charlie_eppes написа:
savage309 написа:
charlie_eppes написа:
Дайте пример!!! Ако да речем че числото е 71? Как ще стане работата???

500,250,125,63,94,78,70,74,72,71 Question

Можеш ли да обясниш какво правиш след 63?


[tex]94 = int(\frac{63+125}{2})[/tex]

[tex]78 = int(\frac{63+94}{2})[/tex]

[tex]70 = int(\frac{63+78}{2})[/tex]

[tex]74 = int(\frac{70+78}{2})[/tex]

[tex]72 = int(\frac{70+74}{2})[/tex]

[tex]71 = int(\frac{70+72}{2})[/tex]
Ако отговорът е "надолу", смъкваме горната граница. Ако отговорът е "нагоре", вдигаме долната. Елементарно, нали!

Защо почна да събираш със 70?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
voknid
Редовен


Регистриран на: 06 Dec 2008
Мнения: 150
Местожителство: гр. Пловдив
Репутация: 18.1Репутация: 18.1
гласове: 6

МнениеПуснато на: Sat Dec 13, 2008 11:18 am    Заглавие:

charlie_eppes написа:
voknid написа:
charlie_eppes написа:
savage309 написа:
charlie_eppes написа:
Дайте пример!!! Ако да речем че числото е 71? Как ще стане работата???

500,250,125,63,94,78,70,74,72,71 Question

Можеш ли да обясниш какво правиш след 63?


[tex]94 = int(\frac{63+125}{2})[/tex]

[tex]78 = int(\frac{63+94}{2})[/tex]

[tex]70 = int(\frac{63+78}{2})[/tex]

[tex]74 = int(\frac{70+78}{2})[/tex]

[tex]72 = int(\frac{70+74}{2})[/tex]

[tex]71 = int(\frac{70+72}{2})[/tex]
Ако отговорът е "надолу", смъкваме горната граница. Ако отговорът е "нагоре", вдигаме долната. Елементарно, нали!

Защо почна да събираш със 70?

Ами като казвам 70 и ми отговорят "не, нагоре", вдигамм долната граница от 63 на 70. (70 > 63) Трябва да помня последните долна и горна граница, разбира се.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
charlie_eppes
Редовен


Регистриран на: 06 Dec 2007
Мнения: 207

Репутация: 3Репутация: 3Репутация: 3
гласове: 16

МнениеПуснато на: Sat Dec 13, 2008 8:26 pm    Заглавие:

voknid написа:
charlie_eppes написа:
voknid написа:
charlie_eppes написа:
savage309 написа:
charlie_eppes написа:
Дайте пример!!! Ако да речем че числото е 71? Как ще стане работата???

500,250,125,63,94,78,70,74,72,71 Question

Можеш ли да обясниш какво правиш след 63?


[tex]94 = int(\frac{63+125}{2})[/tex]

[tex]78 = int(\frac{63+94}{2})[/tex]

[tex]70 = int(\frac{63+78}{2})[/tex]

[tex]74 = int(\frac{70+78}{2})[/tex]

[tex]72 = int(\frac{70+74}{2})[/tex]

[tex]71 = int(\frac{70+72}{2})[/tex]
Ако отговорът е "надолу", смъкваме горната граница. Ако отговорът е "нагоре", вдигаме долната. Елементарно, нали!

Защо почна да събираш със 70?

Ами като казвам 70 и ми отговорят "не, нагоре", вдигамм долната граница от 63 на 70. (70 > 63) Трябва да помня последните долна и горна граница, разбира се.

Е добре не трябва ли да познаеш числото без моя помощ!? То дет се вика и ако стане по тоя метод аз само да казвам нагоре или надолу по сто пъти ти ест. че все някога ще го познаеш.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:   
   Форум за математика Форуми -> Забавна математика Часовете са според зоната GMT + 2 Часа
Страница 1 от 1

 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети
Може да прикачвате файлове
Може да сваляте файлове от този форум
Copyright © 2005-2021 math10.com.