Сап,Реахтур. / программирование :: акинатор :: совет :: помощь :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

помощь совет акинатор geek программирование песочница 
Сап,Реахтур.Знаю здесь много талантливых тыжпрограммистов,которым я хочу задать вопрос:насколько сложен механизм/алгоритм "Акинатора"?
Насколько квалифицированным надо быть чтобы написать эту программу,насколько это сложно?
Очень надеюсь на ваши советы.
помощь,совет,акинатор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,программирование,песочница
Подробнее

помощь,совет,акинатор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,программирование,песочница
Еще на тему
Развернуть
Тебе нужна просто большая база ответов, что от тыжпраграммистов зависит не сильно D:
SQL (желательно), умение читать/писать в текстовые файлы (метод говнокодеров). Ну и сопоставление ответов вопросам. Это можно сделать любым возможным способом! Плюс/минус пару обработчиков и всё такое.

Все же "сапера" написать немного сложнее!
groser groser 24.02.201522:12 ответить ссылка -1.3
http://rutracker.org/forum/viewtopic.php?t=546159

Вот здесь (книга 1991 года) есть программа игры "Животные" на Бейсике - фактически тот же Акинатор (страница 65).
Нужно еще погуглить "игра Животные".
http://www.sql.ru/forum/946301/igra-ugaday-zhivotnoe-ispolzuya-principy-oop-v-delphi-pomogite-pozhaluysta
1 DIM On(500>/Ва45/Рв1^Ao1:0M ERROR En,Nn GOTO 10
2 I,J=0:0os"K0T":G0T0 7
3 J = J* 1 : I F I>0 THEN 4:I-1:GOTO 5
4 1*2*1:1F Pn = ad THEN 5 : 1 = 1*1
5 CONVERT 1 TO in, (ttnnttttUnU ):
DATA LOAD DC OPEN R In:DA T A LOAD DC 3“,0a,pa
6 0°(J )= 0“:PR IN T 3n; : GOSUB 14:A“=V“:IF Двора THEN 3
7
Y и Н на одной кнопке же, лол.
Несложно. Чудеса отгадывания творит большая база знаний, собранная с пользователей.
4otaku 4otaku 24.02.201522:19 ответить ссылка 0.7
Нужна база более-менее честных ответов.
И возможность пополнять базу.
если он не знает ответа он сдаётся и просит написать кого ты загадал, проверяли =)
Ну так там уже есть база честных ответов. Чем она изначально больше, тем исхищрённее будут вопросы, они также обновляются вместе с базой (участвовал ли персонаж в звёздных войнах или живёт на дне океана) .
да не всё так просто, нужно вести древовидную структуру данных и уметь осуществлять по ней поиск.
lishen lishen 24.02.201522:20 ответить ссылка 0.0
Те же "128 советов начинающему программисту", на этот раз программа на Паскале.
PROGRAM ANIMALS (IN PUT,OUT PUT );		
LABEL	1.2;	
TYPE	TRELEMENT=RECORD QUEST10N,ANSWER:STRING ; YESPOINTER,N0P0INTER:*TREL6MENT END;	
VAR INITIAL,CURRENT:TRELEM6NT;NEXT:‘TRELEMENT; • • •		
BEGIN		
INITIAL.QUESTION: = 'ОНО ЛОВИ T МЫШЕЙ';		
INITI AL .ANSUER: = 'KOT';		
INITIAL.YESP01NTER: =
Как это сделал бы я.

1. Тут все пишут про базу знаний, но зыбывают про базу вопросов. Это первое что я бы подготовил. Вопросы типа: Это реалньный персонаж? Это мужчина? Старше 25. и т.п.

2. Создал бы БД. с полями isReal, isMan, isOlder25 и т.п.
3. Выводим вопрос: Это реальный персонаж? По результату делаем запрос в базу. Получаем пустой сет, но пока продолжаем задавать вопросы, допустим, если сет пустой задаем 5 вопросов. После того как задали эти 5 вопросов пишем "Я сдаюсь, напиши что это за персонаж". Запомненные вопросы и имя персонажа вносим в нашу базу.
4. Если вернулось больше одной записи, продолжаем задавать вопросы, пока не вернется 1 запись. Как только запись будет 1 выводим имя перса. И спрашиваем у пользака правильно ли мы угадали или нет. Если да - конец. Если нет, предлагаем ввесити имя перса (пополняем базу)

как-то так.
Гхм... уважаемые минусующие, извините, что я не использовал терминов типа "бинарные деревья" и не нагуглил распечатку сурцов древних как говно мамонта, а также не пустился в пространные размышления. Я всего лишь попытался описать алгоритм который можно максимально просто реализовать. Да возможно он не идеален. Но с него можно начать, а походу будет ясно что в нем не так и куда копать. Вот. А вы... со своими минусами... и даже без объяснений... фу такими быть.
Ещё не хватает заподазривания игрока во лжи.
Кстати я удивлен почему ты отхватил минусов - ты описал самую простую самообучающуюся систему, которая выполняет ровно то что от нее требовали.

Другой вопрос что у акинатора есть огромная база данных. Непонятно как ее формировать вначале....
ALD960 ALD960 25.02.201501:10 ответить ссылка 0.1
Возможно из-за "создал бы БД с полями", вместо "таблицу с полями" или запятую не там поставил. Реактор же. Ну и вообще криво написал конечно. Но это же не ТЗ, просто набросок. Формировали, думаю, как у меня написано давали проходить друзьям знакомым.
а когда он появился? возможно база была не большой, но ему уже ведь дохрена лет
В 2004 как минимум http://web.archive.org/web/20040101000000*/http://akinator.com
Для введения новых вопросов придётся добавлять поля. Я, конечно, не спец по внутренностям СУБД - но зачем увеличивать размер отдельной записи полями, которые чаще всего не нужны?
Так что скорее таблицы вида
id_вопроса; текст вопроса
id_персонажа; название
id_вопроса; id_персонажа; число ответивших "Да"; число ответивших "нет"
Блин, некромант некропостер хренов :-)
Для понимания проще построчное хранение, нагляднее. Потом, если человек разберется в алгоритме, вариант хранения подберет. А так то да, поднял меня из мертвых. Давно ничего не писал. ))
Я чего пост написал вообще
Пришла идея алгоритма на подобии Акинатора,но который не персонажей угадывает,а сможет поставить диагноз,пусть и примерно(а возможно и намного точнее нынешних врачей) и уж точно лучше интернет оветчиков типа на мейл.ру
Сам фармацевт,но как прогер кодер-я профан
Экспертные системы. В принципе, давно существуют, но широкого применения пока вроде не нашли (по крайней мере - в чистом виде они).
Но есть и немалое число недостатков (в основном - связанных с нестандартными ситуациями). Так что поточнее основной массы советчиков, но рекомендации "вали к врачу" не отменяет (хотя, я так думаю - об этом и речи е было :-) )
На мой взгляд, с этой идей только побаловаться можно. Что-то серьезное - врятли.
Копипаст из http://www.old-games.ru/forum/showthread.php?t=58360

Игра не моя, переписывал на GWBasic по памяти из "Науки и жизни". Претендует на звание самой короткой. Играть лучше толпой. В институте даже как-то втюхал ее под видом экспертной системы. Может использоваться при построении БД для уточнения критериев классификации сущностей:
Код:
10 OPTION BASE 1: DIM D$(1025): D$(1)="ЭТО КОТ": I=1: ON ERROR GOTO 80
20 PRINT D$(I);: INPUT O$: O$=LEFT$(O$,1)
30 IF I"" GOTO 70
40 IF O$="Д" OR O$="д" THEN PRINT "УРРА-А!": I=1: GOTO 20
50 D$(I*2+1)=D$(I): INPUT "А КТО ЭТО";O$: D$(I*2)="ЭТО "+O$
60 INPUT "ЧЕМ ОТЛИЧАЕТСЯ";D$(I): I=1: GOTO 20
70 IF O$="Д" OR O$="д" THEN I=I*2: GOTO 20: ELSE I=I*2+1: GOTO 20
80 PRINT "НЕ ХВАТАЕТ МОЗГОВ!": END
Сам алгоритм у него довольно прост, но это компенсируется с лихвой огромным количеством данных. Общая идеологий механизма элементарна: если у тебя есть море параметров, то этого хватит, чтобы идентифицировать что угодно.
Представь, что тебе надо идентифицировать всех людей на планете, не давая им при этом уникальные идентификационные номера (как в паспортах). И теперь вместо того, чтобы говорить гос. службам свой номер паспорта, ты диктуешь им кучу своих биометрических параметров: цвет глаз, рост, вес, возраст, длину волос, размер носа, толщину губ, расстояние между бровями, угол линии лба... (предположим, что при изменении параметра надо его "перерегистрировать" на паспортном столе) На самом деле, такой подход за вычетом его адовой сложности был бы рабочим, что легко понять: хрен ты найдешь людей с одинаковой внешностью (не считая близнецов). Примерно так и устроен их алгоритм: если это не один и тот же персонаж, а два разных, то они хоть чем-то да отличаются друг от друга, поэтому при хорошем наборе данных не нужно никаких умных механизмов, чтобы это вычислить.
так ведь Бейесова модель?нэ?!
beta! beta! 24.02.201523:15 ответить ссылка 0.0
Для начала, научись ставить пробел после знаков препинания.
Это не сложно, смотри: "Саша, Маша играли на полу. Саша Маше..."
И так далее.
Moralfag Moralfag 24.02.201523:27 ответить ссылка -0.3
В свете последних событий...
г
Я думаю это split
Сплит хуесос
© Copyright / IP Policy
Блин, он реально о сплите знает :)
AshB AshB 25.02.201500:45 ответить ссылка 0.9
ох лол
Акинатор - чёртова самообучающаяся программа. Это многие страницы кода.
Hiss Hiss 25.02.201500:04 ответить ссылка -1.0
нет, лол
просто посмотри короткие примеры вокруг
игра просто задает вопросы, ответ на которые дает то или иное направление.
и вопросы и ответы дают сами игроки.

изначально можно вообще вписать в БД один ответ
игра("животные", например) будет спрашивать "это собака?"
скорее всего играющий загадал не собаку,
поэтому игра спросит что он загадал ("дельфина")
и спросит, как отличить собаку от дельфина - ("живет в море")
отлично, теперь у игры есть один вопрос "это животной живет в море?" и два варианта - для "да" и для "нет"
т.е. следующий игрок загадавший и ответивший - добавит вопрос для ветки "да" или "нет", и так далее ...

понятное дело что можно усложнить, и можно отмодерировать чтобы игроки не врали, но суть игры очень проста.
nivo nivo 09.03.201512:10 ответить ссылка 0.0
Интересно что у них там за бд для Акинатора используется
А я бы на структуру данных посмотрел...
Меня (как профана в программировании) интересовала попытка устроить программу типа Акинатора не как базу данных. А как метапоисковик с поиском по предыдущим результатам. Т.е. в интернете наверняка уже есть данные различных личностей и персонажей, наверняка не все в виде таблиц, поэтому придется использовать поиск по тексту. Насколько это реализуемо?
Помогите, "тыж программисты", уменьшить уровень моей безграмотности.
Romin Romin 25.02.201507:17 ответить ссылка 0.0
даже гугл с эпл ещё до такого не дошли, но работают в этом направлении
Спасибо.
Romin Romin 25.02.201510:06 ответить ссылка 0.0
У ядерная поиск в найдено реализован, том гораздо примитивнее.
http://geektimes.ru/post/84364/ + каменты
SINus SINus 25.02.201509:51 ответить ссылка 0.8
Причём здесь программирование, он ВОЛШЕБНЫЙ ! :D :D :D :D :D :D :D :D :D
Sains Sains 25.02.201514:27 ответить ссылка 0.2
Софтина вообще простая, как и алгоритм.

Я так это вижу:
1) БД - 3 таблицы: персонажи (2 поля id и имя), свойства (2 поля id, связаный вопрос), связи (3 поля id, id персонажа, id свойства).
Свзаные вопросы должны быть построены так что бы ответ был ди или нет.
2) Алгоритм: сортирум связи по количеству свойств (задаем связаный вопрос). На основании ответа расширяем фильтр поиска (ищем по id). Производим поиск по составному фильтру по id до тех пор пока id персонажа не будет уникальным. Уникальный id и даст имя персонажа. Если фильтр содержит скажем 15 значений сдаемся и просим назвать персонажа - результат заносим в таблицу персонажей, а набор фильтров в таблицу связей. Вот и все.
3) Исходные данные, на самом деле главный гемор это набор свойств тем не менее 100 параметров будет более чем достаточно. Ну и 2 - 3 персонажа и связей предустановить.
Шарим в web и через некоторое время БД будет наполнена данными от самих пользователей.
amber182 amber182 26.02.201515:22 ответить ссылка 0.0
"Одним из первых примеров саморепродуцирующихся программ явилась игровая программа с названием «Animal». По правилам игры человек должен загадать животное, а программа, задавая ему вопросы, должна это животное отгадать. В программу была заложена возможность обучения: если она не могла отгадать животное, то человек должен был ввести в нее вопрос, который помог бы программе сделать это. При этом программа модифицировалась и копировала себя в один из подкаталогов файловой системы."

эта игра еще и один из первых вирусов)
nivo nivo 09.03.201512:12 ответить ссылка 0.0
ответы пишут сами игроки после победы над акинатором можно ещё и вопросы почистить фото поставить ответ добавить
compote compote 09.06.201502:44 ответить ссылка 0.0
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
НИЧЕГО НЕОБЫЧНОГО, ПРОСТО ИНДИЙСКИЕ КОДЕРЫ ПРОСЯТ АЛЛАХА ЗАЩИТИТЬ ИХ КОД ОТ БАГОВ ПРЯМО В КОММЕНТАРИЯХ К ЭТОМУ КОДУ
patcncs / patch! i wxhcxccitor / 0.22+гсэаск-2.2
Package: wxhexeditor / 0.22+repack-2.2
08-remove-debug.patch
] download
Description: Remove sone debug printed on stdcut.
a/src/
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор программирование индусский код с божьей помощью

НИЧЕГО НЕОБЫЧНОГО, ПРОСТО ИНДИЙСКИЕ КОДЕРЫ ПРОСЯТ АЛЛАХА ЗАЩИТИТЬ ИХ КОД ОТ БАГОВ ПРЯМО В КОММЕНТАРИЯХ К ЭТОМУ КОДУ patcncs / patch! i wxhcxccitor / 0.22+гсэаск-2.2 Package: wxhexeditor / 0.22+repack-2.2 08-remove-debug.patch ] download Description: Remove sone debug printed on stdcut. a/src/
Почему?
Почему?!
^>о->Ьаг() — Почему?



— А, вот почему... Newbie: So which programming language should I learn first?
Programmers: ЦЕННОЙ БУМАГИ НА ОДНО СОЦИАЛЬНОЕ ПРОДУКТИВНОЕ ВЗАИМОДЕЙСТВИЕ
ПРЕДСТАВиТЕЛи НЕТРддиционной
подробнее»

помощь советы работа программирование geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор програмист

ЦЕННОЙ БУМАГИ НА ОДНО СОЦИАЛЬНОЕ ПРОДУКТИВНОЕ ВЗАИМОДЕЙСТВИЕ ПРЕДСТАВиТЕЛи НЕТРддиционной
ИСПОЛЬЗОВАТЬ ТОЛЬКО В СЛУЧАЕ КРАЙНЕЙ НЕОБХОДИМОСТИ