小工具知识网

当前位置: 首页 > 行业知识 > C#,动态规划(DP)丢鸡蛋问题(Egg Dropping Puzzle)的三种算法与源代码

行业知识

C#,动态规划(DP)丢鸡蛋问题(Egg Dropping Puzzle)的三种算法与源代码

2026-10-18 23:50:43 来源:互联网转载

1 扔鸡蛋问题

动���规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等中取得了显著的效果。

扔鸡蛋问题是计算机程序设计中的一个经典问题。从一幢楼房的不同楼层往下扔鸡蛋,用最少的最坏情况试验次数,确定鸡蛋不会摔碎的最高安全楼层。仅有一个鸡蛋供试验时,只能采用顺序查找法。有足够多的鸡蛋时,可以采用二分查找法。有多于一个但数量有限的鸡蛋时,采用动态规划方法求解。双蛋问题 (two-egg problem) 是本问题的一个特例,曾出现于谷歌的程序员面试题中。

 

2 源程序

using System;

using System.Collections;

using System.Collections.Generic;

namespace Legalsoft.Truffer.Algorithm

{

    ///

    /// Dynamic Programming

    /// Egg Dropping Puzzle

    ///

    public static partial class Algorithm_Gallery

    {

        public static int Egg_Drop(int n, int k)

        {

            if (k == 1 || k == 0)

            {

                return k;

            }

            if (n == 1)

            {

                return k;

            }

            int min = int.MaxValue;

            for (int x = 1; x

上一篇:服务器怎么检测好坏啊视频?

下一篇:服务器怎么开辅助?