Торгівля доменними іменами - великий бізнес. Один з найкорисніших інструментів для торгівлі доменними іменами - це автоматичний інструмент оцінки, щоб ви могли легко оцінити, скільки коштує даний домен. На жаль, багато служб автоматичної оцінки вимагають членства / підписки для використання. У цьому виклику ви напишете простий інструмент оцінювання, який може приблизно оцінити значення доменів .com.
Введення-виведення
В якості вхідної програми ваша програма повинна взяти список доменних імен, по одному на рядок. Кожне доменне ім’я відповідатиме регулярним виразом ^[a-z0-9][a-z0-9-]*[a-z0-9]$
, тобто воно складається з малих літер, цифр та дефісів. Кожен домен має принаймні два символи і ні починається, ні закінчується дефісом. Значення .com
опущено з кожного домену, оскільки воно мається на увазі.
Як альтернативна форма введення, ви можете прийняти доменне ім'я як масив цілих чисел, а не рядок символів, якщо ви вкажете бажане перетворення символів у цілі числа.
Ваша програма повинна виводити список цілих чисел, по одному на рядок, який дає оцінені ціни відповідних доменів.
Інтернет та додаткові файли
Ваша програма може мати доступ до додаткових файлів, якщо ви надаєте ці файли як частину своєї відповіді. Вашій програмі також надається доступ до файлу словника (список дійсних слів, які вам не потрібно надавати).
(Редагувати) Я вирішив розширити цю проблему, щоб надати вашій програмі доступ до Інтернету. Існує кілька обмежень, оскільки ваша програма не може шукати ціни (або історію цін) будь-яких доменів, і що вона використовує лише попередні сервіси (останній, щоб приховати деякі лазівки).
Єдиним обмеженням на загальний розмір є обмеження розміру відповідей, накладене SE.
Приклад введення
Це кілька недавно проданих доменів. Відмова від відповідальності: Хоча жоден із цих сайтів не здається шкідливим, я не знаю, хто їх контролює, і тому радимо не відвідувати їх.
6d3
buyspydrones
arcader
counselar
ubme
7483688
buy-bikes
learningmusicproduction
Приклад Вихід
Ці числа справжні.
635
31
2000
1
2001
5
160
1
Оцінка балів
Оцінка балів базуватиметься на "різниці логарифмів". Наприклад, якщо домен, проданий за 300 доларів, а ваша програма оцінила його за 500 доларів, то ваш показник для цього домену abs (ln (500) -ln (300)) = 0,5108. Жоден домен не матиме ціни менше 1 долара. Ваш загальний бал - це ваш середній бал для набору доменів, з нижчими балами краще.
Щоб зрозуміти, на які бали слід розраховувати, просто відгадуючи постійну інформацію 36
про дані тренувань нижче, ви отримаєте бал приблизно 1.6883
. Вдалий алгоритм має оцінку менше, ніж цей.
Я вирішив використовувати логарифми, оскільки значення охоплюють декілька порядків, і дані заповнюватимуться видатками. Застосування абсолютної різниці замість різниці у квадраті допоможе зменшити ефект випускників у балах. (Також зауважте, що я використовую природний логарифм, а не основу 2 або базу 10.)
Джерело даних
Я переглянув список понад 1400 недавно проданих .com доменів від Flippa , веб-сайту аукціону домену. Ці дані становлять набір навчальних даних. Після закінчення терміну подання я зачекаю додатковий місяць, щоб створити тестовий набір даних, за допомогою якого будуть оцінені матеріали. Я також можу вирішити збирати дані з інших джерел для збільшення розміру навчальних / тестових наборів.
Дані про навчання доступні за наступними ознаками. (Відмова від відповідальності. Хоча я використовував просту фільтрацію для видалення явних доменів NSFW, у цьому списку все ще може бути кілька. Також я раджу не відвідувати будь-який домен, який ви не впізнаєте .) Цифри праворуч справжні ціни. https://gist.github.com/PhiNotPi/46ca47247fe85f82767c82c820d730b5
Ось графік розподілу цін набору даних про навчання. Вісь x - це натуральний журнал ціни, враховуючи вісь y. Кожен брусок має ширину 0,5. Шипи зліва відповідають $ 1 і $ 6, оскільки веб-сайт-джерело вимагає збільшення ставок принаймні $ 5. Дані тесту можуть мати дещо інший розподіл.
Ось посилання на той самий графік із шириною смуги 0,2. На цьому графіку ви можете бачити шипи на рівні 11 і 16 доларів.