精华内容
下载资源
问答
  • 破解替代加密法

    万次阅读 2020-03-02 22:00:19
    首先必须先找出字典文件里的每个单词的模式,把它们放置在一个列表里排序好,以便获取匹配特定密的单词模式的所有候选单词。 计算字典文件里的每个单词的单词模式,保存到另一个文件里,及 wordPatterns.py文件。 ...

    思路

    首先必须先找出字典文件里的每个单词的模式,把它们放置在一个列表里排序好,以便获取匹配特定密词的单词模式的所有候选单词。
    计算字典文件里的每个单词的单词模式,保存到另一个文件里,及 wordPatterns.py文件。
    计算单词模式的代码是 makeWordPatterns.py

    理论步骤

    1.找出密文里的每个密词的单词模式
    2.找出每个密词可以解密成哪些英文单词
    3.使用密词的候选单词列表为每个密词创建一个密字映射
    4.计算所有密字映射的交集,得到一个交集密字映射
    5.从交集密字映射移除任何已经破译的字母

    密文消息越长,越可能破译

    makeWordPatterns.py

    import pprint
    
    def getWordPattern(word):
        # 计算单词模式
        # 例如 输入'DUSTBUSTER' 返回'0.1.2.3.4.1.2.3.5.6'  
        word = word.upper()
        nextNum = 0
        letterNums = {}
        wordPattern = []
    
        for letter in word:
            # 处理单个字符, 如果字符已经存在则用对应的值,否则值往上叠加
            if letter not in letterNums:
                letterNums[letter] = str(nextNum)
                nextNum += 1
            wordPattern.append(letterNums[letter])
        return '.'.join(wordPattern)
    
    
    def main():
        allPatterns = {}
    
        fo = open('dictionary.txt')
        wordList = fo.read().split('\n')
        fo.close()
    
        for word in wordList:
           
            pattern = getWordPattern(word)
            # 将所有同一个模式的单词归类在一起
            if pattern not in allPatterns:
                allPatterns[pattern] = [word]
            else:
                allPatterns[pattern].append(word)
    
        fo = open('wordPatterns.py', 'w')
        fo.write('allPatterns = ')
        fo.write(pprint.pformat(allPatterns))
        fo.close()
    
    
    if __name__ == '__main__':
        main()
    

    破解实例

    import os, re, copy, pprint, simpleSubCipher, makeWordPatterns
    
    if not os.path.exists('wordPatterns.py'):
        makeWordPatterns.main() # 如果目录下没有wordPatterns.py文件则调用创建
    import wordPatterns
    
    LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    nonLettersOrSpacePattern = re.compile('[^A-Z\s]') # 正则匹配任何不适A到Z的字母也不是空白字符的字符
    
    
    def getBlankCipherletterMapping():
        # 返回密字映射字典,值是单个大写字母字符串的列表
        return {'A': [], 'B': [], 'C': [], 'D': [], 'E': [], 'F': [], 'G': [], 'H': [], 'I': [], 'J': [], 'K': [], 'L': [], 'M': [], 'N': [], 'O': [], 'P': [], 'Q': [], 'R': [], 'S': [], 'T': [], 'U': [], 'V': [], 'W': [], 'X': [], 'Y': [], 'Z': []}
    
    
    def addLettersToMapping(letterMapping, cipherword, candidate):
        # 将每个单词拆分成单个字符添加到映射字典里
        letterMapping = copy.deepcopy(letterMapping) # 深度复制 防止误操作数据 创建一个临时映射字典
        for i in range(len(cipherword)):
            # 将每个单词对应的映射字符放到一个临时的映射字典里
            if candidate[i] not in letterMapping[cipherword[i]]:
                letterMapping[cipherword[i]].append(candidate[i])
        return letterMapping
    
    
    def intersectMappings(mapA, mapB):
        # 将临时映射字典汇总到最终的映射字典里
        intersectedMapping = getBlankCipherletterMapping()
        for letter in LETTERS:
            # 如果总字典是空,则直接复制当前字典;如果临时字典是空,则总字典复制其本身;
            if mapA[letter] == []:
                intersectedMapping[letter] = copy.deepcopy(mapB[letter])
            elif mapB[letter] == []:
                intersectedMapping[letter] = copy.deepcopy(mapA[letter])
            else:
                # 如果都不为空,则将临时字典里的数据添加到总字典里
                for mappedLetter in mapA[letter]:
                    if mappedLetter in mapB[letter]:
                        intersectedMapping[letter].append(mappedLetter)
        return intersectedMapping
    
    
    def removeSolvedLettersFromMapping(letterMapping):
        # 剔除映射字典里已经破译的数据
        letterMapping = copy.deepcopy(letterMapping)
        loopAgain = True
        while loopAgain:
            # 由于剔除需要循环剔除,如果没有剔除完全则会继续循环,先关闭下面判断再进行开启
            loopAgain = False
            # 已经破解出的字符放入到solvedletters里面
            solvedLetters = []
            for cipherletter in LETTERS:
                if len(letterMapping[cipherletter]) == 1:
                    # 已经是当个对应的字符则是已破译
                    solvedLetters.append(letterMapping[cipherletter][0])
            # 判断,如果映射字典里的值不是一个,并且已破译也在当中,则将映射字典值剔除此破译字符
            for cipherletter in LETTERS:
                for s in solvedLetters:
                    if len(letterMapping[cipherletter]) != 1 and s in letterMapping[cipherletter]:
                        letterMapping[cipherletter].remove(s)
                        if len(letterMapping[cipherletter]) == 1:
                            # 如果当前值已经等于1个则进行剔除这个破译字符
                            loopAgain = True
        return letterMapping
    
    
    def hackSimpleSub(message):
        intersectedMap = getBlankCipherletterMapping()
        cipherwordList = nonLettersOrSpacePattern.sub('', message.upper()).split()
        for cipherword in cipherwordList:
            # 对密文列表进行处理,计算单词模式,获取对应模式的单词
            newMap = getBlankCipherletterMapping()
            wordPattern = makeWordPatterns.getWordPattern(cipherword)
            if wordPattern not in wordPatterns.allPatterns:
                continue # 如果计算出的模式在单词里没有找到则下一组密文
            # 如果找到对应的单词,将其拆分添加到映射字典里
            for candidate in wordPatterns.allPatterns[wordPattern]:
                newMap = addLettersToMapping(newMap, cipherword, candidate)
            # 将所有临时映射字典汇总到总的映射字典里
            intersectedMap = intersectMappings(intersectedMap, newMap)
    
        # 剔除已经破译的映射字符
        return removeSolvedLettersFromMapping(intersectedMap)
    
    
    def decryptWithCipherletterMapping(ciphertext, letterMapping):
        # 用已解得的密字映射字典翻译密文
        key = ['x'] * len(LETTERS) 
        for cipherletter in LETTERS:
            if len(letterMapping[cipherletter]) == 1:
                # 如果映射字典的值是一个,那么就加入到密钥中
                keyIndex = LETTERS.find(letterMapping[cipherletter][0])
                key[keyIndex] = cipherletter
            else:
                # 如果映射值不只一个或没有,那么算是未破解,用下划线代替加入到密钥中
                ciphertext = ciphertext.replace(cipherletter.lower(), '_')
                ciphertext = ciphertext.replace(cipherletter.upper(), '_')
        key = ''.join(key)
        # 调用简单替代法解密方法来翻译密文
        return simpleSubCipher.decryptMessage(key, ciphertext)
    
    def main():
        message = 'Sy l nlx sr pyyacao l ylwj eiswi upar lulsxrj isr sxrjsxwjr, ia esmm rwctjsxsza sj wmpramh, lxo txmarr jia aqsoaxwa sr pqaceiamnsxu, ia esmm caytra jp famsaqa sj. Sy, px jia pjiac ilxo, ia sr pyyacao rpnajisxu eiswi lyypcor l calrpx ypc lwjsxu sx lwwpcolxwa jp isr sxrjsxwjr, ia esmm lwwabj sj aqax px jia rmsuijarj aqsoaxwa. Jia pcsusx py nhjir sr agbmlsxao sx jisr elh. -Facjclxo Ctrramm'
        print('Hacking...')
        # 解密映射字典
        letterMapping = hackSimpleSub(message)
        print('Mapping:')
        # 输出映射字典
        pprint.pprint(letterMapping)
        print()
        print('Original ciphertext:')
        print(message)
        print()
        # 翻译密文成明文
        hackedMessage = decryptWithCipherletterMapping(message, letterMapping)
        print(hackedMessage)
    
    
    
    if __name__ == '__main__':
        main()
    

    运行结果

    运行结果

    展开全文
  • oracle-同义

    千次阅读 2017-07-17 07:48:38
    同义 1.什么是同义【Synonym】 (1)对一些比较长名字的对象(表,视图,索引,序列,。...3.创建与salgrade表对应的同义,create synonym 同义 for 表名/视图/其它对象 create synonym e for salgrade; c

    同义词

    1.什么是同义词【Synonym】

    1)对一些比较长名字的对象(表,视图,索引,序列,。。。)做减化,用别名替代

     

    2.同义词的作用

    1)缩短对象名字的长度

    2)方便访问其它用户的对象

     

    3.创建与salgrade表对应的同义词,create synonym 同义词 for 表名/视图/其它对象

    create synonym e for salgrade;

    create synonym ev5 for emp_view_5;

     

    4.sys身份授予scott普通用户create synonym权限

    grant create synonym to scott;

     

    5.sys身份从scott普通用户撤销create synonym权限

    revoke create synonym from scott;

     

    6.使用同义词操作salgrade表

    select * from s;

     

    7.删除同义词

    drop synonym ev5;

     

    8.删除同义词,会影响基表吗?

    不会影响基表

     

    9.删除基表,会影响同义词吗?

    会影响同义词

     

    展开全文
  • Oracle DB 同义

    千次阅读 2013-10-16 15:22:11
    可以通过创建同义来给出表的替代名称。 创建对象的同义 通过创建同义(对象的另一个名称)可以简化对对象的访问。使用同义,你可以: • 更方便地引用其他用户拥有的表 • 缩短冗长的对象名 CREATE ...

    同义词是数据库对象,利用同义词可以通过另一个名称来调用表。可以通过创建同义词来给出表的替代名称。

    • 创建对象的同义词
    通过创建同义词(对象的另一个名称)可以简化对对象的访问。使用同义词,你可以:
    • 更方便地引用其他用户拥有的表
    • 缩短冗长的对象名
    CREATE [PUBLI C] SYNONYM synonym FOR    object;

    要引用其他用户拥有的表,需要为表名加上一个前缀,即该表的创建者姓名,后跟一个句点。创建同义词后,就不必使用方案来限定对象名了,同时还为你提供了表、视图、序列、过程或其它对象的替代名称。此方法在对象名(例如视图)冗长时特别有用。
    在该语法中:
    PUBLIC 创建所有用户都可以访问的同义词
    synonym 是要创建的同义词的名称
    object 标识要为其创建同义词的对象
    准则
    • 该对象不能包含在程序包中。
    • 私用同义词名一定不能与同一用户拥有的其它所有对象的名称相同。
     
    私有同义词就是普通用户所创建的同义词,之所以说它是私有同义词是因为只有创建该同义词的用户才能使用此同义词,而公用同义词是指数据库管理员创建的,当然,公用同义词是允许所有的用户来使用的。

    • 创建和删除同义词
    • 为DEPT_SUM_VU 视图创建一个简短的名称,目的是为了便于更迅速地进行引用。
    CREATE SYNONYM  d_sum FOR  dept_sum_vu;
    数据库管理员可以创建所有用户都可以访问的公用同义词。下面的示例为Alice 的DEPARTMENTS 表创建一个名为DEPT 的公用同义词:
    CREATE PUBLIC SYNONYM  dept FOR    alice.departments;

    • 删除同义词:
    DROP SYNONYM d_sum;

    要删除同义词,使用DROP SYNONYM语句。

    一个用户可以删除自己创建的同义词,如果要删除其他用户创建的同义词,则要具有DROP ANY SYNONYM系统权限。DBA可以删除所有的公共同义词,普通用户需要具有DROP PUBLIC SYNONYM系统权限,才能删除公共同义词。同义词被删除以后,它的相关信息也将从数据字典中删除。

     

    数据库管理员可以删除公用同义词
    DROP PUBLIC SYNONYM  dept;
    展开全文
  • 替代废除iframe方案

    万次阅读 2016-03-13 15:33:31
    ),不不,不是这个,是另一个,以 sh 开头,以 y 结尾。(注:对英文语境不是太熟悉,评论中有人提到是  shy 。)对对,就是它!我可以继续说,但是请相信我对 SVG shadow DOM 的评价。或者你可以查看文档。...

    废掉iframe

    一 页面引进Ajax get 2

    二 Shadow DOM 2

    2.1 还记得iframe们吗? 2

    2.2 我的名字是DOMShadow DOM 2

    2.3 事件的情况 4

    2.4 家庭作业 6

    三 其他实践参考 6

    3.1 shadow domUIweb components思想如何应用于实际项目 6

    3.2  Shadow DOM:基础 6

    四 实现范例 6

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    一 页面引进Ajax get

     

    $(document).ready(function(){ 

      $.get("a.html",function(data){ //初始將a.html include div#iframe

        $("#iframe").html(data);

      }); 

     

     

    二 Shadow DOM

    2.1 还记得iframe们吗?

       我们还在使用它们,是因为他们能确保组件和控件的JavaScriptCSS不会影响页面。 Shadow DOM 也能提供这样的保护,并且没有iframe带来的负担。正式的说法是:

    Shadow DOM的设计是在shadow根下隐藏DOM子树从而提供封装机制。它提供了建立和保障DOM树之间的功能界限,以及给这些树提供交互的功能,从而在DOM树上提供了更好的功能封装。

     

    如果你做过网站,那么很可能你已经用过一些JavaScript类库。既然如此,你可能会对这些不知名的类库作者心存感激。

    这些作者——web开发领域的勇士们——都面对着同样的一个问题——封装。他们会花大量的精力在面向对象的经典问题之一上面,即如何封装自己的代码,以便与类库使用者的代码分离。

    除了SVG,现在的Web平台只提供了一种原生的方法去隔离代码块,这并不优雅。没错,我说的就是iframe。对大部分需要封装的场景来说,frames太重而且限制太多。

    如果我需要把每个自定义的按钮都放到iframe里,你是什么感觉,会不会疯掉?

    所以,我们需要一些更好的东西。事实上,大部分的浏览器已经变相地提供了一种强大技术去隐藏一些实现细节。这个技术就是所谓的“shadow DOM”。

     

    2.2 我的名字是DOMShadow DOM

     

    Shadow DOM是指浏览器的一种能力,它允许在文档(document)渲染时插入一棵DOM元素子树,但是这棵子树不在主DOM树中。看一个简单的slider

    <input id="foo" type="range"/> 

    把这段代码放到webkit内核的浏览器中,它会这样显示:

    很简单吧,这里有一个滑槽,还有一个滑块可以沿滑槽滑动。

    嗯。一切看起来都那么美好,喝杯咖啡先……等下等下,这里居然有一个可以在input元素中滑动的元素!为什么我不能通过JavaScript看到它?

    var slider = document.getElementsById("foo"); 

    console.log(slider.firstChild); // 返回 null 

     

    2.2 这是一种魔法么?

     

    我的观点来看,不是。这只是shadow DOM在起作用。你看,浏览器的开发者们已经意识到了手工编写这些DOM元素的表现和行为很困难而且很SB。所以,从一定程度上讲,他们骗了我们,给了我们一个输入框,但拥有比输入框更多的功能。

    他们为你——web开发者设定了一个边界,界定了哪些是你可以访问的,哪些实现细节是访问不到的。然而,浏览器本身却可以随意跨越这个边界。设置这 样一个边界之后,它们就可以在你看不见的地方使用熟悉的web技术、同样的HTML元素去创建更多的功能,而不是像你一样要在页面上用divspan来 堆。

    有一些很简单,就像上面说的slider。而有一些却相当复杂。我们来看一下video元素,它有一些按钮、进度条、hover态的音量控制,像这样:

    所有的这一切都只是HTMLCSS——但是是隐藏在shadow DOM子树中的。

    借用XXX的一首诗,“它是怎样工作的?”为了直观一些,我们假装可以用JavaScript操作它。看这个简单的页面:

    <html> 

    <head> 

    <style> p { color: Green; } </style> 

    </head> 

    <body> 

    <p>My Future is so bright</p> 

    <div id="foo"></div> 

    <script> 

        var foo = document.getElementById('foo'); 

        // 注意:这里只是模拟,不是真实的API 

        foo.shadow = document.createElement('p'); 

        foo.shadow.textContent = 'I gotta wear shades'; 

    </script> 

    </body> 

    </html> 

    我们获得了一个这样的DOM树:

    <p>My Future is so bright</p> 

    <div id="foo"></div> 

    但是它像是被这样渲染出来的:

    <p>My Future is so bright</p> 

    <div id="foo"> <!-- shadow subtree begins --> 

        <p>I gotta wear shades</p> 

    </div> <!-- shadow subtree ends --> 

    看起来是这样:

    注意一下,为什么渲染的句子的第二部分不是绿色的?这是因为文档(document)中选择器p不能获取到shadown DOM。很酷对不对?!如果一个框架开发者被赋予这样的能力会怎么样?想象一下你只需要写你的widget,而不用担心被不知哪里蹦出来的选择器愚弄…… 简直令人陶醉。

     

    2.3 事件的情况

     

    为了保持自然,shadow DOM子树中的事件可以在文档(document)中被监听。比如,你点击一下audio元素中的静音按钮,你可以在一个包裹它的div中监听到这个事件。

    <div οnclick="alert('who dat?')"> 

        <audio controls src="test.wav"></audio> 

    </div> 

    但是,如果你要确认事件的来源,会发现它是audio元素,而不是它内部的按钮。

    <div οnclick="alert('fired by:' + event.target)"> 

        <audio controls src="test.wav"></audio> 

    </div> 

    为什么这样?因为当事件穿过shadown DOM边界的时候,会被重新设定target,以避免暴露shadow DOM子树内部结构。用这种方式,你可以监听到从shadow DOM中产生的事件,而实现者也可以继续隐藏细节。

    通过CSS访问(Reaching intoShadow

    另一个需要提到的技巧是怎样通过CSS来访问shadow DOM子树。假设我想自定义我的slider。我想让它有一些样式,而不是系统原生的那样,像这样:

    input[type=range].custom {  

        -webkit-appearance: none;  

        background-color: Red;  

        width: 200px;  

    }  

    结果如下:

    很好,但是我怎样定义滑块的样式呢?我们已经知道,常规的CSS选择器并不能获取到shadow DOM子树。但事实上,这里有一些很方便的伪元素,可以取到shadow DOM子树中的元素。例如,slider中的滑块在webkit中可以这样访问:

    input[type=range].custom::-webkit-slider-thumb { 

        -webkit-appearance: none; 

        background-color: Green; 

        opacity: 0.5; 

        width: 10px; 

        height: 40px; 

    样子如下:

    很完美对不对?想想看,你可以为shadow DOM子树中的元素赋予样式,而不需要真的访问到这些元素。而这些shadow DOM的作者有了决定哪些部分可以被赋予样式的权利。如果你是作者,在做一些UI widget toolkit的时候,难道不想有这样的能力吗?

    带有洞(hole)的Shadow DOM,无穷的想象力

    讲完了这些令人惊叹的能力,我们想象一样,如果给一个有shadown DOM子树的元素插入子元素会怎样?我们来实验一下:

    // Create an element with a shadow DOM subtree. 

    var input = document.body.appendChild(document.createElement('input')); 

    // Add a child to it. 

    var test = input.appendChild(document.createElement('p')); 

    // .. with some text. 

    test.textContent = 'Team Edward'; 

    结果如下:

    哇!欢迎来到twilight DOM的世界!它是文档(document)的一部分,可以被遍历到,但是不会渲染!它是不是很有用呢?不一定,但是如果你需要的话它确实就在那等你。

    但是,如果我们真的有能力把元素的子元素放入shadow DOM子树中会怎么样?想象一下shadow DOM是一个模板,通过它的某个洞(hole)可以看到内部的子元素:

    // 注意:这里只是模拟,不是真实的API 

    var element = document.getElementById('element'); 

    // 创建shadow DOM子树 

    element.shadow = document.createElement('div'); 

    element.shadow.innerHTML = '<h1>Think of the Children</h1>' + 

        '<div class="children">{{children-go-here}}</div>'; 

    // Now add some children. 

    var test = element.appendChild(document.createElement('p')); 

    test.textContent = 'I see the light!'; 

    如果你去遍历DOM,你会看到这个:

    <div id="element"> 

        <p>I see the light</p> 

    </div> 

    但是像是这样渲染出来的:

    <div id="element"> 

        <div> <!-- shadow tree begins --> 

            <h1>Think of the Children</h1> 

            <div class="children"> <!-- shadow tree hole begins --> 

                <p>I see the light</p> 

            </div> <!-- shadow tree hole ends --> 

        </div> <!-- shadow tree ends -->  

    </div> 

    当你添加子元素的时候,从DOM树中看像一个正常的子元素,但是渲染的时候,他们从“洞(hole)”中进到了shadow DOM子树。

    写到这里,你应该会承认,这真的很酷,也会问:

    浏览器中什么时候才会有呢?

     

    2.4 家庭作业

    你认为听完了这么多说教的内容会没有家庭作业?作为一个JavaScript类库或者框架的开发者,尝试者去想象一下你可以利用shadow DOM制作的跟之前不一样的伟大的东西。然后想一下shadow DOM可以应用到的一些特定的使用场景(加上真实的或者模拟的代码)。

    最后,共享你想到的使用场景到public-webapps邮件列表。关于在web平台中加入这种能力的讨论正在进行,我们需要你的帮助。

    如果你不是一个框架作者,你仍然可以参与进来,你可以给shadown DOM加油,也可以将这份快乐传播到你最喜欢的社交网络上,因为快乐就是我们工作的全部。

    附:SVGshadow DOM

    差点忘了,至于你信不信,我反正信了,SVG确实已经用到了shadow DOM,从一开始就是这样。但是比较麻烦的是,SVGshadow DOM非常……非常……水(shady),不不,不是这个词,是另一个词,以sh开头,以y结尾。(注:对英文语境不是太熟悉,评论中有人提到是 shy。)对对,就是它!我可以继续说,但是请相信我对SVG shadow DOM的评价。或者你可以查看文档。

    原文地址:http://www.toobug.net/article/what_is_shadow_dom.html

     

    三 其他实践参考

      3.1 shadow domUIweb components思想如何应用于实际项目

      http://www.cnblogs.com/yexiaochai/p/4167554.html

      3.2  Shadow DOM:基础

      http://www.ituring.com.cn/article/177461

     

     

    四 实现范例

     

     

     

     

     

     

    展开全文
  • 创建DBlink 详解

    千次阅读 2007-08-06 17:31:00
    创建DBlink 详解及尚存疑问(DB LINK 连接正常后建立同义后多个同义不能正常查询) =========================================================== 创建DBlink 详解及尚存疑问(DB LINK 连接正常后建立同义后多个...
  • 虽然其不支持,但是为了方便统计数据,我们是可以重新创建该函数的,或者,我们也可以使用其替代函数,listagg,下面我们就这两种方式分别写出对应解决方案 2、解决方案 2.1创建wm_concat函数 --首先使用dba...
  • 100个替代昂贵商业软件的开源应用

    千次阅读 2015-07-16 23:30:49
    100个替代昂贵商业软件的开源应用面对大,中,小企业和家庭用户,立竿见影显著降低成本的开源软件。某些商业软件素以昂贵著称。随着云计算的日益普及,很多常用软件包供应商将一次性收费改为月租模式。虽然月租费...
  • 向量算法

    千次阅读 2019-06-05 22:31:07
    https://www.cnblogs.com/the-wolf-sky/articles/10192363.html...基于神经网络的表示一般称为向量、嵌入(word embdding)或分布式表示。 神经网络的向量和其他分布式类似,都基于分布式表达方式,核心依然是上...
  • 纯新手DSP编程--5.15--代码创建

    千次阅读 2012-05-17 11:14:53
    程,然后使用这些工程从属创建最终的工程。子工程通常首先编译,因为主工程依靠这些子工程。   1 创建工程从属(子工程) 有三种方法创建一个工程从属关系或子工程。 (1)、从工程视窗中拖拽。将子工程放入目标...
  • 我们的开源世界里有很多非常棒的可以完全替代 Dreamweaver 的各种功能的优秀 Web 开发工具,更重要的,是免费的。如果你正在寻找 Dreamweaver 的替代品,下面这 8 款软件你应该优先尝试一下。注意,没有先后顺序,并...
  • 在此文章中,我们将探讨transformers的背景,什么是注意力机制,以及为什么RFA可以更好地替代softmax注意力机制。 我们将通过RFA的一些总结来结束本文章。 背景 目前,transformers是序列到序列机器学习模型的最佳...
  • IntelliJ IDEA 使用Maven创建Spark WordCount

    千次阅读 2019-03-18 21:01:26
    Scala环境搭建主要是两种方式一种是传统的Maven还有一种是Sbt,不过使用Sbt一直都是慢爆了,找了很多解决方法还是很慢,所以Maven是个很好的替代品,从Java过来的应该都会 创建项目1.使用Idea创建新的Maven项目,...
  • 中文同义词典

    万次阅读 2016-07-26 22:28:37
     创立,创建  纯粹,纯洁  纯正,纯粹  疏忽,忽视  无视,疏忽  名堂,花样  华美,华丽  狡黠,滑头  诙谐,滑稽  化妆,化装  欢喜,欢乐  欢跃,欢腾  欢畅,欢乐  迟缓,缓慢  ...
  • linux下替代windows的软件列表

    千次阅读 2010-09-02 13:55:00
    Linux下数百种 Windows 软件的免费替代品列表 程序所执行任务的描述 Windows Linux 1) 网络连接 网页浏览器 微软 IE,网景 Netscape / Mozilla, Opera [私有],Firebird,…… 1) ...
  • 我们的开源世界里有很多非常棒的可以完全替代Dreamweaver的各种功能的优秀Web开发工具,更重要的是它们也免费。如果你正在寻找Dreamweaver的替代品,下面这8款软件你应该优先尝试一下。注意,没有先后顺序,并不是第...
  • 好像是有一天KF 论坛有个人问公司收到律师函了,问怎么替代Photoshop 软件。  我今天就用自己的机器做例子告诉大家如何用优秀免费软件替代盗版软件,如果你的公司也收到律师函,就赶快吧。  都是我一直在用的软件...
  • MySQL中创建用户赋予权限的命令详解

    千次阅读 2018-07-05 14:57:58
    创建用户格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;例1:增加一个test1用户,密码为123456,可以在任何主机上登录,并对所有数据库有查询,增加,修改和删除的功能。需要在mysql的...
  • 在12C上创建wm_concat函数

    万次阅读 2015-01-26 11:34:12
    导致程序出现错误,为了减轻程序员修改程序的工作量,只有通过手工创建个wm_concat函数,来临时解决该问题,但是注意,及时创建了该函数,在使用的过程中,也需要用to_char(wm_concat())方式,才能完全替代之前的...
  • 在oracle12C上创建wm_concat函数

    千次阅读 2017-05-02 11:27:26
    导致程序出现错误,为了减轻程序员修改程序的工作量,只有通过手工创建个wm_concat函数,来临时解决该问题,但是注意,及时创建了该函数,在使用的过程中,也需要用to_char(wm_concat())方式,才能完全替代之前的...
  • 在Oracle 上补充创建wm_concat函数

    千次阅读 2017-02-23 08:55:09
    导致程序出现错误,为了减轻程序员修改程序的工作量,只有通过手工创建个wm_concat函数,来临时解决该问题,但是注意,及时创建了该函数,在使用的过程中,也需要用to_char(wm_concat())方式,才能完全替代之前的...
  • 现在把我今天弄了一上午(初学)的Oracle数据库创建过程记录下。是通过shell脚本通过sqlplus连接数据库并创建表。在这里把创建表和插入数据的学习文件记录下。比较抠脚,哈哈。 一、创建表 create_st...
  • 数百种 Windows 软件的免费替代品列表数百种 Windows 软件的免费替代品列表这个表来自 http://linuxshop.ru/linuxbegin/win-lin-soft-en/最近更新到 2003-07-16,将来还会有更新。欢迎指出翻译错误 :-)程序所执行...
  • 我们做过很多项目,...这不,昨天要搭建一个临时的试运行环境,可是提供的数据库版本变成了12c 时间比较紧,就直接创建实例开始导库,一切都不是好了,测试服务工能的时候开始抛异常了 "wmsys"."...
  • 100个替代昂贵商业软件的开源应用/100 Open Source Replacements for Expensive Applications 100 Open Source Replacements for Expensive Applications Enterprises, SMBs and home users can see ...
  • 嵌入算法

    千次阅读 2018-08-27 01:06:42
    基于神经网络的表示一般称为向量、嵌入(word embdding)或分布式表示。 神经网络的向量和其他分布式类似,都基于分布式表达方式,核心依然是上下文的表示以及上下文与目标之间的关系映射。主要通过神经网络...
  • Oracle同义与序列基本使用

    千次阅读 2009-07-22 21:39:00
    一、同义同义:同义是一个对象的替代名称作用:利用同义可以很方便地操纵不同用户模式下的对象。通过select user from dual查看当前使用的用户。访问其它用户模式下的表:select * from scott.dept; 表示...
  • 如何创建oracle dblink

    千次阅读 2006-11-21 14:11:00
    创建一个DB LINK,必须先 在每个数据库服务器上设置链接字符串。 1、 链接字符串即服务名,首先在本地配置一个服务名,地址指向远程的数据库地址,服务名取为将来你要使用的数据库链名: 2、创建数据库链接, ...
  • 如何创建友好的用户界面

    千次阅读 2010-10-29 14:53:00
    如何创建友好的用户界面
  • Android 创建与解析XML

    千次阅读 2013-07-13 19:55:21
    Android 创建与解析XML(一)—— 概述 分类: Android2012-04-25 12:49 84016人阅读 评论(0) 收藏 举报 xmlandroid文档apijavaj2me Android 是最常用的智能手机平台,XML 是数据交换的标准...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,067
精华内容 18,426
关键字:

创建的替代词