标签: numbers

OpenMP set_num_threads()不起作用

我正在使用C++中的OpenMP编写并行程序.

我想控制程序中使用的线程数omp_set_num_threads(),但它不起作用.

#include <iostream>
#include <omp.h>
#include "mpi.h"

using namespace std;

int myrank;
int groupsize;
double sum;
double t1,t2;
int n = 10000000;

int main(int argc, char *argv[])
{
    MPI_Init( &argc, &argv);
    MPI_Comm_rank( MPI_COMM_WORLD, &myrank );
    MPI_Comm_size(MPI_COMM_WORLD,&groupsize);

    omp_set_num_threads(4);

    sum = 0;
    #pragma omp for  reduction(+:sum)
    for (int i = 0; i < n; i++)
        sum+= i/(n/10);

    cout<<"sum="<<sum<<endl;
    cout<<"threads="<<omp_get_num_threads()<<endl;

    MPI_Finalize();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

该方案产出:

sum = 4.5e+007
threads=1
Run Code Online (Sandbox Code Playgroud)

如何控制线程数?

c++ multithreading numbers set openmp

27
推荐指数
3
解决办法
12万
查看次数

Matlab:将数组转换为字符串数组

如何转换[12 25 34 466 55]为字符串数组['12' '25' '34' '466' '55']?我知道的转换函数将该数组转换为表示整个数组的一个字符串.

string matlab numbers type-conversion

27
推荐指数
3
解决办法
3万
查看次数

隐藏/加密订单号作为另一个数字:对称,"随机"外观?

客户有一个简单的增加订单号(1,2,3 ......).他希望最终用户收到8位或9位数字(仅数字 - 无字符)"随机"数字.显然,这个"随机"数字实际上必须是唯一且可逆的(它实际上是对actualOrderNumber的加密).

我的第一个想法是只是洗牌一些.当我向客户展示一个样本序列时,他抱怨随后的obfuscOrderNumbers正在增加,直到它们达到"shuffle"点(低位比特发挥作用的点).他希望obfuscOrderNumbers尽可能随机看似.

我的下一个想法是确定性地播种线性同余伪随机数生成器,然后获取actualOrderNumber值.但在这种情况下,我需要担心碰撞 - 客户想要一种保证不会在至少10 ^ 7个周期内发生碰撞的算法.

我的第三个想法是"呃,只是对加密的东西进行加密",但如果我使用股票加密库,我必须对其进行后期处理才能获得8位或9位数的要求.

我的第四个想法是将actualOrderNumber的位解释为格雷编码的整数并返回.

我的第五个问题是:"我可能会过度思考这个问题.我敢打赌,StackOverflow上的某个人可以用几行代码完成这项工作."

random encryption encoding numbers

26
推荐指数
3
解决办法
6025
查看次数

棘手的编程问题,我无法理解

首先,让我说,这不是功课(我是一个A-Level的学生,这是没有接近我们解决问题(这是难)),但更多的问题,我想苏斯出来的改善我的编程逻辑.

我想到了一个有一个随机整数数组的场景,比如说10个整数.用户将输入他想要计数的数字,算法将尝试计算出该总和所需的数字.例如,如果我想从这个整数数组中得到总和44:

myIntegers = array(1, 5, 9, 3, 7, 12, 36, 22, 19, 63);
Run Code Online (Sandbox Code Playgroud)

输出将是:

36 + 3 + 5 = 44
Run Code Online (Sandbox Code Playgroud)

或类似的规定.我希望我能说清楚.作为一个额外的好处,我想让算法选择尽可能少的数字来产生所需的总和,或者如果不能用所提供的数字进行求和则给出错误.

我想过使用递归和遍历数组,反复添加数字直到满足或超过总和.但是我无法理解的是,如果算法超过总和并且需要选择从阵列中选择的数字,该怎么办.

我不是在寻找完整的代码,也不是一个完整的算法,我只是希望你对我应该如何处理这个问题提出意见,也许还会分享一些提示或其他内容.我今晚可能会开始研究这个问题.:P

正如我所说,不是功课.只是我想要做一些更先进的事情.

感谢您提供的任何帮助.:)

algorithm math numbers np-complete

26
推荐指数
2
解决办法
2449
查看次数

XSL - 舍入/格式数问题

我试图从我的xml中获取一个数字的值到2 dec的位置.

XML:<Quantity>0.0050</Quantity>

XSL:<xsl:value-of select="format-number($quantity, '####0.00')" />

但是,XSL似乎0.00在页面的一个区域和另一个区域中存在此值和输出的问题0.01.当然,在这种情况下,有利于0.01 所有领域的产出.

另一个区域具有4.221XSL输出的价值4.23.

我确实意识到,format-number作为一种方法,将数字转换为字符串.

不知道如何解决这个问题.


编辑:

好了一下,我发现这有效:

<xsl:value-of select='format-number( round(100*$quantity) div 100 ,"##0.00" )' />
Run Code Online (Sandbox Code Playgroud)

通过这个网站

正如这个家伙提到的那样,XSL使用"银行家四舍五入"来舍入到偶数而不是更大的数字.

解决方案似乎不太优雅,意味着为已经庞大而复杂的XSL文件添加大量额外功能.当然我错过了什么?

xml xslt formatting numbers rounding

26
推荐指数
2
解决办法
6万
查看次数

从给定数字中,确定其产品为原始数字的三个紧密数字

我有一个号码n,我想找到三个号码,其产品n尽可能彼此接近.也就是说,如果n = 12那时我想得到3,2,2结果,而不是6,1,2.

想到它的另一种方法是,如果n是长方体的体积,那么我想找到两侧的长度,以便使长方体尽可能像立方体(即,长度尽可能相似).这些数字必须是整数.

我知道不太可能有一个完美的解决方案,而且我很乐意使用能够在大多数时候给出一个好答案的东西,但我想不出去想出这个算法.有任何想法吗?

language-agnostic algorithm math numbers

26
推荐指数
1
解决办法
2861
查看次数

为什么java.lang.Long的.longValue()将其(长)实例值强制转换为long?

我一直在调查java.lang.Long类源代码.

考虑一下:

public final class Long extends Number implements Comparable<Long> {
      ....
      private final long value;    
      ....
      public long longValue() {
            return (long)value;
      }
      ....
}
Run Code Online (Sandbox Code Playgroud)

什么是投理由longlong

为什么不在这种情况下将序列化(?)重新归类为Number类?

PS1 源代码链接

我有这些可能的解释:

  1. 开发人员粗心大意
  2. 符合一些统一的代码风格
  3. 它是为一些特殊情况而制作的,但我不明白为什么.

PS2

我的java版本 - 1.7.0_45-b18

PS3 仅供参考:

Integer:

public final class Integer extends Number implements Comparable<Integer> {
          ....
          private final int value;    
          ....
          public int intValue() {
            return value;
          }    
          ....
}
Run Code Online (Sandbox Code Playgroud)

Short:

public final class Short …
Run Code Online (Sandbox Code Playgroud)

java numbers long-integer

26
推荐指数
1
解决办法
1316
查看次数

Integer.MAX_VALUE和Integer.MIN_VALUE的解释,用于查找数组中的最小值和最大值

我似乎不知道如何Integer.MAX_VALUEInteger.MIN_VALUE找到在一个数组的最小值和最大值的帮助.

我理解这个方法(下面的伪代码)在找到最小值和最大值时是如何工作的:

max = A[0], min = A[0]
for each i in A
  if A[i] > max then max = A[i]
  if A[i] < min then min = A[i] 
Run Code Online (Sandbox Code Playgroud)

但至于这种方法,我不明白的目的Integer.MAX_VALUEInteger.MIN_VALUE:

import java.util.Scanner;

class MyClass {

    public static void main(String[] args) {

        int[] numbers; // declaring the data type of numbers
        numbers = new int[3]; //assigning the number of values numbers will contain
        int smallest = Integer.MAX_VALUE, largest = Integer.MIN_VALUE;

        Scanner input = …
Run Code Online (Sandbox Code Playgroud)

java arrays numbers

26
推荐指数
3
解决办法
16万
查看次数

Javascript:比较两个浮点值

我有这个JavaScript函数:

Contrl.prototype.EvaluateStatement = function(acVal, cfVal) {

    var cv = parseFloat(cfVal).toFixed(2);
    var av = parseFloat(acVal).toFixed(2);

   if( av < cv) // do some thing
}
Run Code Online (Sandbox Code Playgroud)

当我比较浮点数av=7.00cv=12.00结果7.00<12.00false!

有什么想法吗?

javascript floating-point comparison numbers

25
推荐指数
3
解决办法
4万
查看次数

OEIS A002845:2 ^ 2 ^ ... ^ 2采用的不同值的数量(以所有可能的方式插入n 2和括号)

我正在寻找一个合理快速的算法来计算OEIS序列A002845的术语.让我在这里重申它的定义.

设^表示取幂运算符.考虑具有n 2的形式2 ^ 2 ^ ... ^ 2的表达式,其中括号以所有可能的方式插入(可能的括号的数量由加泰罗尼亚数字给出).这些表达式中的一些将具有相同的值,例如(2 ^ 2)^ 2 = 2 ^(2 ^ 2).我们感兴趣的是给定n的不同值的数量.

通过直接计算这些表达式,有明显的暴力解决方案,但很明显,即使对于相对较小的n,所需的时间和空间也会迅速超过所有合理的限制.我对这个问题的多项式时间解决方案很感兴趣.

algorithm numbers sequence combinatorics exponent

25
推荐指数
1
解决办法
868
查看次数