数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: elim

求 c(n,k) mod(2) 的通项公式, 其中 c(n,k) 是 n 元取 k 个的组合数.

[复制链接]
 楼主| 发表于 2017-10-28 22:55 | 显示全部楼层
chaoshikong 发表于 2017-10-28 07:23
我试过了,下载了Ipython后,在CMD中执行ipython >1.txt
然后输入代码print "hello world!"
exit

我有一个web app. 用一种叫 objective-c 语言写的。通过 http 用户可以输入一组参数比方说饭店订单。app 找到数据库里对应饭店的收费逻辑(python 代码, 可以实时后台更新:今日优惠,VIP 优惠等等), 然后产生一个system call, 把数据和逻辑交给 python 引擎处理, 处理结果一般是一个 struct 或一个字典(collection of key-value pairs). web app 必须实时拿到这个处理结果,存入数据库或实时操作交易... 所以情况会复杂一些。

点评

第一感觉应该从system call那里入手获取返回值,由于我没有这方面的经验,我去问一下其他的相关方面的朋友再来回复!  发表于 2017-10-29 13:49
 楼主| 发表于 2017-10-29 09:05 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2017-10-30 14:06 | 显示全部楼层
elim 发表于 2017-10-28 22:55
我有一个web app. 用一种叫 objective-c 语言写的。通过 http 用户可以输入一组参数比方说饭店订单。app  ...


demo.py
  1. def add(a,b):
  2.     print 'a=', a
  3.     print 'b=', b
  4.     return a + b

  5. print "hello world!"
复制代码

C语言代码:
  1. #include "stdio.h"
  2. #include "python.h"

  3. int PyCall( const char * module, const char * function, const char *format, ... )  
  4. {  
  5.         PyObject* pMod    = NULL;  
  6.         PyObject* pFunc   = NULL;  
  7.         PyObject* pParm   = NULL;  
  8.         PyObject* pRetVal = NULL;  

  9.         //导入模块  
  10.         if( !(pMod = PyImport_ImportModule(module) ) ){  
  11.                 return -1;  
  12.                 }  
  13.                 //查找函数  
  14.                 if( !(pFunc = PyObject_GetAttrString(pMod, function) ) ){  
  15.                 return -2;  
  16.          }  

  17.         //创建参数  
  18.         va_list vargs;  
  19.         va_start( vargs, format );  
  20.         pParm = Py_VaBuildValue( format, vargs );  
  21.         va_end(vargs);  

  22.         //函数调用  
  23.         pRetVal = PyEval_CallObject( pFunc, pParm);  

  24.         int ret;  
  25.         PyArg_Parse( pRetVal, "i", &ret );  
  26.         return ret;  
  27. }  

  28. int main(int argc,char *argv[])
  29. {
  30.         Py_Initialize();  
  31.         printf( "ret = %d\n", PyCall( "demo", "add", "(ii)",  99, 1));  
  32.         Py_Finalize();  
  33.         return 0;
  34. }
复制代码

执行结果:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2017-10-30 14:33 | 显示全部楼层
如果要返回字符串,则只需要在demo.py中返回字符串,,

然后在.c中把这句yArg_Parse( pRetVal, "i", &ret );
改为PyArg_Parse( pRetVal, "s", &ret );

main中的这句printf( "ret = %d\n", PyCall( "demo", "add", "(ii)",  99, 1));
改为:printf( "ret = %s\n", (char*)PyCall( "demo", "add","(ii)", 99, 1));
 楼主| 发表于 2017-11-1 00:09 | 显示全部楼层
谢谢 chaoshikong. 我好好玩一玩这些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2026-5-16 06:28 , Processed in 0.143475 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表