Как избавиться от вызова интервала в геометрической прогрессии?

Ссылка скопирована
1 ответ
var loadWork = new Worker("worker.js");  loadWork.onmessage = function(e) { 	console.log(e.data); 	const interval = setInterval(timeout, 3000, e.data); };  timeout(e){ 	loadWork.postMessage("message:"+token); }  loadWork.postMessage("message:"+token);

var loadWork = new Worker("worker.js"); loadWork.onmessage = function(e) { console.log(e.data); const interval = setInterval(timeout, 3000, e.data); }; timeout(e){ loadWork.postMessage("message:"+token); } loadWork.postMessage("message:"+token);

Дополнительно:

может ты хотя бы пояснишь в своих вопросах последних двух, о том какую задачу ты пытаешься решить, и если повезёт - хорошие люди подскажут правильный путь для решение твоей задачи, а то что ты там вокеры с интервалами связываешь на фронте, это явно какой-то особый проект, что требует таких подходов

  • szQocks, цель простая - обновлять данные если они были изменены (новое сообщение, новое уведомление и тд.)
  • Артем Гартунг, круто, а причём тут вокер ?
  • szQocks, а какие есть лучше этого предложения? Пока лучше и оптимальнее не вижу
  • Артем Гартунг, сокеты, поллинг, евент-соурс ?
  • szQocks, пока что не могу с сокетами совладать, остальное пока лес темный
  • szQocks, как минимум в сокетах урл чего?)
    let socket = new WebSocket("ws://javascript.info");

    let socket = new WebSocket("ws://javascript.info");

  • Артем Гартунг, ничего, забей) как я понял у тебя файл worker.js - это файл за место бд, ну очуметь
  • szQocks, с worker.js я уже разберусь, у меня вопрос по таймеру, почему он растет в геометрической прогрессии и как это решить?
  • Потому что clearInterval не вызывается нигде

    • а где его лучше вызвать в этой структуре
    • Артем Гартунг, вы привели кусок невалидного кода, удалив лишнее. Поэтому решайте сами. Но вообще лучше перед вызовом setInterval сначала очистить.
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Павел Админов Ответ

    Для того чтобы избавиться от вызова интервала в геометрической прогрессии, можно воспользоваться формулой для суммы элементов геометрической прогрессии без учета интервала.

    Предположим, что у нас есть геометрическая прогрессия с первым элементом a, знаменателем q и количеством элементов n. Тогда общая сумма элементов этой прогрессии будет равна:

    S = a * (1 - q^n) / (1 - q)

    Если интервал между элементами равен d, то необходимо учесть его при вычислении общей суммы. Для этого можно воспользоваться следующей формулой:

    S = a * (1 - q^n) / (1 - q) - d * (1 - q^n) / (1 - q)

    Таким образом, вы можете определить общую сумму элементов геометрической прогрессии с учетом интервала и получить нужный результат.

    Пример вычисления общей суммы элементов геометрической прогрессии без интервала:

    $a = 2; // первый элемент
    $q = 2; // знаменатель
    $n = 5; // количество элементов
     
    $sum = $a * (1 - pow($q, $n)) / (1 - $q);
    echo "Общая сумма элементов геометрической прогрессии: " . $sum;

    $a = 2; // первый элемент $q = 2; // знаменатель $n = 5; // количество элементов $sum = $a * (1 - pow($q, $n)) / (1 - $q); echo "Общая сумма элементов геометрической прогрессии: " . $sum;

    Пример вычисления общей суммы элементов геометрической прогрессии с интервалом:

    $a = 2; // первый элемент
    $q = 2; // знаменатель
    $n = 5; // количество элементов
    $d = 1; // интервал
     
    $sum = $a * (1 - pow($q, $n)) / (1 - $q) - $d * (1 - pow($q, $n)) / (1 - $q);
    echo "Общая сумма элементов геометрической прогрессии с интервалом: " . $sum;

    $a = 2; // первый элемент $q = 2; // знаменатель $n = 5; // количество элементов $d = 1; // интервал $sum = $a * (1 - pow($q, $n)) / (1 - $q) - $d * (1 - pow($q, $n)) / (1 - $q); echo "Общая сумма элементов геометрической прогрессии с интервалом: " . $sum;

    Таким образом, вы можете вычислить общую сумму элементов геометрической прогрессии как с учетом интервала, так и без него, в зависимости от ваших потребностей.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно