精华内容
下载资源
问答
  • 如何计算数组a里面 如:a = [‘2’, ‘*’, ‘5’] <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-...

    如何计算数组a里面 如:a = [‘2’, ‘*’, ‘5’]

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
    </body>
    <script>
        //如何计算数组a里面  如:a = ['2', '*', '5']
        var a = ['2', '*', '5']
    
        var xxx = eval((a + "").replace(/,/g, ""))
        //   (a+"")  数组变字符串
        //     replace(/,/g,"")    将 ,变为 ''
        //     eval  计算字符串  "a*b+c/d-e"
        console.log(a)
        console.log((a + "")) //字符串
        console.log((a + "").replace(/,/g, ""))   //去掉,
        console.log(xxx)   //计算结果
    </script>
    
    </html>
    

    在这里插入图片描述

    展开全文
  • 如何计算数组a = np.array([1,2,3,2,3,4,3,4,5,6])和数组b = np.array([7,2,10,2,7,4,9,4,9,8])之间的欧式距离? a = np.array([1,2,3,2,3,4,3,4,5,6]) b = np.array([7,2,10,2,7,4,9,4,9,8]) distance=np.sqrt(np....
    # 7. 如何计算数组a = np.array([1,2,3,2,3,4,3,4,5,6])和数组b = np.array([7,2,10,2,7,4,9,4,9,8])之间的欧式距离?
    a = np.array([1,2,3,2,3,4,3,4,5,6])
    b = np.array([7,2,10,2,7,4,9,4,9,8])
    distance=np.sqrt(np.sum((a-b)**2))
    
    print(distance)
    
    12.529964086141668
    
    展开全文
  • HashMap如何计算数组下标

    千次阅读 2020-06-19 19:51:07
    HashMap如何计算数组下标 首先我们看看String的hashCode是如何计算的(出自JDK1.8.0 211 java.lang.String 1452行—1476行) /** * Returns a hash code for this string. The hash code for a * {@code String} ...

    讨论 代码环境为JDK1.8.0 211

    HashMap如何计算数组下标

    首先我们看看String的hashCode是如何计算的(出自JDK1.8.0 211 java.lang.String 1452行—1476行)

    /**
         * Returns a hash code for this string. The hash code for a
         * {@code String} object is computed as
         * <blockquote><pre>
         * s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
         * </pre></blockquote>
         * using {@code int} arithmetic, where {@code s[i]} is the
         * <i>i</i>th character of the string, {@code n} is the length of
         * the string, and {@code ^} indicates exponentiation.
         * (The hash value of the empty string is zero.)
         *
         * @return  a hash code value for this object.
         */
        public int hashCode() {
            int h = hash;
            if (h == 0 && value.length > 0) {
                char val[] = value;
    
                for (int i = 0; i < value.length; i++) {
                    h = 31 * h + val[i];
                }
                hash = h;
            }
            return h;
        }
    

    String类重写了hashCode()函数,计算字符串的hashCode的公式为:
    s[0]31n1+s[1]31n2+...+s[n1] s[0]*31^{n-1}+s[1]*31^{n-2}+...+s[n-1]
    我们来举个例子:在这里插入图片描述
    经过debug我们得知三个字符串的hashCode()返回值,我们来通过计算公式模拟一下:
    字符串“a”,长度n=1,字符‘a’=97,代入公式得:
    s[0]31n1+s[1]31n2+...+s[n1]=973111=97 s[0]*31^{n-1}+s[1]*31^{n-2}+...+s[n-1]=97*31^{1-1}=97
    字符串“ab”,长度n=2,字符‘a’=97,‘b’=98,代入公式得:
    s[0]31n1+s[1]31n2+...+s[n1]=973121+983111=3105 s[0]*31^{n-1}+s[1]*31^{n-2}+...+s[n-1]=97*31^{2-1}+98*31^{1-1}=3105
    好了知道了如何计算String的hashCode,再来看看HashMap的hash()函数是如何利用hashCode的:
    图片截图自JDK1.8.0 211 java.util.HashMap.java 337行—340行
    如果key对象为null的话,就返回一个0,当然String对象为null的话,强行计算hashCode()是会抛出空指针异常的。如果key对象不是为null,那么获取key的hashCode,然后与右移位16位后的hashCode进行异或操作(关于异或操作,总结:不同,结果为1,相同,结果为0),异或的结果就位hash()函数返回值。我们以String的hashCode()为例,图解计算一次hash()返回值:
    在这里插入图片描述
    通过debug,我们知道“my name is suser!”的hashCode返回值为:244633208,然后通过进制转换为二进制,方便计算
    在这里插入图片描述
    我们图解一下计算过程:
    在这里插入图片描述
    得到hash(key)=244629740后,下一步计算数组下标,我们看源码中第630行:
    在这里插入图片描述

    tab[i = (n - 1) & hash] 
    

    在JDK1.8中,HashMap底层为数组+链表或红黑树
    i是什么?i就是数组下标;
    n是什么?n是数组长度,默认为16
    hash就是hash(key)函数的返回值,244629740为例,这里要得出下标,需要进行一次&(与运算)(同为1,则1,不然则为0)
    这里,假设HashMap刚刚创建,也没有经过扩容操作,数组长度这时为默认的16,来算算下标:
    在这里插入图片描述
    最终计算得下标值为12。
    下面,通过debug结果,给出证据,证明其下标值确定为12:
    在这里插入图片描述
    625行debug信息显示hash(key)返回值,key值等关键信息
    630行debug信息显示此时HashMap数组长度为默认16,还未经过扩容操作
    631行debug信息显示i的值为12,与我推想的结果一致

    总结一下: HashMap中数组下标值的计算过程,大致分为如下几步:获取key.hashCode(),然后将hashCode高16位和低16位异或(^)操作,然后与当前数组长度-1结果进行与(&)操作,最终结果就是数组的下标值。
    至于由于当前结点(键值对)的加入,导致当前HashMap中容量超过了阈值而扩容2倍,扩容后导致每个结点重新计算下标值(称为新下标值),新下标值只有两种可能:一、key的hash()返回值新加入与(&)操作计算的一位为0,则下标值与原下标值相同。二、key的hash()返回值新加入与(&)操作计算的一位为1,则计算出来的下标值=原下标值+原数组长度。
    如果key对象为Integer,他的hashCode()直接返回的value。

    展开全文
  • HashTable如何计算数组下标? 首先我们看看String的hashCode是如何计算的(出自JDK1.8.0 211 java.lang.String 1452行—1476行) /** * Returns a hash code for this string. The hash code for a * {@code ...

    讨论源码环境为JDK1.8 211

    HashTable如何计算数组下标?

    首先我们看看String的hashCode是如何计算的(出自JDK1.8.0 211 java.lang.String 1452行—1476行)

    /**
         * Returns a hash code for this string. The hash code for a
         * {@code String} object is computed as
         * <blockquote><pre>
         * s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
         * </pre></blockquote>
         * using {@code int} arithmetic, where {@code s[i]} is the
         * <i>i</i>th character of the string, {@code n} is the length of
         * the string, and {@code ^} indicates exponentiation.
         * (The hash value of the empty string is zero.)
         *
         * @return  a hash code value for this object.
         */
        public int hashCode() {
            int h = hash;
            if (h == 0 && value.length > 0) {
                char val[] = value;
    
                for (int i = 0; i < value.length; i++) {
                    h = 31 * h + val[i];
                }
                hash = h;
            }
            return h;
        }
    

    String类重写了hashCode()函数,计算字符串的hashCode的公式为:
    s[0]31n1+s[1]31n2+...+s[n1] s[0]*31^{n-1}+s[1]*31^{n-2}+...+s[n-1]
    我们来举个例子:在这里插入图片描述
    经过debug我们得知三个字符串的hashCode()返回值,我们来通过计算公式模拟一下:
    字符串“a”,长度n=1,字符‘a’=97,代入公式得:
    s[0]31n1+s[1]31n2+...+s[n1]=973111=97 s[0]*31^{n-1}+s[1]*31^{n-2}+...+s[n-1]=97*31^{1-1}=97
    字符串“ab”,长度n=2,字符‘a’=97,‘b’=98,代入公式得:
    s[0]31n1+s[1]31n2+...+s[n1]=973121+983111=3105 s[0]*31^{n-1}+s[1]*31^{n-2}+...+s[n-1]=97*31^{2-1}+98*31^{1-1}=3105
    我们知道了String对象的hashCode是如何产生的了,接着我们看HashTable源码,看看它的数组下标是如何计算的:(代码截取自JDK1.8 211 java.util.HashTable.java 457行—479行)

    public synchronized V put(K key, V value) {
            // Make sure the value is not null
            if (value == null) {
                throw new NullPointerException();
            }
    
            // Makes sure the key is not already in the hashtable.
            Entry<?,?> tab[] = table;
            int hash = key.hashCode();
            int index = (hash & 0x7FFFFFFF) % tab.length;
            @SuppressWarnings("unchecked")
            Entry<K,V> entry = (Entry<K,V>)tab[index];
            for(; entry != null ; entry = entry.next) {
                if ((entry.hash == hash) && entry.key.equals(key)) {
                    V old = entry.value;
                    entry.value = value;
                    return old;
                }
            }
    
            addEntry(hash, key, value, index);
            return null;
        }
    

    看这几行:

            Entry<?,?> tab[] = table;
            int hash = key.hashCode();
            int index = (hash & 0x7FFFFFFF) % tab.length;
    

    tab是HashTable底层的数组;
    hash是key对象的hashCode();
    index是通过key的hashCode()返回值计算出来的数组下标。
    hashCode()返回值与2^31-1=0x7FFFFFFF(31位1)进行与(&)操作,然后除以数组长度取余,得到的就是下标值。

    总结一下:HashTable计算数组下标值的时候,先获取key的hashCode()值(int类型),然后与int最大值进行与(&)操作,最后直接除以数组长度取余,得到数组下标。

    展开全文
  • 如何计算数组的地址

    2019-12-12 16:04:27
    设: 数组定义为A[ , …] 现在查找数组A[ , …] (其中 对任意n 都存在>) 数组内每个元素的地址大小为 size 则其地址为 ...
  • 按照传统,先给结论:sizeof(数组名) 的值是这个数组所占据的内存的大小,单位是字节(bytes),在32位机器上,假设一个int型的数组...sizeof是如何计算数组大小的 char *ptr; char arr[10]; sizeof(ptr) =4; sizeof...
  • 我是初学者,这是我正在努力的方法.编写一个名为percentEven的方法,该方法接受一个整数数组作为参数,并将数组中偶数的百分比作为...这是我到目前为止所拥有的……public static double percentEven(int[]a){int count...
  • <p>I want to count the recurrence of a true or false and output which has the most. Is there a predefined function to do this in PHP? So far I have done it like this (<code>isHappy()</code> method): ...
  • 题目:给定一个数组请你求出其前N项的和是多少 方法一 —— 使用递归调用: 使用递归调用来计算本题会提升时间复杂度与空间复杂度(有一个压栈与出栈的操作) public class Main{ public static void main...
  • <p>I have a series of user data which each one is a list of comma separate values like <code>italian, english</code>. So first of all I want to list each of them and that it is fine and works. But ...
  • PHP如何计算数组值?

    2009-12-08 07:51:55
    <p>I'm trying to count all the values in the array and check if one value was entered and if so display a certain message for it and if there was more then one value entered display a different ...
  • The issue I have is that some answers may be marked as n/a, so I need to be able to calculate only the total number of fields with data ( 0 for a fail, 1 for a pass). I have used an empty string for n...
  • <p>I have an array with a few values and want to do something like this: <pre><code> $arrayvalues = array_reverse(explode(', ', somefunction())); foreach ( $arrayvalues as $arrayvalue ) : printf('&...
  • <pre><code> $a = array('dog', 'dog', 'dog', 'mouse', 'mouse','mouse', 'cat','cat'); </code></pre> <p>How to count how many elements called 'dog' I have ? I tried <code>count()</code> function , i ...
  • A [uid] => 429 [country_id] => 3 [date] => 2015-02-11 13:55:34 [DiffDate] => 20 ) [1] => Array ( [label] => A [uid] => 429 [country_id] => 2 [date] => 2015-02-11...
  • <p>I have an array that contains multiple integers, I'm interested only in integers that repeat themselves a certain number of times. For example: <pre><code>$items = (0, 0, 0, 1, 1, 2, 3, 3, 3) ...
  • <p>I have a groups array and members array. Group_one can be Member, Admin etc <pre><code>//groups: Array ( [0] => Array ( [id] => 1 ... [name] => Group_one ... ) [1] => Array ( ...
  • <p>am working on a website project in which i fetch array from my database and use foreach statement to output its contents. I want use ...
  • if(preg_match('{^a\d+$}',$k)){ $new_insert[] = array( 'w_id'=>$rid, 'q_id' =>$q_id, 'c_id' =>$k, 'rank'=>$v-1 ); } } </code></pre> <p>However, the result of rank becomes <pre>...
  • // Create a DOM object $html = new simple_html_dom(); // Load HTML from a string $html->load($str); $channel_name = $_GET['channels']; $show_id = 1; $program_title = $html->find('li[id=row1-1...
  • 程序内容: 以变长数组作为函数形参,完成编程练习13. 关于编程练习13的参考代码我也写出来了,就在上一篇文章。 程序为C Primer Plus第十章第十四题的答案示例附:程序代码为本人亲自编写,并非书内标准答案,仅供...
  • numpy.dot文档字符串显示:对于二...但它并没有说明numpy.dot如何用二维数组计算一维数组,那么numpy如何用二维数组(矩阵)处理一维数组(向量)?我做了一些测试:In [27]: aOut[27]:array([[0, 1, 2],[3, 4, 5],[6, ...
  • Java中如何定义数组

    千次阅读 2018-09-02 10:45:55
    数组:是一种容器,其中所有的元素都具有...//定义一个叫a数组,存放100个int型的数据 注: 元素的个数必须是整数,元素的个数必须是确定的数,元素的个数可以是变量。 例题 描述 孙老师讲授的《计算概论》这...
  • <p>How to count elements of a nested array? I want to count elements of $student_info['Aptitude']. <p>I tried the following and I'm getting undefined index at the following code: <pre><code>else if...
  • 例如两个含有n个元素的有序(非降序)整型数组a和b(数组a与b中都没有重复元素),求出其共同元素, a = 0, 1, 2, 3, 4 b = 1, 3, 5, 7, 9 那么它们的交集为{1, 3}。 计算数组交集可以采用很多种方法,...
  • <a href="/questions/41320864/count-duplicate-values-in-multidimensional-array" dir="ltr">Count duplicate values in multidimensional array</a> 2 answers <a href="/questions/4948946/...
  • 数组元素的总数:sizeof(a)/sizeof(int)数组行数:(sizeof(a)/sizeof(int))/(sizeof(a[0])/sizeof(int))数组列数:(sizeof(a[0])/sizeof(int))#include &lt;iostream&gt; using namespace std; int main...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 669
精华内容 267
关键字:

如何计算数组a