В базе данных имеется несколько сотен записей книг, и у каждой записи есть время публикации. На главной странице сайта я должен написать несколько кодов, чтобы случайным образом выбрать 10 книг и поместить их туда. Требование состоит в том, что более новые книги должны иметь более высокие шансы на отображение.
Поскольку время является целым числом, я думаю вот так, чтобы рассчитать вероятность для каждой книги:
Probability of a book to be drawn = (current time - publish time of the book) / ((current time - publish time of the book1) + (current time - publish time of the book1) + ... (current time - publish time of the bookn))
После того, как книга нарисована, следующий раунд цикла будет минус (текущее время - время публикации книги) от знаменателя и пересчитать вероятность для каждой из оставшихся книг, цикл продолжается, пока 10 книг нарисован.
Является ли этот алгоритм правильным?
Кстати, сайт написан на PHP.
Не стесняйтесь предлагать несколько кодов PHP, если у вас есть лучший алгоритм в уме.
Большое спасибо всем вам.