math 相关问题

数学涉及在程序中操纵数字。有关一般数学问题,请咨询https://math.stackexchange.com/

从 USD 到 WEI 的稳定价格计算

我正在使用 Oraclize 进行一个项目,我从 coinmarketcap 获得 1 ETH 美元价格(1 ETH = 1e18 WEI),即 474.846 使用 Oraclize 的 parseInt 我可以将其解析为 uint256。由于缺乏浮点...

回答 2 投票 0

极其紧凑的UUID(使用所有字母数字字符)

我需要一个极其紧凑的UUID,越短越好。 为此,我写道: 公共字符串 getBase36UIID() { // UUID 的更紧凑版本 字符串 strUUID = UUID.randomUUID().

回答 4 投票 0

C 中使用 sin 和 cos 的数学表达式计算不正确?

为什么这个简单的程序 #包括 #包括 int main() { int res = (int)(-1 * sin(M_PI/2) + 1 * cos(M_PI/2)); printf("-1 * %f + 1 * %f = %d ”,...

回答 1 投票 0

如何缩小多边形顶点以求净面积

我正在开发一个用 C# 进行绿色建筑建模的项目。 为了进行模拟,我需要将顶点放在平坦外墙的外侧,墙的中心......

回答 1 投票 0

Python 中大量数字的乘法

我正在为自己编写一个小型Python程序,我需要一种算法来快速将一个巨大的数组与数字相乘(超过660 000个数字,每个数字都是9位数字)。结果数量超过 4

回答 1 投票 0

沿球体移动点在投影到等距矩形地图上时不会导致变形

我试图从图像中获取点,将它们投影到球体上,沿着球体移动点,然后将它们转换回来以模拟板块构造。从...获取积分的代码

回答 1 投票 0

计算二次贝塞尔曲线一段的长度

我使用这个算法来计算二次贝塞尔曲线的长度: http://www.malczak.linuxpl.com/blog/quadratic-bezier-curve-length/ 然而,我想做的是计算bez的长度......

回答 3 投票 0

数组 A 最多经过 N 次运算后的最大乘积,A[i]=A[i]*B[j] 或 A[i]=A[i]+B[j]

我们有两个大小为 n 且仅包含正整数的数组 A 和 B。我们可以修改数组 A 的元素,使得 A[i]=A[i]*B[j] 或 A[i]=A[i]+B[j],其中 0<=i,j 我们有两个大小为 n 的数组 A 和 B,仅包含正整数。我们可以修改数组 A 的元素,使得 A[i]=A[i]*B[j] 或 A[i]=A[i]+B[j],其中 0<=i,j问题的目的是寻找正确和更好的算法。 示例: A={2,3,5}; B={1,6,4}; output= 1080 说明: A[0]=2+1=3 A[1]=3*4=12 A[2]=5*6=30 product=30*12*3=1080 我的做法: #include <iostream> #include<vector> #include<algorithm> using namespace std; int main() { int testcases; cin>>testcases; for(int i=0;i<testcases;i++){ int n;cin>>n; vector<int>a(n); vector<int>b(n); for(int j=0;j<n;j++){ cin>>a[j]; } for(int j=0;j<n;j++){ cin>>b[j]; } sort(a.begin(),a.end()); sort(b.begin(),b.end()); for(int j=0;j<n;j++){ a[j]=max(a[j]+b[j],a[j]*b[j]); } int answer=a[0]; for(int j=1;j<n;j++){ answer=answer*a[j]; } cout<<answer<<endl; } } 但是,它只通过了 1 个测试用例,并且为其他测试用例提供了错误的答案。请寻求帮助来解决这个问题。 失败的测试用例示例; A = [1,2] B = [1,2] My answer = 8 Correct answer = 9= [(1+2) * (1+2)] 由于数字是正数,我们唯一关心的就是 1。所有不包含 1 的分组都是最佳的乘法,当我们在该组中进行乘法时,顺序并不重要(因为(a1 * b1) * (a2 * b2) = (a1 * b2) * (a*2 * b*1))。 A 和 B 中均为 1 的决策是 max(2 * a * b, (a + 1) * (b + 1)) where a and b are the next lowest non 1s 否则,剩余的 1 与另一个列表中下一个最低的非 1 进行匹配。 针对暴力测试的 JavaScript 代码: function bruteForce(A, B, i = 0) { if (i == A.length) { return 1; } let result = 1; for (let j = 0; j < B.length; j++){ if (B[j] != -1) { const copyB = B.slice(); copyB[j] = -1; result = Math.max( result, A[i] * B[j] * bruteForce(A, copyB, i+1), (A[i] + B[j]) * bruteForce(A, copyB, i+1) ); } } return result; } function f(A, B) { A.sort((a, b) => a - b); B.sort((a, b) => a - b); let i = 0; while (A[i] == 1) { i += 1; } let j = 0; while (B[j] == 1) { j += 1; } let result = 1; let ii = 0; let jj = 0; while (ii < i && jj < j && A[ii] == 1 && B[jj] == 1 && i < A.length && j < B.length) { const left = 2 * A[i] * B[j]; const right = (A[i] + 1) * (B[j] + 1); if (left >= right) { result *= 2; } else { result *= right; i += 1; j += 1; } ii += 1; jj += 1; } let a1count = 0; while (ii < A.length && A[ii] == 1) { a1count += 1; ii += 1; } let b1count = 0; while (jj < B.length && B[jj] == 1) { b1count += 1; jj += 1; } while (j < B.length && a1count > 0) { result *= B[j] + 1; j += 1; a1count -= 1; } while (i < A.length && b1count > 0) { result *= A[i] + 1; i += 1; b1count -= 1; } while (i < A.length && j < B.length) { result *= A[i] * B[j]; i += 1; j += 1; } return result; } var numTests = 100; var n = 5; var m = 50; function getArr() { const arr = []; for (let i = 0; i < n; i++) { arr.push(1 + Math.floor(Math.random() * m)); } return arr; } console.log("Testing..."); for (let i = 0; i < numTests; i++) { const A = getArr(); const B = getArr(); const brute = bruteForce(A, B); const _f = f(A, B); if (brute != _f) { console.log("Mismatch:"); console.log(`f: ${ _f }; brute: ${ brute }`); console.log(JSON.stringify(A)); console.log(JSON.stringify(B)); } } console.log("Done."); 这是我在 stackoverflow 上的第一个回答。 可能是错的,我只是分享我的想法。 第一件事显然是对两个数组进行排序(因为都是 1)。 如果两个数组中都没有 1..那么只需将两个数组中的所有元素相乘即可。 举个例子吧 a = [1, 1 ,1, 2, 4, 5] // 排序后 b = [1, 1, 3, 4, 8, 12] // 排序后 第一种情况:a[i] = 1 || b[j] = 1 // 这里我们必须做加 第二种情况:否则就乘以 还有一件事是乘法的顺序不会影响答案.. 就像从第三个索引开始,您将把两个数组中的每个元素相乘。像 (2 x 4) 或 (2 x 8) 根本不重要 修改后的数组 a = [2, 2, 4, 8, 32, 60] ans = 乘法(数组a)

回答 2 投票 0

Math.random() 在 javascript 中如何工作?

我最近想出了如何通过谷歌获取随机数,这让我思考 Math.random() 是如何工作的。所以我在这里我无法弄清楚他们是如何做 Math.random() 的,除非他们使用了 tim...

回答 5 投票 0

用js将字体“Cambria Math”转换为纯文本

我有一个文本“𝐓𝐁𝐋”,问题是当我收到此文本时它不会改变,它保持字体格式“Cambria Math”。记事本不能帮助翻译这个。字体可以是...

回答 2 投票 0

使用 Akka Actor 打印算术表达式

我需要编写一个程序来转换表达式,例如 在 Actor 的帮助下,“Add(Val(2), Add(Val(3),Val(2))”到 (2+(3+2))。 正确的方法是创建一个发送...的 Actor

回答 1 投票 0

编写自己的数学下取整函数 C

我正在考虑 math.h 中可用的下限函数。使用它非常简单: #包括 #包括 int 主函数(无效) { 对于(双 a = 12.5;a < 13.4; a +=...

回答 5 投票 0

子数组奇数和偶数索引元素之和的最大差值

给定一个由 N 个整数组成的数组(可以是正数/负数),计算任何子数组的奇数和偶数索引元素之和的最大差值,假设该数组遵循基于 0 的索引。 对于

回答 2 投票 0

如何使用 Python 将多项式重写为两个平方和?

我需要帮助使用 Python 重写以下代数表达式 给定输入表达式: x**2 - 2*x*y + 2*y**2 + 2*x - 10*y + 17 输出应该是两个平方和: (x - y + 1)**...

回答 1 投票 0

两个三角形之间的相似变换

我有两个二维三角形(即它们都位于平面上),并且希望找到将其中一个最接近地映射到另一个上的相似变换(旋转+缩放+平移)。 那个...

回答 2 投票 0

Scipy Rotvec 到外部欧拉

我有轴角度格式的刚体旋转,并且希望在全局框架(外部)中恢复主体的偏航。我使用 scipy Rotations 模块如下: 从 scipy.spatial.transform 导入

回答 2 投票 0

限制纬度和经度值的模数

我有代表纬度和经度的双精度值。 我可以使用以下函数轻松将经度限制为 (-180.0, 180.0]。 双极限Lon(双Lon) { 返回 fmod(lon - 180.0, 360.0...

回答 4 投票 0

分数不显示而是沿着一行显示

我正在使用 Visual Studio 2022 我尝试在屏幕上显示数学中的分数,代码是 “ rac{ 2}{ 6}” 但 vs2022 仅对“ ”进行着色 而不是写分数...

回答 1 投票 0

确定大富翁中的下一个建筑升级

大富翁中的每条街道都由 2 或 3 个不同的属性组成。 当用户升级街道时,它将在适当的地产上建造 3 栋建筑物中的 1 栋。 房子 - 最不值钱,将建造...

回答 1 投票 0

优化N的数字和

Codewars 问题:(数字总和/数字根) 给定 n,求 n 的数字之和。如果该值超过一位数,则继续以这种方式减少,直到产生一位数......

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.