18
4月

信用卡卡号生成器及验证器

在一些场合,例如程序员开发测试时候需要大量信用卡卡号数据,在注册一些要验证信用卡的网站又想不泄露个人真实信用卡信息。此时可以使用一些虚拟信用卡卡号生成器来生成虚假信用卡卡号数据。

 

1、信用卡生成器

http://card-generator.com/

https://names.igopaygo.com/credit-card

http://sieuthuthuat.com/bin/

https://namso-gen.com/

http://www.toolla.com/CreditCard/

2、信用卡验证器

如果只是想验证信用卡号的有效性,可以使用信用卡校验器

http://sieuthuthuat.com/check/

https://mrchecker.net/card/ccn1/

 

需要强调一下:
1、目前很多网站(例如Apple、AWS、Google等),在验证信用卡时候除了要校验信用卡格式有效性外,还会通过预授权或直接扣款1美元方式来验证信用卡,此时用信用卡生成器生成的虚假信用卡卡号就不行了。

2、基本上在所有国家,伪造银行卡都是违法行为,以上工具生成的虚假信用卡,请谨慎使用,勿用于非法用途。

 

技术原理

虚拟信用卡生成器和验证器的原理是使用Luhn算法(Luhn algorithm)来生成和校验卡号合法性。

Luhn算法也称为“模10算法”(Modulus 10或Mod 10)算法,是一种简单的校验和算法,一般用于验证身份识别码,例如发卡行识别码、国际移动设备辨识码(IMEI),美国国家提供商标识号码,或是加拿大社会保险号码。它是由IBM科学家Hans Peter Luhn创造,于1954年1月6日申请专利,1960年8月23日颁证,美国专利号2950048。该算法已经得到了广泛的应用,例如和我们信用卡相关ISO/IEC 7812-1标准就采纳了这一算法。

14
4月

9021年可用、好用、值得推荐的磁力搜索引擎

对每一位爱学习的老司机,磁力搜索引擎是最好的助手。不管是学习岛国爱情动作片,还是寻找热门大片、电视剧、电影、音乐,一个好的磁力搜索引擎可以节省老司机大量时间。

由于版权等各种原因,磁力搜索引擎时常被封杀掉,因此网上流传的各种“磁力搜索引擎大全”中列举的诸多站点基本上都挂掉了,9021年可用、好用、值得推荐的磁力搜索引擎有哪些呢?

整理了珍藏许久的浏览器收藏夹,推荐给各位老司机。

 

名称 简介 网址
种子磁力 广告较少,资源多的 BT 磁力搜索引擎,国内资源比较多。 https://m.zhongziso.com/ 

https://www.zhongzilou.com/

838888 不错的 BT 磁力搜索引擎,广告较少,索引1500多玩万条磁力信息。(4.14,已经挂掉,留待观察) https://868888.net
磁力搜 磁力链接聚合搜索。聚合了种子搜,BT兔子,BT4G,BT蚂蚁,BT磁力链几个磁力搜索引擎内容。开源代码,自己可以直接搭建的磁力搜索引擎。 http://bt.xiandan.in/

http://bt.cywacg.com/

Java版本源码:

https://github.com/dengyuhan/magnetW

Mac版源码:

https://github.com/youusername/magnetX

Rarbg 老牌知名的18+ BT磁力搜索引擎 https://rarbg.is/torrents.php
TorrentKitty 老牌知名的18+ BT磁力搜索引擎 https://www.torrentkitty.tv/search/
Nyaa 这是一个曾经叱咤风云的网站,Nyaa Torrents 是一个侧重于东亚(日本、中国及韩国)多媒体资源的 BT 站点。它也是世界上最大的动漫专用种子索引站。非常有名,一手动漫 bt,另外一手是 18+ bt。比 TorrentKitty 还鼻祖。 动漫: https://nyaa.si/
18+:  https://sukebei.nyaa.si/
BTspread 汇集了大量的资源,是看大片的好去处 http://btspread.cc/
BTSOW 老牌知名的18+ BT磁力搜索引擎 https://btso.pw/search
https://tellme.pw/btsow
BTDigg 知名的18+ BT磁力搜索引擎 http://btdigg.co/ 
磁力柠檬 无广告,界面简洁的 BT 磁力搜索引擎,适合搜索电影、电视剧资源 http://lemoncili.com
BTKitty 老牌知名的BT磁力搜索,资源很多 http://cnbtkitty.com/
http://btkitty.fyi/
SkrBT 有广告,资源丰富的 BT 磁力搜索引擎,磁力很全索引上亿条磁力信息 http://www.skrbt.world
https://www.skrbt.com/
磁力WIKI 无广告,好用的磁力种子搜索引擎。 https://www.ciliwiki.com
zooqle 老牌磁力搜索站 https://zooqle.com
BT猫 无广告,不错的 bt 磁力搜索引擎,资源多,中文友好 http://btcat.me
飞客BT 界面简洁美观、并且无广告的磁力搜索引擎 http://www.feikebt.com/
http://feikebt.xyz
磁力猫 懂你的磁力链接搜索引擎。需要翻墙 https://www.cilimao.cc/
磁力pro http://cili.pro
尼玛搜 号称索引了2000多万条磁力数据 http://www.nms000.com/
磁力番号 专业磁力番号搜索引擎 http://www.cilifanhao.co
torrent-finder 王者级别的BT搜索,多重搜索,几乎包含了国外所有热门的BT站 http://torrent-finder.info
https://www.aiosearch.com/
东京图书馆 日本资源比较多,动漫生肉基本上第一时间都能找到 http://www.tokyotosho.info/
BT图书馆 http://btlibrary.co/
10
4月

史上最全面在国外接收国内手机短信解决方案

出国留学或工作,如果要继续使用国内的一些服务,就面临需要用国内手机号接收短信验证码的场景,例如:各家银行,微信、微博、淘宝、美团、支付宝、12306等各种互联网服务。

这里汇总一下在国外接收国内短信的方案,可以说是史上最全面的解决方案,不管是土豪还是屌丝、科技小白还是极客,总有一款适合你。

优先推荐方案:

对大部人而言,强烈建议出国时候,尽量保留国内手机号,不要注销掉国内手机号,开通运营商最低月租套餐,开通国际漫游,同时关闭移动数据业务、彩信业务。
强调一下:如果不是土豪,一定要确认关闭掉移动数据业务,除了可以在手机上关闭外,安全起见,可以找运营商客服人工关闭掉。
之所以强调要关闭移动数据业务,因为接收彩信(包括运营商发送的服务彩信账单等)、手机报、邮件推送、软件自动更新等都会消耗数据流量。
之所以要开通国际漫游,因为要接收短信,需要通过接入当地网络。由于接收短信,大部分国家都是免费的,因此如果只是接收短信,虽然是漫游,但不需要额外付费,不用担心费用问题。

下面细说一下在国外接收国内短信的各种方案。

一、继续使用原有国内手机号

1.1、优先推荐:运营商最低月租套餐+开通国际漫游+关闭移动数据业务

1.2、双卡双待方案

1.2.1、对Android手机,可以采用双卡手机或两台android。

要实现两台android手机间的短信转发可以考虑采用绿芽短信转发到微信,IFTTT实现短信转发。

 

1.2.2、iPhone手机,可以找一台旧的iPhone手机放在国内家里

要实现两台iPhone手机间短信转发,两部 iPhone 均启用 iMessage,iCloud 用同一个 Apple ID登陆,通过iMessage信息转发功能自动转发到主力手机上。

 

1.2.3、专用设备

有一些专用设备用于实现双卡双待、国外接收短信的需求,包括双享号pro、旅信、络漫宝

 

1.2.4、极客方案

可以自己搭建树莓派/Asterisk/freePBX 来做转发,包括短信、语音、电话等

1.3、让国内的亲朋好友帮代接收

此方案需要经常麻烦亲朋好友,且时效性很难保证,只不过可以作为方案之一。

二、使用新的手机号

2.1、运营商一卡双号

2.1.1、中国电信

欧洲行:CTExcelbiz

美洲卡:CTExcel

 

2.1.2、中国移动

香港(CMHK):一咭两號、一咭多號

英国:CMLink

 

2.1.3、中国联通

美洲卡

跨境王

CUniq

中国通欧洲预付费卡

 

2.2、运营商虚拟手机号

中国移动:无忧行(原来的Jego)

中国移动:和多号

中国电信:天翼小号

中国联通:隐私小号

 

2.3、虚拟运营商手机号

阿里小号

易博通 eSender

 

2.4、国内亲朋好友代收

 

三、一次性注册使用

国内有一堆接码平台,特别适合一些只需要一次性注册使用的场景。对一些不重要的网站服务,可以考虑使用此类平台。为避免广告嫌疑,各位自行搜索。

 

直观起见,来一张解决方案的脑图:

 CMLink,CTExcel, CTExcelbiz, CUniq, IFTTT, jego, 双享号pro, 接码平台, 旅信, 无忧行, 易博通, 树莓派, 短信, 络漫宝, 虚拟手机号, 虚拟运营商, 阿里小号

脑图的慕布分享:https://mubu.com/doc/12qFdXUYuM

28
3月

使用国外手机号接码解决Google 账号注册问题

想注册新的google账号,一直卡在手机验证环节,用大陆手机号,始终提示:此电话号码无法用于进行验证。
试验了各种方法依然卡在手机号验证环节,例如:
1、使用google系app注册,例如gmail app、youtube app等
2、通过网易邮箱大师、腾讯邮箱注册
3、选择香港,输入+86

国内有各种用于网赚的接码平台,因此第一个想到能不能找个海外手机号来接收google验证码。

方案1:使用虚拟号码接收

用已有的textnow、talkatone号码来接收,仍然提示号码无法用于验证。google应该对是否为虚拟号码、是否为手机号码做了检测。

按照google注册规则,验证的号码,只允许移动电话号码,不能用固定电话号码。

有一些所谓“Carrier Lookup Service”可以检查使用的号码是固定电话还是手机号。例如:https://freecarrierlookup.com/ 只不过此类服务基本上只提供个别国家的号码查询服务。

 

方案2:购买国外实体SIM卡来注册

如果有需要,倒可以购买国外运营商的实体电话卡来注册,例如Skinny、Lycamobile、越南、缅甸的。
只不过如果只是用于注册google账号,成本有点高。

 

方案3:使用国外Phone Verified Accounts(PVA)服务

搜索国外类似于接码平台的服务,由于不熟悉老外术语,无法明确搜索关键词,用sim online、sms online之类关键词搜索半天,只找到一堆免费的在线接短信平台,例如:国内外免费接收短信验证码平台网站

这些免费服务,已经被大量使用过,用于注册google基本上都拒绝。

想找一些相对便宜的收费服务,通过google.com+similarsites.com的方案,总算搞明白老外对接码服务的叫法,定位了搜索关键词

总结搜索过程,可用的搜索关键词:

Phone Verified Accounts 这个相对精准,老外一般叫PVA

Phone verification service

Toll free

Disposable SMS Numbers

 

结合google搜索结果和reddit、quora等论坛以及类似pvacreator、instadub这样的营销软件重点推荐的服务,下面几家重点推荐:

http://www.getsmscode.com/ 与http://hs3x.com/是同一家运营商,似乎为中国人运营的

https://www.smspva.com/

https://www.textverified.com/

除了这几家,推荐大家使用 similarsites.com 这样的服务,探索一下其他类似的Phone verification service,对比一下价格、充值方式、支持的服务等,找到符合自己需求的服务商。

其他一些服务商:

https://www.smsaccs.com

https://numberproxy.com

http://numbers.city

https://hottelecom.biz

https://onlinesim.ru

https://5sim.net/

https://www.pvacodes.com

https://sonetel.com

https://freeje.com/en/

https://mobilesms.io

https://www.proovl.com

https://www.smsglobal.com

 

在使用国外接码服务接受google验证码后,在完成注册前,可以绑定+86的手机号,也可以在注册成功后更换为+86手机号(需要往PVA的手机号发验证码)。

07
3月

互联网支付对信用卡支付有多大影响?

对知乎问题《互联网支付对信用卡支付有多大影响?》的回答。

我理解提问者是要问:网络支付对信用卡支付的影响。由于第三方支付的银行卡收单(线下收单)、移动支付、互联网支付、跨境支付等支付服务对信用卡支付都有影响,因此以下将内容扩展为:第三方支付对信用卡支付的影响。

这里只谈自己的直观感受,数据控可以参考央行、银监会以及艾瑞、易观的相关数据考证一下具体情况。

1、第三方支付推动了信用卡支付的普及和发展

第三方支付对信用卡支付的普及影响主要有几方面

a、第三方支付推动了电商、外卖、打车等行业繁荣,尤其是快捷支付的出现,极大程度提升了支付体验,从而拓展了信用卡支付的场景,提高了使用频次。

b、第三方支付极大程度上推动了信用卡支付的交易量,尤其是类似套现这样的灰色交易。可以说第三方支付,包括银联收单业务,有很大程度的交易量都来自于这些灰色业务,主要包括线下POS、手刷、线上套现等。

c、第三方支付推动了跨境支付蓬勃发展,也带动了信用卡支付发展

d、支付宝/微信扫码支付等移动支付手段的兴起,降低了普通消费者在线下POS刷信用卡正常消费的频次,带动了信用卡网络支付交易量。

 

2、第三方支付对信用卡支付生态不同角色影响不同

对发卡行没有大的影响,发卡行的信用卡发卡量还持续上升,交易量也持续增加。

对收单行影响也不大,第三方支付兴起后,很少有银行自己去做直接做收单,除了一些优质的商家。

对银联这样的清算影响较大,虽然银联的交易量还在稳步增加,但走银行卡收单的很多信用卡交易是套现交易,银联丧失掉了很多优质商户。

 

3、第三方支付推动了“网络信用卡”类的兴起,也变相推动了信用卡支付发展

第三方支付的普及,让淘宝、京东、京东这样拥有闭环交易场景的互联网巨头对客户的画像更为全面、细致、精准,相对于传统银行信用卡审批在额度授信、个性化定价、风险控制等方面更灵活,效率更高。因此像蚂蚁花呗、京东白条这样2C的网络信用卡以及2B的商家授信类产品迅速崛起。

这些产品用户与信用卡持卡人有一定的重叠,但由于国内金融体系的不完善,包括信用卡或网络信用卡都未完全满足目标用户需求,两者不构成真正意义上的竞争关系。相反,个人认为对信用卡支付有推动作用,网络信用卡培育了90后,00后透支消费习惯,相对于网络信用卡,银行信用卡成本更低,门槛更高,这些网络信用卡的用户可以说也是信用卡的潜在目标客户。

 

题外话,关于网络支付,互联网支付等的的分类可以参考《非金融机构支付服务管理办法》中的划分方法:

非金融机构支付服务,是指非金融机构在收付款人之间作为中介机构提供下列部分或全部货币资金转移服务:

(一)网络支付

(二)预付卡的发行与受理;

(三)银行卡收单;

(四)中国人民银行确定的其他支付服务。

本办法所称网络支付,是指依托公共网络或专用网络在收付款人之间转移货币资金的行为,包括货币汇兑、互联网支付、移动电话支付、固定电话支付、数字电视支付等。

 

02
3月

代扣支付失败,可以切换渠道重新发起吗?

在知乎的问题回答《代扣支付失败,可以切换渠道重新发起吗?

由于是代扣,商家要发起一笔代扣,必须具备如下几个条件

1. 商户签约及接入:商家在提供支付通道的第三方支付服务商签约并完成接入

2. 用户签约:在商家签约前提下,用户通过商家平台向第三方支付发起代扣签约请求,授权必须针对指定的代扣通道(例如工行小额代扣通道、招行无磁无密代扣通道等)。

3、第三方支付与提供代扣通道的银行等签约

对第三方支付服务商,会按照商户签约协议id+用户签约协议id(隐含了特定的代扣通道、金额、频次等)对一笔代扣请求鉴权。

对银行等提供代扣通道服务的服务商,会按照支付服务商签约id+商户签约id+用户签约id对一笔代扣请求鉴权(这几要素根据代扣通道服务商与第三方支付的合作情况有所不同)。

以上说的标准意义上的代扣,快捷支付情况稍微有点差异,核心差异在于第三方支付是否在中间提供了单独的钱包账户。但原理类似。

说起来太抽象,换成场景的实际例子就是:

假定同一个商家接入了三家第三方支付的代扣通道,则如果要实现在某一通道支付失败后,切换到另外一个通道代扣,则需要用户提前通过商家平台先三家第三方支付分别发起代扣授权签约请求。

题外话:其实应该画一张图更能形象以上说明问题,懒得画了。

1、那么从用户体验角度,有没有可能只需要用户输入一次资料,由系统自动完成各个通道的自动签约?

市面上确实有一些支付公司的部分通道提供了自动签约的功能,但由于风险过大,一般都不会直接对外开放,即便开放也有诸多限制。

因此可以说这条路行不通。对于代扣,必须有用户明确授权协议,否则后期投诉、拒付之类问题会烦死运营人员。

2、假定用户已经在多条通道已经授权,那么系统能否自动发起代扣呢?

建议:尽量避免此类操作。

原因一:支付结果可能是非终态。

做支付的同学都遇到过,即便是上游发卡行订单结果通知支付失败或成功的情况下,隔日对账也会小概率出现订单状态反转的情况,尤其是一些小银行的支付通道。

代扣失败的原因很多,例如余额不足,金额超过限额等等,而大部分代扣通道提供的错误信息有限,很难作为代扣是否真正失败的依据。

原因二:成本考虑。有很多代扣通道是按照发起代扣,不论成功失败就扣费的。

原因三:业务逻辑考虑。题主描述的需求场景,大部分与小贷相关。由于基本上所有代扣通道都不会提供账户余额查询功能,只会对每一次代扣请求返回成功、失败信息。那么在发起代扣请求时,全额扣款失败情况下,要不要按照更低金额扣款?按多少扣?

以上几个问题纠缠在一起,会出现一堆问题。

31
1月

区块链支付系统与传统支付系统有哪些不同?

在这里不讨论区块链支付有没有未来、加密币是不是庞氏骗局、是不是割韭菜这样形而上的问题,只从技术角度探讨区块链支付相对与传统第三方支付的一些差异。

按照以上对比,似乎区块链支付从各方面都碾压传统第三方支付平台。

其实不然,相对于成熟的基于法币支付体系的第三方支付,区块链支付在实际应用中还存在诸多致命性问题,例如:

1、法币-加密币出金、入金难题

区块链支付只是解决了区块链及加密币体系内的支付问题,但没有解决“用户持有的加密币从什么地方来?用户持有的加密币怎样变现为法币?”。

可以说:没有通畅的法币-加密币的出金、入金解决方案,极大程度制约了区块链及加密币的发展。

受制于各国政府KYC、AML合规性要求,目前市场上的OTC在用户体验、市场流动性、交易速度、交易成本等方面都存在较大问题。

2、币价波动导致的资金安全风险

现实消费场景大部分商家只愿意接受法币结算,因此目前大部分应用场景下,都由支付服务商帮助商家收取加密币,然后以法币形式结算给商户。虽然可以通过币币交易、OTC交易等方式将收取的加密币通过量化交易算法转为稳定币或法币,但市场流动性、币价波动性、交易成本等因素导致支付服务商仍存在较大资金安全风险。

3、持有加密币、加密币钱包的受众人群及范围还是太少太少,还局限在小众圈子里,尤其是2017、2018火热的ICO割了一大堆韭菜后。

4、实际落地应用场景极少

这些致命问题什么时候能够解决,有什么好的解决办法呢?业内也在探索中。

一点体会:

最近一段时间,由于行业监管趋严,市场上出现了诸多新玩法,核心思路与区块链“去中心化”的核心理念不谋而合,还有一些创新玩法也尝试借鉴“去信任化”的思路,利用智能合约解决保证金缴纳去中心化担保问题。市场刚性需求倒逼金融服务“创新”,在此大变革进程中,丢掉各种噱头,回归到区块链最核心的理念和价值,与互联网成熟的应用场景结合,或许是寒冬中区块链项目最好的出路。

26
1月

拼多多优惠券事故思考

备注:在知乎关于拼多多优惠券事故邀请的回答。

回答很多了,大家从法律角度、运营角度、风控反欺诈等角度阐述得比较详细了。我只谈对问题原因的看法。

与大部分回答看法不同,个人认为拼多多的风控反欺诈体系及风控意识应该不至于像大家说的那么弱智。拼多多在这几年发展过程中,一直是薅羊毛人群的重点对象,因此类似的挑战肯定都遇到过,也出现过大大小小的各种风控相关问题,要是能力差,早就死在路上。虽然这一次事故确实低级,但不至于冠上风控意识薄弱、风控能力不足帽子。

拼多多短短三年发展到现在规模,可以说互联网企业高速发展的典范,上述回答提到的反薅羊毛风控反欺诈体系、产品运营变更上线流程、风控实时告警体系、系统风控检测体系,我相信拼多多都有对应的体系、规章流程制度。像这样规模的企业,都有对应的专业人才,但问题是:为何这些体系、规章制度在简单的优惠券设置上线事件中没有一个环节及时发挥止损点作用?

对大部分互联网公司,风控反欺诈体系建设都有专属的部门来负责,其他业务都不能自造轮子,必须遵循统一的风控架构,也就是说:反薅羊毛、账户资金异常监控、业务流量异常监控等都会纳入到风控反欺诈体系中。在假定拼多多风控反欺诈能力不弱智的前提下,为何风控反欺诈体系未及时起到风控告警作用?

按照自己经验,这样的问题,不可能是单一原因,可能的原因:

a、业务部门基于业务高速发展、快速上线需要,并未真正按照风控规范体系要求将各种细化指标及业务数据上报风控平台,有些业务平台可能根本就接入风控平台;

b、风控部门、审计部门不愿意深入了解熟悉业务及产品,从而无法发现各种业务深层风险、业务交叉风险,风控部门只是按照想当然的经验、业务部门反馈,设置对应的风控规则,而这完全将风控交付给业务部门风险意识、经验、业务发展等诸多因素上;

c、企业在高速发展过程中,做取舍时候有意、无意忽视了各种警示信息

以拼多多事故为例,技术产品在做优惠券运营管理平台时候为了通用,可能不考虑金额上限及流程审核问题。但对一家公司而言,任何涉及资金投入的活动,不管是现金还是像优惠券这样的虚拟账户资金,都是公司财务资产,按照财务管理制度,针对不同金额肯定都有分级审批流程。拼多多这样上市企业,在上市前、上市后的各种IT审计、财务审计、管理审计等过程中,肯定都是知名审计所审计过的,那么问题来了,是哪个环节问题呢?

按照自我经验理解,应该是为了高速发展,主动延迟了一些“非高优先级”问题的解决时间点,于是一拖再拖,最终没有下文,成为惯例。

还能列举出一堆可能原因,这里要表达的核心观点为:拼多多事故表现为风控系统问题,但可能最本质的根源还是企业高速发展与管理精细化矛盾。

作为旁观者,提出问题总是最容易的。怎样解决以上一堆问题,尤其是对拼多多这样的高速发展企业?

这么多年的创业经历,让我越来越理解作为高速发展与管理精细化间矛盾和难处。对于通过模式创新起家的高速发展企业,意味着支撑模式创新的文化体系、管理体系、运营体系、技术体系等至少与已有的成功经验有所差异,各种体系建立只能参照别人成功经验但无法直接拿来就用。

有很多方法论体系可供参考,我这几年最受益匪浅的是RCA(Root Cause Analysis)制度,也就是在运营过程中,不管大事、小事都真正追根溯源,将每一次运营、运维事故都作为一次企业及团队成长、制度完善机会。

声明:与拼多多无任何利益相关关系。

02
4月

Ethereum调用机制总结call/delegatecall/callcode/send/transfer

Ethereum中涉及各种类型的方法调用。一个编程中常用的call概念,可能为Ethereum Vitrual Machine(EVM)内的call,又可能为EVM外的call,又涉及诸如Message/Transaction等基本概念;同时还包括call/delegatecall/callcode/send/transfer/sendTransaction等等方法。

对这些调用机制及基本概念的说明散落在 solidity文档黄皮书白皮书 中,初学者容易搞晕。这里对这些基本概念、调用机制及用法做一下整体梳理。

Ethereum调用机制总结

PDF版本:Ethereum调用机制总结

PNG版本:Ethereum调用机制总结

示例代码:测试代码下载

pragma solidity ^ 0.4.18;

contract A {
uint public var2;
uint public var1;
B b1;
address addrB;

function A() public {
b1 = new B();
addrB=address(b1);
}

function callSet(address addr, uint param) public returns(uint) {
//addr.call(bytes4(keccak256(“set(uint)”)), param); //使用了uint,调用不生效。应当使用uint256; uint是uint256的昵称,但在ABI调用时候,只能使用长类型。

//使用address.call
addr.call(bytes4(keccak256(“set(uint256)”)), param); //call 使用的是被调用者的存储,因此改变的是B.var1值

//使用实例方式,可以直接采用callee.method形式调用,从而直接获取函数返回值
/*
B b2 = B(addr);
uint result = b2.set(param);
return result;
*/

//使用 new B()方式方式调用
// uint  b1=b1.set(param);
// addrB.call(bytes4(keccak256(“set(uint256)”)), param);

return 1;
}

function delegatecallSet(address addr, uint param) {
//addr.delegatecall(bytes4(keccak256(“set(uint)”)), param); //使用了uint,调用不生效。应当使用uint256; uint是uint256的昵称,但在ABI调用时候,只能使用长类型。
addr.delegatecall(bytes4(keccak256(“set(uint256)”)), param); //delegatecall和callcode都是使用调用者的存储,特别要注意调用者和被调用者合约变量定义顺序,目前改变的是A.var2的值。
B b2 = B(addr);  //使用实例方式,可以直接采用callee.method形式调用,从而直接获取函数返回值
uint result = b2.set(param);
// uint  b1=b1.set(param);
// addrB.call(bytes4(keccak256(“set(uint256)”)), param);
}

function callcodeSet(address addr, uint param) {
addr.callcode(bytes4(keccak256(“set(uint256)”)), param);
}

function getVar1() public view returns(uint) {
return var1;
}

function getVar2() public view returns(uint) {
return var2;
}

function getAddr() public view returns(address) {
return addrB;
}
}

contract B {
uint public var1;
event MyEvent(uint param, uint result);

function set(uint param) public returns(uint) {
var1 = param;
MyEvent(param, 1);
return param;
}
}

23
12月

R语言常用统计分布的蒙特卡洛模拟

为加深对各种常用统计分布的理解,更好掌握R语言对应的各类分布的概率函数(d、p、q、r族)以及广义线性模型的使用,研究了一下常用统计分布数据的模拟生成方法,收获颇多。

各类常用统计分布蒙特卡洛模拟数据生成的大致思路:

1、构造自变量x的均匀分布
2、根据对应分布的均值函数,构造x变量对应的均值。(广义线性模型的link 函数参考
https://en.wikipedia.org/wiki/Generalized_linear_model#Link_function
3、将均值代入,R中对应分布的随机变量生成函数,得到因变量y(例如正态分布为rnorm、泊松分布为rpois)

 

代码:

#norm distribution simulation
set.seed(1234)
num=100
beta0=1
beta1=0.2
x=beta0+beta1*runif(n=num,-1,1)
y=rnorm(num,mean=x,sd=1)
model=glm(y~x,,family=gaussian(link=’identity’))

 

#possion distribution simulation
set.seed(1234)
num=100
beta0=1
beta1=0.2
x=beta0 + beta1*runif(n=num, min=0, max=5)
lambda=exp(x)
y=rpois(n=num, lambda=lambda)
model = glm(y~x, family=poisson(link = log))

 

#Exponential/Gamma distribution simulation
set.seed(1234)
num=100
beta0=1
beta1=0.2
x=beta0 + beta1*runif(n=num, min=0, max=5)
y=rexp(num,rate=exp(-x))
model=glm(y~x,,family=Gamma(link=’log’))
#使用nls模拟
df=data.frame(x,y)
model=nls(y~exp(a+b*x),data=df,start = list(a=0,b=0))

 

#logistic/probit distribution simulation
set.seed(1234)
num=100
beta0=1
beta1=0.2
x=beta0 + beta1*runif(n=num, min=0, max=5)
#logistic distribution logit=log(odds)=log(p/(1-p))
odds=exp(x)
probs=odds/(1+odds)
#probit distribution probit=Cumulative normal pdf
#probs=pnorm(x)

 

y=rbinom(n=num,size=1,prob=probs)
model=glm(y~x1+x2,family = binomial(link=”logit”))

 

#bionimal/Categorical/Multinomial distribution simulation
library(nnet)
y=rbinom(n=num,size=3,prob=probs)
model <- multinom(y ~ x1 + x2)

代码下载


参考资料:《 Monte Carlo Simulation and Resampling Methods for Social Science》

https://www.sagepub.com/sites/default/files/upm-binaries/57233_Chapter_6.pdf

    RSS订阅

    近期文章

    近期评论

    文章归档

    分类目录