Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Дневник успеха / 2018-03-11 Отчёт за неделю

  • Прошу тебя рассказать о своих успехах за эту неделю
  • Дата отправки отчёта: 11 марта 2018 г.
  • Задание выполнено: за 27 мин.
  • Чему научился: На этой неделе решал консольные задачи, по одной в день, набирал Соло, проходил видео-уроки по курсу Коллекция графа, уже заканчиваю его, изучил полезные структуры данных, сравнил их в деле, не все же массивами делать. ) реализовал алгоритмы поиска в графах в  ширину и глубину, используя очередь и стек.  Прошел пару уроков по сетевым шахматам. На следующей неделе буду грызть Git.
  • Что было сложным: Подскажите кто-нибудь, что это за формула на картинке?
  • Оценка видео-уроку:
Отчёт от 9752 за Дневник успеха / 2018-03-11 Отчёт за неделю




Оцени работу

 
Сохранить страницу:

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  chokayes  # Личная энергия / 2018-03-11 Отчёт за неделю / 2018-03-11 15:08

Как быстро недели проходят...

Какое-то нормирование. Но очень странное.


4814. --
Дмитрий
Дмитрий
ответить
→  chokayes  # Дневник успеха / 2018-03-11 Отчёт за неделю / 2018-03-21 00:42

Это описание генерации случайного числа "собственными руками". Если в языке программирования реализована функция Random, то компьютер просто сгенерирует Тебе любое случайное число от 0 до 1.
Но если нет, а Тебе нужно создать ситуацию, когда Ты должен получить случайное число или целую серию непредсказуемых результатов, то в качестве рандома можно использовать фокус с 3 картами. Но для простого выбора "да/нет" вполне хватит игрального кубика.


4814. --
Дмитрий
Дмитрий
ответить
→  chokayes  # Дневник успеха / 2018-03-11 Отчёт за неделю / 2018-03-21 12:37

programming-lang.com/ru/comp_programming/arsak/0/j20.html
Очень интересная книжица об играх и головоломках.
Почитай с. 10.
Думаю, что карты используются потому, что имеют наибольшую разрядность (13) из всех подручных доступных игр, поэтому позволяют получить наиболее "плотное" распределение случайного числа с шагом менее 0,005. Ближайший "конкурент" - это игральная кость с шестеричной системой счисления, и попытки получить псевдо-случайное число путем бросания кубика 3 и более раз все-таки будут иметь бОльший шаг в распределении, то есть, "ячейки сетки" будут более крупными.
Карты - потому что нужно получить случайное число подручными методами. То есть, человек не может просто придумать случайное число, т.к. тогда оно будет не случайным. Но человек может придумать условия, при которых можно получить
псевдо-случайное число. Для этого сначала случайно вытаскиваются 3 карты и даже после этого Ты не можешь определить каким именно будет случайное число после проведения расчетов.
Для чего это нужно? Для теории игр, в которой в качестве исходных данных используются случайные числа и непредсказуемые результаты.
Например, Ты играешь в лотерею "5 из 36" и обычно заполняешь даты рождения родственников и знакомых.
Но в этот раз решил заполнить 5 чисел случайными числами. А как это сделать? Все просто. Взял колоду, потасовал, 5 раз вытащил по 3 карты, в экселе заранее вбил формулы, 5 раз ввел данные, каждый раз умножил результат на 36, округлил и получил числа, на которые будешь ставить.
Также это можно использовать, если в одиночку играешь в игру, где требуется соперник. И "создаешь" ИИ, чьи ходы будут определяться случайным образом.


4814. --
Дмитрий
Дмитрий
ответить
→  chokayes  # Дневник успеха / 2018-03-11 Отчёт за неделю / 2018-03-21 12:59

Что касается вопроса "Почему именно такая формула", то это потому, что позволяет добиться степени точности шага до 1/2597 = 0,000385, то есть, менее 4 десятитычных. Чтобы пояснить - лучше перейти на десятичную систему счисления.
Считай, что Ты взял 10 карт "стоимостью" от 1 до 10.
Берем 1 случайную карту и формулу (x - 1)/10. Получаем десять возможных результатов - 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Выбираем 2 карты (допустим, 3 и 5) и действуем по формуле
((x-1)/10 + (y-1))/10) = 0,02 + 0,4 = 0,42

Выбираем 3 карты (допустим, 3, 5, 7) и действуем уже по полной формуле:
(x-1)/1000 + (y-1)/100 + (z-1)/10 = 0.003 + 0.05 + 0.7 = 0.753
Таким образом, мы случайно можем получить любое число от 0 до 0,999, а (x-1), (y-1) и (z-1) - это разряды тысячных, сотых и десятых долей.

Аналогичная ситуация и в приведенном примере, только используется не десятичная, а тринадцатичная система счисления. x, y и z, уменьшенные на единицу - это РАЗРЯДЫ тысячных, сотых и десятичных долей.
Если бросать 4 или 5 раз, то степень точности (точнее, шага) в десятичном примере увеличивается до 1/ 10 000 = 0.0001 и 0.00001 соответственно. И Ты можешь уже определить случайное число в виде 0,57632.


4814. --
Дмитрий
Дмитрий
ответить
→  chokayes  # Дневник успеха / 2018-03-11 Отчёт за неделю / 2018-03-21 13:04

Ошибся в расчетах примера, не уменьшил на 1.
Выбираем 3 карты (допустим, 3, 5, 7) и действуем уже по полной формуле:
(x-1)/1000 + (y-1)/100 + (z-1)/10 = 0.002 + 0.04 + 0.6 = 0.642


  • Отчёт оценивали:
    6452Кирилл Шмойлов+1   1Евгений Волосатов+1   16066Bodrik_torf+1   17443WildOrc+1   16218Дмитрий+1   459Сергей Сергеевич+1   8932Алекс+1   10558Иван Воронин+1   9913vip+1   9156Dimon+1   9980Timoha+1   16016Aleksej Fiodorov+1   10494Алексей В.+1   8707Володимир+1   3922Александр+1   16533Андрей Шевченко+1   8275Tekashnik+1   2639Морозов Юрий Александрович+1   791Валерий Жданов+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: На этой неделе решал консольные задачи, по одной в день, набирал Соло, проходил видео-уроки по курсу Коллекция графа, уже заканчиваю его, изучил полезные структуры данных, сравнил их в деле, не все же массивами делать. ) реализовал алгоритмы поиска в графах в ширину и глубину, используя очередь и стек. Прошел пару уроков по сетевым шахматам. На следующей неделе буду грызть Git.
Трудности: Подскажите кто-нибудь, что это за формула на картинке?



Научился: Весна идёт полным ходом, а за окном -20 .. -15. Надеемся, что лето не подкачает) По видеоурокам продолжаю делать проект Chess ASP.NET + Unity Решаю каждый день задачу дня в консольных задачах, собираю мегахэши, набираю задачи в разделе соло программиста. Всем удачной недели!!!
Трудности: Найти красивую картинку