LABVIEW如何实现数组多次条件判断,并且替换数组中的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LABVIEW如何实现数组多次条件判断,并且替换数组中的值相关的知识,希望对你有一定的参考价值。

主要目的如下:比如输入数组【1 0 1 1 1 0 0 1 0 1 】
输出的是数组【1 0 -1 1 -1 0 0 1 0 -1】

下图是自己编的,就是不知道怎么完成-1和1之间的转换
麻烦各位达人帮忙

希望对你有帮助:

参考技术A 什么是多次判断??追问

比如说用X带表计数,判断奇偶

当执行过一次a[i]是否为1的判断后,为真,a[i]=1;x奇数
再执行一个a[i+1]是否为1的判断后,为真 a[i+1]=-1;x偶数

追答

用for循环轮流查询数组中的每一个值。用一个寄存器保存用来替换的值a。一开始a设为-1
把每个数和需要找的数比较,若不相等忽略;
若相等,把其设为a,把a设为1;
继续查找,若找到,将其设为a,然后把a又设为-1,反复进行即可;
直到所有值都找了一遍。

追问

貌似看懂了- -#
大侠能不能只能来张模拟图啊。。。哈哈。。

追答

哈哈,不行啊!我用的linux,机器没装!

Leetcode1354_多次求和构造目标数组

题目地址

给定n个数,初始有n个1,每次选择一个数,替换为所有数的和,可以无限次操作,问能否得到给定的数组。

  • 显然,一次操作后的序列中肯定有一个最大值就是上一个序列的总和,反过来想,每一个序列的最大值就是上一个序列的总和。即Max_now=Sum_pre=Max_pre+其他数,因为其他数不会变,所以最大值在上一个序列中的值Max_pre就是Max_now-其他数总和。
  • 用个堆维护最大值,然后从最后的target数组逆推,不断更新当前的max和sum。
  • 考虑[1,1e9]的情况,所以不能一个序列一个序列的更新,直接除一下再减去。
  • 特判n==1的情况。

code

class Solution {
public:
    bool isPossible(vector<int>& target) {
        int n=target.size();
        if(n==1){
            return target[0]==1;
        }
        long long sum=0;
        priority_queue<int> q;
        for(int i=0;i<n;i++){
            q.push(target[i]);
            sum+=target[i];
            if(target[i]<1){
                return false;
            }
        }
        while(true){
            int mx=q.top();
            q.pop();
            if(mx<=(sum-mx)){
                return false;
            }
            int ts=mx/(sum-mx);
            if(mx%(sum-mx)==0){
                ts--;
            }
            // cout << ts << "
";
            int tmp=mx-ts*(sum-mx);
            q.push(tmp);
            sum-=(mx-tmp);
            // cout << tmp <<" " << sum <<"
";
            if(sum==n){
                return true;
            }
        }
        return false;
    }
};

以上是关于LABVIEW如何实现数组多次条件判断,并且替换数组中的值的主要内容,如果未能解决你的问题,请参考以下文章

labview中如何写: 比较前面板中输入的两个数的大小,并输出其中最大值?

labview如何对数组中的任意一个元素进行替换

labview如何设置一个按钮的可见与隐藏;即当一定的条件满足时按钮才会显示出来可用

如何实现两个数组之间值的替换

labview条件结构怎么比较两个数大小

labview条件结构怎么比较两个数大小?