我正在使用一种算法,该算法生成大于Extended类型允许的数字,这将导致运行时错误。
var
a, b, magn: Extended;
...
a := -3,6854775808e-3109;
b := 2,3020377564e+3549;
magn:= a * a + b * b; //EInvalidOp, "invalid floating point operation"
我该如何解决这个问题?
我正在为pascal编写算法SmbPitchShift站点 c++。如果有人把它放在帕斯卡,我会感谢
我正在学习球拍(使用HtDP课程),这是我第一次尝试使用函数式语言的程序。
我试图设计一个函数,使用函数方法(我认为是这样)来查找某个输入n下的所有素数,但是程序会变得非常慢( 100.000的86秒,而我的Python和C++快速编写的解决方案只需几秒钟)。
以下是守则:
;; Natural Natural -> Boolean
;; Helper function to avoid writing the handful (= 0 (modulo na nb))
(define (divisible na nb) (= 0 (modulo na nb)))
;; Natura
给定大小为N的两个集合A和B,以及为交叉积AxB的N^2个条目中的每个条目分配实数的权重,我们希望形成A和B的匹配,以便最大化最低的权重。
举个例子,我们正在组织一场赛马,我们有10名骑师和10匹马,每个骑师每匹马都有不同的预期速度。我们必须选择哪个骑师骑哪匹马,以便在这场比赛中最慢的骑师/马尽可能快。
拿走
i j k
a 9 1 2
b 4 3 1
c 7 3 5
这里的“最大最小匹配”是{ (a,i),(b,j),(c,k) },其值为3。
计算这种匹配的算法是什么?它的复杂度是什么?
问题问题
42的除数为: 1、2、3、6、7、14、21、42。这些除数平方是: 1,4,9,36,49,196,441,1764。平方除数之和是2500,等于50 * 50,平方!
给定两个整数m,n (1 <= m <= n),我们要找到m与n之间的所有整数,其平方除数之和本身就是正方形。42就是这样一个数字。
结果将是一个数组,每个子数组都有两个元素,首先是平方除数为平方的数,然后是平方除数的和。
代码如下
如何使这个特定的程序运行得更快?我的当前代码在n> 9999之后超时。
#returns the divisors of each number in an arr
我在做研究工作。为此,我需要计算和存储2到10^6位的平方根。我已经在谷歌上搜索过了,但我只得到了一个NASA的页面,但他们是如何计算的,我不知道。我用的是c++的set_precision。但是这就给出了大约50个地方的结果,only.what我应该怎么做呢?
美国宇航局页面链接:我也尝试过二进制搜索,但不是很有成效。
long double ans = sqrt(n);
cout<<fixed<<setprecision(50)<<ans<<endl;
这是我提出的计算平方根的算法,目前,当用循环n次测试平方根并停止观察时,它比C# Math.Sqrt()慢20-100倍;
是否有任何方法来提高这个函数的性能,或者这个特定算法的性能是否和它所能得到的一样好?
我的C#平方根算法:
static class MyMath
{
public static double Sqrt(double _d)
{
double x = 0;
double y = 2;
double z = 1;
double w = _d;
double h = 1;
我写了一个生成Julia集分形的程序。该程序还允许用户输入他们的值c或让程序生成一个随机值。这是密码:-
import pygame, sys, math, cmath, random
from pygame.locals import *
print("Julia set fractal generator")
custom = int(input("Do you want a custom set? Yes(1); No(-1): "))
if custom == -1:
c = complex((random.randint(-999,1000))
这是一个家庭作业问题,所以我想避免完整的答案,如果可能的话,我更喜欢提示。
给定一个随机整数数组A1...x,程序应按递增顺序返回前y个数组元素,其中1<=y<=sqrt(x)。所以,基本上,给定一个数组5,9,2,8和y=2,程序应该返回2,5。
"sort first,return first y items“的答案已经不存在了,因为我们最多只能使用合并或快速排序的n*logn时间。因此,答案必须利用这样一个事实,即我们最多只能返回sqrt(x)项,到目前为止,我得到的唯一另一个答案是对数组中的最小元素执行for循环搜索,从数组中删除最小值,将其存储在一个新的数组中,比
假设我们有以下两个函数:
def is_prime(x):
"""Take an integer greater than 1 and check if it is a prime number."""
for i in range(2, int(x**0.5) + 1):
if x % i == 0:
return False
return True
def multiply(a, b):
"""Take two integers and comp
所以,我试图让这个C代码正常工作。它编译,但产生不正确的输出。它应该列出介于1和选定值之间的所有完全平方数。它做了一些错误的事情,经过大量的尝试和错误之后,我认为问题是模数operation...like的早期截断或做其他一些奇怪的事情。
// C Code
/*This program will identify all square numbers between one and a chosen integer*/
#include <stdio.h>
#include <math.h>
int main(){
int i, upper, square_
(define (sum-two-sqrt a b c)
(cond ((and (<= c a) (<= c b)) sqrt-sum(a b))
((and (<= a b) (<= a c)) sqrt-sum(b c))
((and (<= b a) (<= b c)) sqrt-sum(a c))
)
)
(define (sqrt-sum x y)
(+ (* x x) (*y y))
)
(define (<= x y)
(not (>
我使用以下两个函数来计算A的行列式。
该代码是否被认为具有O(N)立方体的渐近时间复杂度?递归让我感到失望,但我认为它会,因为它最终会看起来类似于:基于原始元素的许多辅助因素的n³ + n³ + ...是必需的。
void MatrixOps::cofactor(const std::vector<Entries>& A, std::vector<Entries>& C, int32_t n, int32_t k){
for (int i = 1 ; i < n ; i++){ // never take row 1
我在玩朱莉娅语言,并注意到我写的小程序非常慢。由于怀疑它与for循环有某种联系,我将其重写为使用while,并得到了大约15倍的速度。
我肯定有什么地方我做错了范围等,但我不知道是什么。
function primes_for()
num_primes = 0
for a = 2:3000000
prime = true
sa = floor(sqrt(a))
for c in 2:sa
if a % c == 0
prime = false
我有一个dll文件和它对应的.h文件。我想从C#程序中调用它。我怀疑这要么是不可能的,要么是非常困难的。
下面是我想要使用的.h文件的一部分
int SelfTest();
/******************************************************
* C++ functions
******************************************************/
int CPP_Init(std::string baseDirectory);
std::vector<std
我对Haskell和一般的函数式编程非常陌生。此外,我知道上面的问题与非常相似,但我在任何地方都找不到解决问题的方法。以下代码用于查找数字输入的因素:
fc4 :: Double -> IO ()
check :: Double -> Double -> IO ()
fc4 a = check a (sqrt a)
check a b = if rem a b == 0 then print (b, div a b) else print () >> if b > 1 then check a (b-1) else putStrLn ("Do
该算法取自亚历山大·沈的伟大的“算法与编程:问题与解决方案”(即练习1.28)。
以下是我的俄文翻译,请原谅我的错误或含糊不清。如果你这样认为,请纠正我。
算法应该做什么?
用给定的自然n算法计算不等式的解数。
x*x + y*y <n
在自然(非负)数中,无需对实数进行操作。
帕斯卡
k := 0; s := 0;
{at this moment of execution
(s) = number of solutions of inequality with
x*x + y*y < n, x < k}
while k*k < n do begin
我目前正在测试根据键值对列表进行排序的最佳算法。
我有一个非常简单的对象(以下代码片段来自C#)
class BasicObject
{
int Key;
}
密钥是在构造对象时随机设置的。
所以我有一个BasicObject对象列表,最后需要按键值排序。
List<BasicObject> basicList = new List<BasicObject>();
for (int i = 0; i < someAmount; i++)
{
basicList.Add(new BasicObject());
}
我的想法是,创建一个名为orderedList的新列
我刚刚回到Project Euler,失去了我的帐户和解决方案,所以我又回到了问题7上。然而,我的代码不能工作。这对我来说似乎是相当基础的,有人能帮我调试我的(短)脚本吗?
应该会找到第1000个素数。
#!/usr/bin/env python
#encoding: utf-8
"""
P7.py
Created by Andrew Levenson on 2010-06-29.
Copyright (c) 2010 __ME__. All rights reserved.
"""
import sys
import os
from mat