как сделать вывод рандомнной переменной в html

Подскажите пожалуйста, возможно ли сделать случайный вывод переменных? К примеру: переменная "а" будет выводится с одним шансом, переменная "б" с другим шансом. Если да то как лучше это сделать.


Ответы (2 шт):

Автор решения: eccs0103

Для начала

HTML это язык разметки, а не программирования. Отдельно в нем невозможно сделать какие-то не тривиальные операции. Но вы можете подключить к нему JavaScript и уже там вот что можно делать:

Решение с JavaScript

class Random {
  number(min, max) {
    return Math.random() * (max - min) + min;
  }
  case(cases) {
    const summary = [...cases].reduce((previous, [, percentage]) => previous + percentage, 0);
    const random = this.number(0, summary);
    let begin = 0;
    for (const [item, percentage] of cases) {
      const end = begin + percentage;
      if (begin <= random && random < end) {
        return item;
      }
      begin = end;
    }
    throw new RangeError(`Selector ${random} is out of range [0 - ${summary})`);
  }
}

const cases = new Map([
  [`1-ий вариант`, 5], // 1-ий вариант с вероятностью 11.90% (5 / 42)
  [`2-ий вариант`, 7], // 2-ой вариант с вероятностью 16.67% (7 / 42)
  [`3-ий вариант`, 10], // 3-ий вариант с вероятностью 23.81% (10 / 42)
  [`4-ий вариант`, 20], // 4-ий вариант с вероятностью 47.62% (20 / 42)
]);
const random = new Random();
const value = random.case(cases);
console.log(value);

→ Ссылка
Автор решения: BlackStar1991

На html это реализовать не получиться. Он отдает столько статически сгенерированый код, обычно в формате кодирования символов UTF-8. Вы можете реализовать это на какойто-из серверных технологий, к примеру на php

Файл index.php фыглядел бы следующим образом.

<p><?php

// Ваши переменные и соответствующие шансы (в процентах)
$variableA = "Переменная A";
$chanceA = 30;

$variableB = "Переменная B";
$chanceB = 70;

// Генерируем случайное число от 1 до 100
$randomNumber = mt_rand(1, 100);

// Определяем, какую переменную выводить в зависимости от сгенерированного числа
if ($randomNumber <= $chanceA) {
    echo $variableA;
} else {
    echo $variableB;
}

?></p>

→ Ссылка