计算floor(pow(2,n)/10) mod 10 - pow(2,n) 的数字总和

2023-12-04

这也是一个与数学相关的问题,但我想用 C++ 实现它...所以,我有一个以下形式的数字2^n,我必须计算其数字之和(以 10 为基数;P )。我的想法是用下面的公式来计算:

sum = (2^n mod 10) + (floor(2^n/10) mod 10) + (floor(2^n/100) mod 10) + ...

对于它的所有数字:floor(n/floor(log2(10))).

第一项很容易用模幂来计算,但我在其他方面遇到了麻烦。 自从n很大,我不想使用我的大整数库,我无法计算pow(2,n)没有模数。第一项的代码片段:

while (n--){
    temp = (temp << 1) % 10;
};

但对于第二个我不知道。我也不能floor单独计算它们,因为它会给出“0”(2/10)。有可能实现这一目标吗? (http://www.mathblog.dk/project-euler-16/以获得更简单的解决方案。)当然,如果用这种方法不能完成,我会寻找其他方法。 (例如,将数字存储在字节数组中,如链接中的注释所示)。

Edit:感谢现有的答案,但我正在寻找某种方法来数学解决它。我刚刚想出了一个想法,它可以在没有 bignum 或 digital-vectors 的情况下实现,我将测试它是否有效。

所以,我有上面的等式求和。但2^n/10^k可以写成2^n/2^(log2 10^k)这是2^(n-k*log2 10)。然后我取它的小数部分和整数部分,并对整数部分进行模幂运算:2^(n-k*log2 10) = 2^(floor(n-k*log2 10)) * 2^(fract(n-k*log2 10))。在最后一次迭代之后,我还将它与模 10 的分数相乘。如果它不起作用或者如果我在上述想法中的某个地方错了,我坚持向量解并接受答案。

Edit:好吧,看来用非整数模进行模幂是不可能的(?)(或者我还没有找到任何相关信息)。所以,我正在做基于数字/矢量的解决方案。

该代码不能完全工作!

它没有给出好的价值:(1390 而不是 1366):

typedef long double ldb;

ldb mod(ldb x, ldb y){             //accepts doubles
    ldb c(0);
    ldb tempx(x);
    while (tempx > y){
        tempx -= y;
        c++;
    };
    return (x - c*y);
};

int sumofdigs(unsigned short exp2){
    int s = 0;
    int nd = floor((exp2) * (log10(2.0))) + 1;
    int c = 0;
    while (true){
        ldb temp = 1.0;
        int expInt = floor(exp2 - c * log2((ldb)10.0));
        ldb expFrac = exp2 - c * log2((ldb)10.0) - expInt;
        while (expInt>0){
           temp = mod(temp * 2.0, 10.0 / pow(2.0, expFrac)); //modulo with non integer b:
                //floor(a*b) mod m = (floor(a mod (m/b)) * b) mod m, but can't code it
            expInt--;
        };
        ldb r = pow(2.0, expFrac);
        temp = (temp * r);
        temp = mod(temp,10.0);
        s += floor(temp);
        c++;
        if (c == nd) break;
    };
    return s;
};

您可以使用另一个问题中提到的一些技术创建数字向量(C++ 获取 int 中的每个数字)然后迭代该向量并将所有内容相加。

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

计算floor(pow(2,n)/10) mod 10 - pow(2,n) 的数字总和 的相关文章

随机推荐

  • 是否可以在 Android 中创建某种全局异常处理程序?

    我的应用程序包括一系列活动 用户必须以线性方式进行这些活动 假设这一系列活动如下所示 A 代表主菜单 B C D E 用户的操作过程如下 A gt B gt C gt D gt E 在这些活动中 用户必须输入数据或允许设备自动获取数据 例如
  • 使用 Symfony Messenger 异步发送电子邮件时如何翻译电子邮件?

    我将 Symfony 邮件程序配置为使用 Messenger 发送电子邮件 https symfony com doc current mailer html sending messages async 我的电子邮件有两种语言 我依靠请求
  • 将字符向量转换为时间?

    我想将以下字符向量转换为时间变量 times lt c 9 9 2015 16 03 13 9 9 2015 17 03 13 9 9 2015 17 56 38 9 9 2015 17 57 29 9 9 2015 19 52 55 9
  • 如何读取 FastCGI 请求的所有输出?

    我正在尝试使用 Rust 向 PHP 文件发出请求FastCGI协议 感谢以下答案 我得到了这段代码我之前的问题 use std os unix net UnixStream use std io Read Write use std st
  • 将 DIV 缩小到换行到其最大宽度的文本?

    将 div 收缩包装到某些文本非常简单 但是 如果文本由于最大宽度 例如 而换行到第二行 或更多行 则 DIV 的大小不会缩小到新换行的文本 它仍然扩展到断点 在本例中为最大宽度值 导致 DIV 右侧有相当多的边距 当想要将此 DIV 居中
  • Swift iOS 9 NSURLErrorDomain 错误 -1004

    我在 iOS 9 和 iOS 8 上使用 Swift 2 和 Alamofire 在 iOS 8 中 我对 API 的所有请求都工作正常 在 iOS 9 中 它们立即失败 并显示 1004 NSURLErrorDomain 并显示消息 无法
  • C#、Html 敏捷性、选择 div 标签内的每个段落

    例如 如何选择 div 标签中的每个段落 div p Hi p p Help Me Please p p Thankyou p 我已经下载了 Html Agility 并在我的程序中引用 我所需要的只是段落 可能有不同数量的段落 并且有大量
  • 将 jsonb 列值转换为 PostgreSQL 中的多列

    假设我在 PostgreSQL 中有一个表 其中包含以下列 CREATE TABLE sample id int jsonb jsonb date date 我插入了这两行 INSERT INTO sample id jsonb date
  • 如何使用 json.net 忽略类中的属性(如果为 null)

    我在用Json NET将类序列化为 JSON 我有这样的课程 class Test1 JsonProperty id public string ID get set JsonProperty label public string Lab
  • 根据另一列中的行更新列行

    我在 R 中有一个数据集 如下所示 我正在尝试更新 描述 列中的空单元格 以获取 值 列中的 0 值 Criteria Value Description Success 0 Success 21 look up Success 20 re
  • Android 检查 LocationManager 的权限

    我试图在单击活动布局中的按钮时显示 GPS 坐标 以下是单击按钮时调用的方法 public void getLocation View view TextView tv TextView findViewById R id gps coor
  • std::enable_if 的基本用法存在问题

    我正在尝试制作一个简单的模板函数 它给出了一些参数 它输出它们之间有一个空格 其中一些可以是枚举的元素 在这种情况下我想输出它的整数值 这是我的代码 include
  • 为生产者消费者问题的变体选择数据结构

    现在 我有一个队列 有多个生产者和单个消费者 消费者线程操作缓慢 此外 消费者通过 peek 操作从队列中取出元素 并且在消费操作完成之前 无法从队列中删除该元素 这是因为生产者线程作为辅助操作还会拍摄当时未完全处理的所有元素的快照 现在
  • 如何禁用 XPage 的客户端验证?

    我知道我可以通过以下方式禁用 xsp properties 中的服务器或应用程序 xsp client validation false 在控制层面通过 disableClientSideValidation true 如果没有为每个控件设
  • 无法联系 pgAdmin 4 服务器:致命错误

    我将 PostgreSQL 从 13 3 升级到 13 4 并收到 pgAdmin 4 的致命错误 我发现其他类似的问题尝试解决删除文件夹的问题 C Users myusername AppData Roaming pgadmin sess
  • 用类实例替换数组中的元素

    这类似于this所以请先阅读它以了解我想要做什么 现在 我想在有类实例时进行替换 例如 import numpy as np class B def init self a b self a a self b b arr np array
  • 从 Sqlite 获取项目并删除重复项目时的无效操作

    我想从sqlite数据库中获取项目 数据库中有大约6 000个项目 有些项目是重复的因此 我想在获取项目时删除这些重复信息 我使用了以下代码 public async static Task
  • Mongo通过正则表达式查找:仅返回匹配的字符串

    我的应用程序有以下堆栈 Ruby 上的 Sinatra gt MongoMapper gt MongoDB 该应用程序在数据库中放置了多个条目 为了交叉链接到其他页面 我添加了某种语法 例如 咖啡是一种由咖啡豆制成的黑色含咖啡因液体 茶 是
  • 解释 qsort 库中使用的函数的 typedef

    我正在使用 qsort 库函数对结构元素数组进行排序 在互联网上搜索时我发现了一个资源 信息 使用 C qsort 函数对结构进行排序 support microsoft 我知道 qsort 函数需要通过通用指针进行类型转换 但是我无法得到
  • 计算floor(pow(2,n)/10) mod 10 - pow(2,n) 的数字总和

    这也是一个与数学相关的问题 但我想用 C 实现它 所以 我有一个以下形式的数字2 n 我必须计算其数字之和 以 10 为基数 P 我的想法是用下面的公式来计算 sum 2 n mod 10 floor 2 n 10 mod 10 floor