“好”数字的算法

2024-02-07

如果数字 x 的任意两个连续数字之和在 k 和 2k 之间,则给定数字 x 是“好”。 我需要找到一种算法,对于给定的数字 k 和给定的数字 n,找出存在多少个“好”n 位数字。

我在 PHP 中为此实现了一个实现,但复杂性太大(我正在搜索所有这些“好”数字并计算它们,因此复杂性为 O(10^n))。

<?php
    $n = 5;
    $k = 5;

    $min = $k*1;
    $max = $k*2;
    $counter = 0;

    for ($i = pow(10, $n-1); $i<pow(10,$n); $i++)
    {
        $number = $i;
        $prev = $number % 10;
        $number = $number / 10;

        while($number >= 10)
        {
            $crnt = $number % 10;
            $number = $number / 10;
            if ( ($crnt+$prev) > $min AND ($crnt+$prev) < $max ) {
                echo "good number: $i\n";
                $counter++;
            }
            $prev = $crnt;
        }
    }

    echo "counter: ".$counter."\n";
?>

有人可以证实我这是否可以解决:

n=100 // given
k=10  // given

counter = 0;

for(i=10; i<100; i++)
{
    if( (i/10)+(i%10) > k ) && ( (i/10)+(i%10) < 2*k )
        counter++;
}

total = counter^(n-1)

所有这些电话pow当然不会有帮助。

您可以做的是对所有“好”的两位数字进行映射。完成映射后,您所需要做的就是检查号码中的每一对数字是否正确。您可以通过连续除以 10 并模 100 来完成此操作。

只要你不给它一个负数,并且假设你已经设置了你的$good array.

function isgood( $num ) {
    while( $num >= 100 && $good[$num%100] ) {
        $num /= 10;
    }
    return $good[$num%100];
}

接下来最明显的事情是记住更大的序列。这就是动态规划原理。我们已经通过存储两位数序列的“优点”来记忆小序列。但您可以轻松地使用它们来生成 3、4、5、6 位数字的序列……无论您的可用内存允许多少。使用您已有的备忘录来生成带有一位额外数字的序列。

因此,如果您建立最多 5 位数字的记忆,那么每次除以 1000,就会获得很大的速度提升。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“好”数字的算法 的相关文章

  • 返回变量在 PHP 中不起作用(即没有返回值!)

    我更喜欢使用 Python 语言进行编程 但必须使用 PHP 来处理特定的网站应用程序项目 在 PHP 中 我试图将函数中的值 返回 到主程序环境 用于后续计算 但无论我尝试什么 函数中计算的值都不会返回该值 而是从函数中回显 工作正常 在
  • STL 哈希函数

    STL 是否有公开公开的可用哈希函数 我知道有一些使用哈希值的非标准实现 例如boost hash map 并且MSVC8实现了hash map hash set 等的版本 但有没有哈希函数C 98 STL 中定义的 如果不是 可靠哈希函数
  • 如何将 Filesystem 类的 glob 方法与 StorageFacade 结合使用?

    这涉及到拉拉维尔 5 我可以看到Illuminate Filesystem Filesystem一个方法叫做glob pattern flags 0 不幸的是 这个方法并没有体现在默认的情况下FilesystemAdapter随 Larav
  • mongodb对话系统

    我正在实施一个verymongodb 上的简单对话系统 这个想法应该是 当我打开一个 convo 时 它应该显示发送和接收的消息 到目前为止一切正常 并且应该非常容易 通过使用像这样的伪代码这样的简单查询 from my id AND to
  • 如何在 Laravel 5.5 中编辑“页面因不活动而已过期”的视图

    在 Laravel 5 5 中 当您使用 CSRF 保护 默认情况下 并且在长时间不活动后发送发布请求时 您将收到此错误页面 屏幕截图 我对此错误表示同意 但是 我需要更改此错误的视图 文本以确保与我的应用程序风格和语言相匹配 关于如何编辑
  • Symfony php.ini Debian

    我在 Oracle VM VirtualBox 上使用 Debian 7 amd64 LAMP 服务器 我正在尝试安装 Symfony 但遇到了一些小问题 当我运行命令时 php my project name app check php
  • php 在内容前插入十六进制字符数

    我正在将网站移动到新服务器 旧服务器有 php 5 3 2 新服务器有 php 5 5 9 Centos httpd Apache 2 2 26 我已经复制了文件 它工作正常 除了唯一奇怪的事情 一些奇怪的十六进制数字被插入到页面内容之前
  • 排序数组最快的搜索方法是什么?

    正在回答另一个问题 https stackoverflow com questions 4752028 whats wrong with this interpolation search implementation 4752042 47
  • PSR-4 代码库中条令生成器的解决方法

    在 Windows 机器上使用 Symfony 2 和 Doctrine 我正在尝试 从现有模式生成实体 php app console doctrine mapping import force CoreBundle annotation
  • 优化完美平方问题,类似于Python中的硬币找零

    我这里有一个硬币兑换的解决方案 python 中的 leetcode 硬币兑换 https stackoverflow com questions 69517078 coin change leetcode in python 因为完全平方
  • SimpleSAMLPHP 重定向循环

    我们正在尝试使用自定义 mysql 数据库设置 sso 但它在以下两个请求之间进入无限循环 POST http 192 168 0 15 simplesaml module php core loginuserpass php 设置Cook
  • WooCommerce:用文本覆盖购物车价格

    我们有很多产品具有以下功能 No price 零价格 我们让它们可以通过内置挂钩购买 但购物车仍然将它们显示为具有0 price结账时 我们希望购物车和结帐摘要显示 特殊订单 或任何其他文本 但 WooCommerce 似乎使基于文本的价格
  • 拉伸数组

    我有一个形成曲线的样本向量 假设其中有 1000 个点 如果我想将其拉伸到填充 1500 个点 给出不错结果的最简单算法是什么 我正在寻找一些只有几行 C C 的东西 我总是想增加向量的大小 并且新向量可以是当前向量大小的 1 1 倍到 5
  • 需要 mysqli_fetch_all 的替代方案

    我有一个 php mysqli 代码 可以找到一个我的本地服务器 但是在我的服务器上使用它时 我得到了一个 Fatal error Call to undefined function mysqli fetch all in home3 t
  • 如何在 joomla 模块中通过 javascript 发送输入文件类型

    我想将带有 javascript 的文件发送到 php 文件 我的 php 文件中有这个表单
  • 如何覆盖 phpunit 中导出的变量?

    我知道我可以设置环境变量 https phpunit de manual current en appendixes configuration html在我的 phpunit xml 里面
  • WordPress 事件按元生效日期排序

    我在获取参数数组以按 Wordpress 中的日期对事件列表进行排序时遇到一些问题 我在 Stack Overflow 和其他地方找到了几个建议的解决方案 但经过大量的试验和错误后 这些解决方案似乎都不起作用 这没什么花哨的 而且应该比这容
  • PHP 除法浮点值问题

    当我尝试获取余数时 它给出了无效值 我试图获得两位小数的余数 我得到 3 4694469519536E 18 我的价值观是 x 0 1 y 0 005 我尝试了以下方法 echo ed fmod 0 1 0 005 OutPut 3 469
  • 哪个 PHP 5 版本最常用?

    当我开发将在不同配置的客户端 Web 服务 通常使用共享托管 上使用的应用程序时 我应该假设大多数 Web 服务器都具有哪个 PHP 5 版本 例如 5 2 x 5 3 x 等 在所有使用 PHP 版本 5 的网站中 有 84 9 使用版本
  • 处理查询字符串参数时 Codeigniter 缓存问题

    问候 我正在编写一个 CI Web 应用程序 它实现标准文件缓存功能 如下所示 this gt output gt cache n 我使用了段和查询字符串参数的组合 因此似乎遇到了问题 我在用例和输出类代码中看到的是 缓存仅基于段 像这样

随机推荐

  • 使用 Devise 的 RoR 中的会话超时消息

    我有一个使用设备保护的应用程序 会话超时为 30 分钟 使用设计 正常导航一切正常 如果用户在超时时单击链接 他们会被重定向回登录屏幕 并显示一条消息 您的会话已过期 请重新登录以继续 非常好 不过我在很多地方都有ajax 如果会话超时并且
  • WebGL / Three.js - 移动相机时,纹理着色的粒子不规则地闪烁

    这是一个jsfiddle http jsfiddle net vko8hzzs 4 我将粒子在使用纹理着色时以及相机移动时 闪烁 的问题放在一起展示 更新 粒子上不应该发生动画或运动 如果当您在视口上单击并拖动并且粒子闪烁或完全改变颜色时
  • bash:grep 根据第一列精确匹配

    我有一个如下所示的 txt 文件 9342432 A1 9342432 1 0 0 0 4392483 A2 4392483 2 0 0 0 4324321 A3 4324321 1 0 0 0 9342432 9342432 2 0 0
  • 点击时如何更改 UIView 的样式?

    我使用以下代码制作不同的 UIView 可点击 它们不是从 UIControl 继承 UITapGestureRecognizer gesture UITapGestureRecognizer alloc initWithTarget se
  • 什么是cgi编程

    CGI编程到底是什么意思 如果我用 C 编写一个cgi程序 在这种情况下 cgi 是什么意思 servlet 环境是经典 cgi 编程的抽象吗 CGI 表示通用网关接口 它是一个 Web 服务器 接收用户请求并进行处理 然后将响应发送回用户
  • 在 ASP.NET 中,什么时候应该使用 Session.Clear() 而不是 Session.Abandon()?

    Session Clear 和 Session Abandon 都会删除会话变量 据我了解 Abandon 结束当前会话 并导致创建新会话 从而导致结束和开始事件触发 在大多数情况下 例如注销用户 最好调用 Abandon 在某些情况下我会
  • 如何在触发器调用的过程中使用COMMIT

    我有下面的触发器 mytrg 它调用一个过程 myproc 如果表1中有任何插入 该过程将更新表2 在表2中更新数据后 我在过程中有 COMMIT 语句 但是当 table1 中有插入时 我收到以下错误 Error report SQL E
  • 使用动画重新加载表视图单元格(Swift)

    有没有办法重新加载特定的UITableView具有多个带有动画部分的单元格 我一直在使用 self TheTableView reloadSections NSIndexSet index 1 withRowAnimation UITabl
  • 在 Facebook 上发帖 - 错误 - 用户必须是该页面的管理员才能冒充该页面

    我自动将新闻从网站发布到 Facebook www rybnik com pl gt rybnikcompl 几个月来效果很好 但两天前我注意到错误 用户必须是该页面的管理员才能冒充该页面 据我所知 用户 应用程序权限 访问令牌等没有任何变
  • Bash 命令从远程 url 复制图像

    我用的是mac的终端 我想从远程网址复制图像 http media pragprog com titles rails4 code depot b public images http media pragprog com titles r
  • 如何将日期字符串转换为字符串(yyyy-MM-dd)。这样做时,我得到空值?

    我的数据为 customerFromDate 01 Apr 2010 和 customerToDate 30 Apr 2010 这是一个字符串 我想将该格式转换为字符串 yyyy MM dd 但这样做时我得到了空值 请参阅我尝试过的以下代码
  • 允许自定义文件在加载数据时双击并打开我的应用程序[重复]

    这个问题在这里已经有答案了 就像您在 Windows 中进行引用一样 要打开 txt 文件 它可能会打开 NotePad exe 和 或 Word exe 同时将文件中的文本加载到编辑器中 如何使用我的桌面应用程序执行此操作 我有一个扩展名
  • 使用 css 媒体查询触发 jquery

    我在我的项目中使用 css 媒体查询来创建一个适用于任何尺寸屏幕的网站 我希望触发不同的 jquery 函数 就像使用 css 一样 例如 如果浏览器尺寸在1000px到1300px之间 我想调用以下函数 mycarousel jcarou
  • 日志填充为:与远程主机的通信发生错误

    我们正在尝试了解此错误发生的情况 这只是用户与网站断开连接吗 System Web HttpException An error occurred while communicating with the remote host The e
  • Chrome 的 rem 计算在 Mac 和 Windows 上的字体大小和行高之间有何差异?

    我整理了一支非常基本的笔来演示这里发生的事情 https codepen io anon pen ZjbmWE https codepen io anon pen ZjbmWE 为那些没有 Mac 的人提供一个屏幕截图 https i st
  • Span 不能是嵌套局部变量。为什么这是一个限制?

    以下内容无法编译 既然这不是匿名方法 lambda 表达式或查询表达式 为什么这是一个限制 将文本作为 ref ReadOnlySpan 传递效果很好 void TestNestedSpan var text Some text AsRea
  • Colorbox 使灯箱在滚动时固定

    我使用 jquery colorbox 当页面内容较大并且打开colorbox时 然后颜色框随着页面内容滚动 我希望即使背景内容滚动也需要修复颜色框 请帮我解决这个问题 也许所有这些答案都来自 colorbox 的早期版本 但 fixed
  • Java 颠倒文本 - 错误还是功能?

    在使用 Java 字体类和 Swing 时 我将字体大小设置为负值 我发现这会使文本被颠倒绘制 这是一个错误还是一个功能 谁能解释为什么会发生这种行为 试试看 import java awt Font import java awt Gra
  • 在 aspx 中包含 C# 文件代码

    我想在我的位置执行以下代码C 页 我知道这里还有更多类似的问题 但我找不到可以帮助我的东西 但是我在第一行收到服务器错误 The server block is not well formed 代码是 WebIntegrationRestS
  • “好”数字的算法

    如果数字 x 的任意两个连续数字之和在 k 和 2k 之间 则给定数字 x 是 好 我需要找到一种算法 对于给定的数字 k 和给定的数字 n 找出存在多少个 好 n 位数字 我在 PHP 中为此实现了一个实现 但复杂性太大 我正在搜索所有这