當前位置:首頁 » 操作系統 » 演算法小程序

演算法小程序

發布時間: 2023-05-12 03:33:05

A. c編程,一個演算法小程序,求二進制位只有3位為1的情況,並輸出

這個是功能比較完善的既有10進制輸出又有二進制輸出
#include<stdio.h>

intmain()
{
inti;
intj;
intk;
intm;
intcnt=0;
inta[10]={1,2,4,8,16,32,64,128,256,512};
intsum;
for(i=0;i<8;++i)
{
for(j=i+1;j<9;++j)
{
for(k=j+1;k<10;++k)
{
sum=a[i]+a[j]+a[k];
printf("%4d=",sum);
for(m=9;m>=0;--m)
{
if(m==i||m==j||m==k)
printf("1");
else
printf("0");
}
printf("");
cnt++;
if(cnt%4==0)
printf(" ");
}

}

}
printf("合計有%d種情況~ ",cnt);

return0;
}

下邊是簡化了一下的,只有二進制輸出
#include<stdio.h>

intmain()
{
inti;
intj;
intk;
intm;
intcnt=0;
for(i=0;i<8;++i)
{
for(j=i+1;j<9;++j)
{
for(k=j+1;k<10;++k)
{
for(m=9;m>=0;--m)
{
if(m==i||m==j||m==k)
printf("1");
else
printf("0");
}
printf("");
cnt++;
if(cnt%4==0)
printf(" ");
}

}

}
printf("合計有%d種情況~ ",cnt);

return0;
}

B. 微信隨機分組小程序技巧

1、使用微信小程序的介面來獲取用戶的openid,然後根據openid來生成一個隨機的分組;
2、可以使用微信小程序的消息推送功能,將用戶分組的信息推送給用戶;
3、可以使彎腔用微信小程序的資料庫功能,將用戶的openid和分組信息存儲起來,以便以後使用;
4、可以使用微信小程序的雲函數功能,實現定時自動分組,以及定時自動推送分組信息;
5、可以使用微信小程序的客服消息功能,實現用戶主動查詢自己的分組信息;
6、可以使用微信小程序的客服消息功能,實現用戶主動申請更改分組信息;
7、可以使用微信小程序的客服消息功能,實現用戶主動申請取消分組信息;槐鬧碧
8、可以使用微信小程序的客服消息功能,實現用戶主動申請查看其他用戶鉛舉的分組信息;
9、可以使用微信小程序的客服消息功能,實現用戶主動申請查看某一分組的所有用戶信息;
10、可以使用微信小程序的客服消息功能,實現用戶主動申請查看某一分組的所有用戶的openid。

C. 微信小程序隨機推薦演算法有哪些

微信小程序推薦演算法的選擇一般需要考慮多方面因素,包括對推薦的精準度、時效性、用戶數據安全的要求等胡帆等。小程序推薦演算法的種類非常多團做亂,主要包括以下幾類:

1.基於用戶行為的協同過濾演算法:分析用戶過去的使用行為和興趣,然後根據相似性對實現個性化的推薦。

2.基於物品相似度的推薦演算法塌檔:通過計算不同物品之間的相似度,從而根據用戶當前瀏覽的物品向用戶推薦相似物品。

3.基於標簽的推薦演算法:通過收集用戶對物品的標注信息,分析出用戶喜歡的標簽,從而向用戶推薦相關的標簽內容。

4.基於熱門排行的推薦演算法:提取出當前最熱門的物品,向用戶推薦熱門物品,有利於提高用戶點擊率。

需要注意的是,對於不同的小程序類型和業務場景,推薦演算法的策略和實現方式可能會有所差異,需要綜合考慮多個方面的因素和實際情況。

D. 小程序在哪寫演算法

小程序在支持JavaScript語言的環境中寫演算法,可以悔基銷使用一些比較流行的編程語言或腳本語言,如JavaScript、PHP、Python等。在編寫小程序演算法時,要注意小程序的性能和體積,讓用戶鋒褲能夠快速載入和使碧游用小程序。

E. 微信上線加密小程序「密信」:使用國密演算法

8 月 31 日消息 騰訊近期在微信端上線了一款名為“騰訊密信”小程序。據悉,用戶可以使用密信傳輸隱私信息(如文件密碼)。密信由國密演算法加密保護,只有指定接收方才能查看。

據小程序介紹,隨著互聯網的發展,越來越多的敏感數據需要在開放網路上傳輸,本程序採用國密演算法,通過數據加密、數字簽名來保護敏感數據的傳胡卜輸。

騰訊表示,使用本小程序加密功能時,用戶需要對主密鑰的完整性和正確性租吵負責。此外,當用戶對加密數據進行復制或者遷移時也需要對加密元信息的完整性和正確性負責。

了解到,使用時,用戶可將密信內容以及備注進行加密,然後指定某些聯系人進行接收,只有指定接收方才弊做侍能查看。

F. 編一個簡單的C語言小程序。。。。。關於RSA演算法的

#include <stdio.h>
#include <stdlib.h>
#include <棗困time.h>

//RSA??????
typedef struct RSA_PARAM_Tag
{
unsigned __int64 p, q; //????,?????????
unsigned __int64 f; //f=(p-1)*(q-1),?????????
unsigned __int64 n, e; //??,n=p*q,gcd(e,f)=1
unsigned __int64 d; //??,e*d=1 (mod f),gcd(n,d)=1
unsigned __int64 s; //??,??2^s<=n????s,?log2(n)
} RSA_PARAM;

/消和/????
const static long g_PrimeTable[]=
{
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
73,
79,
83,
89,
97
};

const static long g_PrimeCount=sizeof(g_PrimeTable) / sizeof(long);const unsigned __int64 multiplier=12747293821;
const unsigned __int64 adder=1343545677842234541;//????

typedef struct _RandNumber
{
/* */
unsigned __int64 randSeed;/* */
}RandNumber;

static void CreateRandNumber(RandNumber *pRand, unsigned __int64 s);
static unsigned __int64 Random(RandNumber *pRand, unsigned __int64 n);

/* */
void CreateRandNumber(RandNumber *pRand, unsigned __int64 s)
{
if(!s)
{
pRand->randSeed= (unsigned __int64)time(NULL);
}
else
{
pRand->randSeed=s;
}
}

/* */
unsigned __int64 Random(RandNumber *pRand, unsigned __int64 n)
{
pRand->randSeed=multiplier * pRand->randSeed + adder;
return pRand->randSeed % n;
}

static RandNumber g_Rnd;

/*
????,??? x=a*b mod n
*/
unsigned __int64 MulMod(unsigned __int64 a, unsigned __int64 b, unsigned __int64 n)
{
return a * b % n;
}

/*
????,??? x=base^pow mod n
*/
unsigned __int64 PowMod(unsigned __int64 base, unsigned __int64 pow, unsigned __int64 n)
{
unsigned __int64 a=base, b=pow, c=1;
while(b)
{
while(!(b & 1))
{
b>>=1; /凳橋念/a=a * a % n; //?????????64????,?????a*a?a>=2^32????????,??????????64?
a=MulMod(a, a, n);
}

b--; //c=a * c % n; //??????,??64???????32????????????????
c=MulMod(a, c, n);
}
return c;
}

/*
Rabin-Miller????,??????1,????0?
n??????
??:????????????,???????????1/4
*/
long RabinMillerKnl(unsigned __int64 n)
{
unsigned __int64 b, m, j, v, i;
unsigned __int64 TWO = 2;
m=n - 1;
j=0; //0?????m?j,??n-1=m*2^j,??m????,j?????
while(!(m & 1))
{
++j;
m>>=1;
}

//1??????b,2<=b<n-1
b=2 + Random(&g_Rnd, n - 3);

//2???v=b^m mod n
v=PowMod(b, m, n);

//3???v==1,????
if(v == 1)
{
return 1;
}

//4??i=1
i=1;

//5???v=n-1,????
while(v != n - 1)
{
//6???i==l,???,??
if(i == j)
{
return 0;
}

//7?v=v^2 mod n,i=i+1
v=PowMod(v, TWO, n);
++i;

//8????5
}

return 1;
}

/*
Rabin-Miller????,??????loop?
??????1,????0
*/
long RabinMiller(unsigned __int64 n, long loop)
{
long i=0;

//?????????,????
for(i=0; i < g_PrimeCount; i++)
{
if(n % g_PrimeTable[i] == 0)
{
return 0;
}
}

//????Rabin-Miller??loop?,??????????????(1/4)^loop
for(i=0; i < loop; i++)
{
if(!RabinMillerKnl(n))
{
return 0;
}
}

return 1;
}

/*
??????bits?(????)???,??32?
*/
unsigned __int64 RandomPrime(char bits)
{
unsigned __int64 base;
do
{
base= (unsigned long)1 << (bits - 1); //??????1
base+=Random(&g_Rnd, base); //????????
base|=1; //??????1,??????
} while(!RabinMiller(base, 30)); //????-????30?
return base; //?????????
}

/*
???????????
*/
unsigned __int64 EuclidGcd(unsigned __int64 p, unsigned __int64 q)
{
unsigned __int64 a=p > q ? p : q;
unsigned __int64 b=p < q ? p : q;
unsigned __int64 t;
if(p == q)
{
return p; //????,?????????
}
else
{
while(b) //?????,gcd(a,b)=gcd(b,a-qb)
{
a=a % b;
t=a;
a=b;
b=t;
}

return a;
}
}

/*
Stein???????
*/
unsigned __int64 SteinGcd(unsigned __int64 p, unsigned __int64 q)
{
unsigned __int64 a=p > q ? p : q;
unsigned __int64 b=p < q ? p : q;
unsigned __int64 t, r=1;
if(p == q)
{
return p; //????,?????????
}
else
{
while((!(a & 1)) && (!(b & 1)))
{
r<<=1; //a?b?????,gcd(a,b)=2*gcd(a/2,b/2)
a>>=1;
b>>=1;
}

if(!(a & 1))
{
t=a; //??a???,??a,b
a=b;
b=t;
}

do
{
while(!(b & 1))
{
b>>=1; //b???,a????,gcd(b,a)=gcd(b/2,a)
} if(b < a)
{
t=a; //??b??a,??a,b
a=b;
b=t;
} b=(b - a) >> 1; //b?a????,gcd(b,a)=gcd((b-a)/2,a)
} while(b);

return r * a;
}
}

/*
??a?b,?x,??a*x =1 (mod b)
?????a*x-b*y=1??????
*/
unsigned __int64 Euclid(unsigned __int64 a, unsigned __int64 b)
{
unsigned __int64 m, e, i, j, x, y;
long xx, yy;
m=b;
e=a;
x=0;
y=1;
xx=1;
yy=1;
while(e)
{
i=m / e;
j=m % e;
m=e;
e=j;
j=y;
y*=i;
if(xx == yy)
{
if(x > y)
{
y=x - y;
}
else
{
y-=x;
yy=0;
}
}
else
{
y+=x;
xx=1 - xx;
yy=1 - yy;
} x=j;
} if(xx == 0)
{
x=b - x;
} return x;
}

/*
??????RSA????
*/
RSA_PARAM RsaGetParam(RandNumber Rnd)
{
RSA_PARAM Rsa={ 0 };
unsigned __int64 t;
Rsa.p=RandomPrime(16); //????????
Rsa.q=RandomPrime(16);
Rsa.n=Rsa.p * Rsa.q;
Rsa.f=(Rsa.p - 1) * (Rsa.q - 1);
do
{
Rsa.e=Random(&Rnd, 65536); //??2^16,65536=2^16
Rsa.e|=1; //??????1,??????,?f?????,???,?????
} while(SteinGcd(Rsa.e, Rsa.f) != 1);

Rsa.d=Euclid(Rsa.e, Rsa.f);
Rsa.s=0;
t=Rsa.n >> 1;
while(t)
{
Rsa.s++; //s=log2(n)
t>>=1;
}

return Rsa;
}

/*
??-????
*/
void TestRM(void)
{
unsigned long k=0;
unsigned __int64 i = 0;

printf(" - Rabin-Miller prime check.\n\n");

for(i=4197900001; i < 4198000000; i+=2)
{
if(RabinMiller(i, 30))
{
k++;
printf("%ul\n", i);
}
}

printf("Total: %ul\n", k);
}

void Usage(void)
{
printf("0. exit\n");
printf("1. encryption\n");
printf("2. decrypt\n");
printf("enter your choice:");
}

int GetChoice(void)
{
char s[80] = {0};
fgets(s, sizeof(s), stdin);

if ('0' > s[0] || '9' < s[0] || '\n' != s[1])
{
return -1;
}
else
{
return s[0] - '0';
}
}

#define ENCRYPT_CODE 1
#define DECRYPT_CODE 2
#define EXIT_CODE 0

#define MAX_SIZE 1024

int main(void)
{
RSA_PARAM r;
char pSrc[MAX_SIZE]={0};
unsigned long n = 0;
unsigned char *q = NULL;
unsigned char pDec[MAX_SIZE] = {0};
unsigned __int64 pEnc[MAX_SIZE] = {0};
unsigned __int64 tmp = 0;
unsigned long i=0;
int choice = 0;

unsigned __int64 s = 0;
CreateRandNumber(&g_Rnd, s);

r=RsaGetParam(g_Rnd);

/*
printf("p=%ul\n", r.p);
printf("q=%ul\n", r.q);

printf("f=(p-1)*(q-1)=%ul\n", r.f);
printf("n=p*q=%ul\n", r.n);
printf("e=%ul\n", r.e);
printf("d=%ul\n", r.d);
printf("s=%ul\n", r.s);
*/

while (1)
{
memset(pSrc, 0, MAX_SIZE);
memset(pDec, 0, MAX_SIZE);
memset(pEnc, 0, MAX_SIZE);

Usage();

choice = GetChoice();
switch(choice)
{
case ENCRYPT_CODE:
printf("Source:%s", pSrc);
scanf("%s", pSrc);
n = strlen(pSrc);
getchar();

q= (unsigned char *)pSrc;
printf("Encode:");

for(i = 0; i < n; i++)
{
tmp = q[i];
pEnc[i]=PowMod(tmp, r.e, r.n);
printf("%x ", pEnc[i]);
}
printf("\n");
break;

case DECRYPT_CODE:
printf("Enter length of ciphertext:");
scanf("%d", &n);
getchar();

for(i=0; i < n; i++)
{
printf("Enter ciphertext(%d):", i+1);
scanf("%x", &pEnc[i]);
getchar();
}

printf("Decode:");
for(i=0; i < n; i++)
{
pDec[i]=PowMod(pEnc[i], r.d, r.n);
printf("%x ", (unsigned long)pDec[i]);
}
printf("\n");
printf("%s\n", (char *)pDec);
break;

case EXIT_CODE:
break;
default:
break;
}

if (EXIT_CODE == choice)
{
break;
}
else
{
continue;
}
}

return 0;
}

G. 如何編數學演算法小程序

學習一下C語言或C++,使用visual C++軟體可以編寫握悔櫻很前鏈簡單的數學演算法小程序,如果再學習一下《數段叢值分析與演算法》這門課,就可以編出復雜的演算法程序了

H. 一個簡單的小程序 C語言 BF演算法

引用沒問題,就是BF函數錯了。

#include<stdio.h>
#include<string.h>
#include<iostream>//.h去掉
usingnamespacestd;//命名空間

intBF(charS[],charT[])
{
inti,j,start;
i=0;
j=0;
start=0;
while(S[i]!=''&&T[j]!='')//T[i]改為T[j]
{
if(S[i]==T[j])
{
i++;j++;
}
else{
start++;
i=start;
j=0;
}
}
if(T[j]=='')
returnstart+1;//start+1,因為數組從0開始計數
else
return0;
}

intmain()
{
charS[1000],T[1000];
intstart;
printf("輸入主串: ");
scanf("%s",S);
printf("%s ",S);
printf("輸入子串: ");
scanf("%s",T);
printf("%s ",T);
start=BF(S,T);
cout<<"主串與子串在主串的第"<<start<<"個字元匹配"<<endl;

}

I. 微信小程序 演算法不同客戶端與伺服器無法通信

伺服器故障。
由於原本的伺服器出故障,在使用臨時伺服器的時候出現蘋果無法載入小程序出現requestfail發生了,SSL,錯誤無法建立與隱吵侍該伺服器的安全連接。
微信WeChat是騰訊公司於2011年1月21日推出的一個為智能終端提供碰滑即時通訊服務的免費應用程序,由張小龍所帶領的騰訊廣州研發中心產品團灶吵隊打造。微信支持跨通信運營商、跨操作系統平台通過網路快速發送免費(需消耗少量網路流量)語音簡訊、視頻、圖片和文字,同時,也可以使用通過共享流媒體內容的資料和基於位置的社交插件搖一搖、朋友圈、公眾平台、語音記事本等服務插件。

熱點內容
內存和緩存的區別 發布:2025-05-16 06:42:42 瀏覽:187
配電車編程 發布:2025-05-16 06:41:22 瀏覽:369
安卓微信淺色模式怎麼恢復 發布:2025-05-16 06:27:53 瀏覽:240
美嘉演算法口訣 發布:2025-05-16 06:03:15 瀏覽:953
c程序編譯連接 發布:2025-05-16 06:02:36 瀏覽:965
腳本魔獸 發布:2025-05-16 06:01:52 瀏覽:331
文件夾python 發布:2025-05-16 06:01:43 瀏覽:627
電腦我的世界伺服器游戲幣 發布:2025-05-16 05:27:25 瀏覽:491
索尼手機為什麼不能用安卓10 發布:2025-05-16 05:18:46 瀏覽:784
蔚來es6選擇哪些配置實用 發布:2025-05-16 05:18:05 瀏覽:130