招聘问题-方法可视化问题?

我在这里https://en.wikipedia.org/wiki/Secretary_problem读到有关秘书问题的信息

我对它的有效性感到怀疑,因为我确实采用了编码的方法来证明它。

问题表明,根据概率分析,最合适的候选者很可能会在1 / e中找到,即在37%的第一批候选者中。

我试图用代码(JAVA)可视化此内容。我尝试的是以下内容:-

  1. 在测试中将候选人的排名随机填写在列表中。
  2. 找到排名1的位置。这意味着最佳测试所需的特定测试所需的候选人百分比是排名1的位置。
  3. 运行一些此类迭代。
  4. 平均计算出用于迭代的最佳候选位置。
package com.pravesh.designpattern.creational;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;

public class HiringProblem {

    public static void main(String[] args) {

        Random rd = new Random();
        int numberOfCandidates = 1000;
        int numberOfTests = 10000;

        List<Double> bestCandidatePositionPositionPercentages = new ArrayList<>();

        for (int testNumber = 0; testNumber < numberOfTests; testNumber++) {

            // Generate a random array of candidates with their rankings
            List<Integer> candidateRankings = new ArrayList<>();
            int candidateRanking = 0;
            while (candidateRanking < numberOfCandidates) {
                int random = rd.nextInt(numberOfCandidates + 1);
                if (!candidateRankings.contains(Integer.valueOf(random)) && random > 0
                        && random <= numberOfCandidates) {
                    candidateRanking++;
                    candidateRankings.add(Integer.valueOf(random));
                }
            }

            // Index starts from 0 and hence position+1
            int bestCandidatePosition = candidateRankings.indexOf(1) + 1;

            double bestCandidatePositionPercentage = (((double) bestCandidatePosition) / numberOfCandidates) * 100;

            bestCandidatePositionPositionPercentages.add(bestCandidatePositionPercentage);

        }

        double averagedBestPositionsPercentage = bestCandidatePositionPositionPercentages.stream()
                .collect(Collectors.summingDouble(n -> n)) / bestCandidatePositionPositionPercentages.size();

        System.out.println((int) averagedBestPositionsPercentage);

    }

}


我原本希望平均值为37%,但是大多数时间我每次运行该程序时,平均值都在45-53之间。

有人可以让我知道这种方法是否缺少某些东西。

xiaojiani 回答:招聘问题-方法可视化问题?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3145752.html

大家都在问