За последние 24 часа нас посетили 40522 программиста и 1641 робот. Сейчас ищет 1201 программист ...

Помогите составиьт формулу... простая математика )

Тема в разделе "Прочее", создана пользователем EvelRus, 29 июн 2009.

  1. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Юнит идет расстояние А со скорость Б, если построить армейскую академию, то он будет идти до 300% быстрее (каждый уровень дает + 10% к скорости, всего 20 уровней) В - ускорение, однако первые 30 полей он идет обычным шагом, а потом ускоряется...


    как это написать??? сейча это выглядит так... но тут без учета, что первые 30 идет шагом обычным.. как иправить? :((
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    y*300% / 100 = speed
    y*(300%+10%) / 100 = speed
     
  3. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    а где обработка скорости??? ведь первые 30 полей он идет с обычной скоростью
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    И что?
    Вручную не рассчитать скорость для 30 полей?
     
  5. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    мне нужна формула.. я программу пишу.. не могу въехать :)
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Ну в математике нельзя обозначить такие блоки, как if.
    Можно расписать, что ответ входит в множество, например В ⊂ {30; +∞}
    Но тут надо всё равно строить логику.
     
  7. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Не проверял досканально формулу, но на вскидку вроде расписал правильно:

    PHP:
    1. <?php
    2. $speed = 10;
    3. $distance = 600;
    4. $academy_bonus = 0.1;
    5. $academy_level = 20;
    6. $no_speedup = 30;
    7.  
    8. $time = ($no_speedup / $speed) + (($distance - $no_speedup) / ($speed + ($speed * ($academy_bonus * $academy_level))));
    9.  
    ($no_speedup / $speed) - время, за которое прошли отрезок без ускорения.

    второй кусок считает за сколько мы пройдём оставшиеся поля с ускорением, если оно есть, формула та - же: оставшаяся дистанция делённая на скорость.

    ($speed + ($speed * ($academy_bonus * $academy_level)))

    Берём скорость и плюсуем с бонусом скорости. Бонус считается по принципу базовая скорость умножить на процент прироста. Т.е. если взять скорость 10, бонус 10% (0.1) и текущий уровень 10, по получим (10 + (10 * (0.1*10))), т.е. (10 + (10 * 1)) => 20.

    Для обрабоки результатов с растоянием меньше 30 думаю хватит поставить if ($distance < $speedup) { $time = $distance / $speed; }, но если очень надо единой формулой - потом можем попробовать посчитать.
     
  8. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    странно, но у меня получается скорость 6, расстояние 32,02, бонус 0, пройдет за 5 дней, 8 часов и три минуты...
     
  9. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Так так, кто-то копирует Травиан? :)
     
  10. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
  11. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Nemo
    А за сколько должен пройти?
    И вообще надо единицы измерения тоже говорить. Теоретически вроде правильно, может у тебя не стыковка единиц измерения, так что полные условия в студию тогда :)
     
  12. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Нашел багу... Вроде исправил )