Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите пожалуйста,нужно очень срочно (https://javascript.ru/forum/misc/66629-pomogite-pozhalujjsta-nuzhno-ochen-srochno.html)

rulerup 28.12.2016 11:27

Помогите пожалуйста,нужно очень срочно
 
Необходимо выполнить два задания, написать код:
1)Вывести на экран простые числа от 132 до 723.
2) Заполнить массив случайными числами и найти среднее
значение, медианное значение и моду

laimas 28.12.2016 12:28

Цитата:

Сообщение от Rise
Что это такое?

1, 2, 3 - медиана равна 2.

рони 28.12.2016 12:38

laimas,
а мод?

laimas 28.12.2016 12:44

рони,
это значение, которое встречается в наборе чаще всех, например для 1, 2, 2, 3 = 2.

PS. Только не мод, а мода.

рони 28.12.2016 12:59

laimas,
спасибо

laimas 28.12.2016 13:20

Rise,
вспоминайте школу :)
медианой треугольника называется отрезок соединяющий вершину с серединой противоположной ей стороны.

Для чисел, это упорядочить набор по возрастанию и взять среднее значение в наборе, а если длина набора четная, то сумму двух средних значений деленной по полам. Для

1,2,2,3,3 = 2

а для

1,2,3,3 = (2 + 3) / 2 = 2,5

У 1,2,2,3,3 две моды - 2 и 3, также у набора может не быть моды.

Dilettante_Pro 28.12.2016 13:24

Rise,
Мо́да — значение во множестве наблюдений, которое встречается наиболее часто. (Мода = типичность.) Иногда в совокупности встречается более чем одна мода (например: 6, 2, 6, 6, 8, 9, 9, 9, 10; мода = 6 и 9). В этом случае можно сказать, что совокупность мультимодальна. Из структурных средних величин только мода обладает таким уникальным свойством. Как правило мультимодальность указывает на то, что набор данных не подчиняется нормальному распределению.(Википедия)

laimas 28.12.2016 13:44

Цитата:

Сообщение от Rise
в школе вроде такого не проходят

А прогуливать уроки не надо было :)

GuardCat 28.12.2016 22:06

#1
let getSimpleNumbers = ( ( ) => {
    
    function isSimple(num) {
        let delimiter = Math.floor(num / 2);
        
        while (delimiter > 1) {
            if (num % delimiter-- === 0) return false;
        }
        
        return true;
    }                
    
    return (from, to) => {
        let x, result = [ ];
        
        for (x = from; x <= to; x++) {
            if ( isSimple(x) ) result.push(x);            
        }
        
        return result
    }
    
} ) ( )

alert( getSimpleNumbers(132, 723) )

GuardCat 29.12.2016 15:42

#2
function getRandomNumbers(amt = 100, min = 0, max = 100) {
  let result = [ ];
  
  if (max < min) [max, min] = [min, max];
  
  while (result.length < amt) {
    result.push( ( min + max * Math.random( ) ).toFixed(0) )
  }
  
  return result
} 

function getAverage(arr) {
    let result = arr.reduce( (res, i) => {
        return +res + +i;
    } )
    return result / arr.length
}

function getMedian(arr) {
    let 
      copy = [ ], sum = 0,
      halfLen = arr.length / 2
    ;
    Object.assign(copy, arr);
    
    copy.sort( (a, b) => a - b )
    
    sum += +copy[ Math.ceil(halfLen) - 1 ];
    sum += +copy[ Math.floor(halfLen) ];
    
    return sum / 2
}

function getMode(arr) {
    let 
        key, result = [ ], 
        count = { }, max = -Infinity,
        nomodeMsg = "The array hasn't mode.",
        nomodeFlag = true
    ;
    
    arr.forEach( (item) => {
        if ( !(item in count) ) count[item] = 0;
        count[item]++
        max = max < count[item] ? count[item] : max;
    } );
    
    if (max <= 1) return nomodeMsg;
    
    for (key in count) {
        if ( count[key] === max ) {
            result.push(key)
        } else {
            nomodeFlag = false
        }
    }

    return nomodeFlag ? nomodeMsg : result;
}


let 
    // Получим последовательность из 10 целых случайных чисел от 0 до 100
    r = getRandomNumbers(10, 0, 100)
    
    // Получим массив мод для последовательности
    m = getMode(r),
    
    // Получим медиану для последовательности
    med = getMedian(r),
    
    // Получим среднее значение для последовательности
    a = getAverage(r)
;

alert( `Для последовательности ${r}
Среднее: ${a}
Медиана: ${med}
Мода(ы):    ${m}` );


Часовой пояс GMT +3, время: 21:59.