• Регистрация
Noise
Noise 0.00
н/д

Генерация последовательности чисел

31.08.2020

Здравствуйте! НЕ могу решить простенькую, но очень важную для меня задачу) Может быть кто-нибудь поможет. Условия: дано известное среднее значение (из пяти членов) велечины Sср. Небходимо найти эти членов (S1, S2, S3, S4, S5), таким образом чтобы их отклонение от средней величины не выходило за пределы +/- 1%.

 Хотя бы натолкни те на направление))

Спасибо!

Теги

      31.08.2020

      Ответы

      • Хасбулат Нурмагомедов
        Хасбулат Нурмагомедов +43.63
        31.08.2020 18:04
        {Sср - 0,01*Sср; Sср - 0,005*Sср; Sср; Sср + Sср*0.005; Sср + 0.01*Sср} 

        Поскольку нет требований к тому чтобы числа были разные можно сделать и так:

        S = (rand(1,5)./100).*Sср + Sср; # псевдокод​
        • nicla
          nicla0.00
          1.09.2020 12:48

          hex bin может быть не прав. По всей видимости, ожидается что-то вроде следующего:

          Scp = 7; Dmx = 0.01; N = 5;  % инициализируем данные задачи

          x = randn(1,N);  % инициализируем вектор - можно задать любой

          x = x * Dmx/std(x); x = x - mean(x)+Scp;  % приводим к решению

          disp([mean(x) std(x)]);  % проверяем результат

          Удачи на сдаче

          • nicla
            nicla0.00
            1.09.2020 13:08

            Задача упрощается, если фразу «отклонение от средней не выходило за пределы...» понимать как

            max(abs(mean(x)-x)) <= Dmx;

            Тогда предпоследнюю строку надо заменить на:

            x = Scp + (x-mean(x))*Dmx/(max(abs(x-mean(x)));

            и не забудьте поставить проверку для очень строгого преподавателя

            if std(x) == 0   % все компоненты вектора одинаковы

               if Dmx ~= 0  % а не хотелось бы

                    error('Увы, с этим вектором ничего не получится');

               else

                    disp(x);  % а впрочем, сойдет и так

                    return    % и не будем делить на 0

               end

            end

            • Хасбулат Нурмагомедов
              Хасбулат Нурмагомедов +43.63
              1.09.2020 18:11

              Может и так, даром предвидения я не обладаю. Вопрос был предельно прост дано число, требуется 5 чисел с отклонением от него меньше процента. Т.е. если среднее равно 5, то и 5 5 5 5 5 будет верным ответом.

          • aBoomest
            aBoomest+942.89
            31.08.2020 19:38

            Наверно можно еще через вот так попробовать.

            • nicla
              nicla0.00
              1.09.2020 15:02

              можно попробовать, если есть лицензия на CS Tbx, и такой генератор; но задачу это не решит, так как, по всей видимости, приводить к нужному виду придется заданный преподавателем вектор

              • aBoomest
                aBoomest+942.89
                2.09.2020 10:47

                в принципенаверно согласен