2017-12-11 test12

1.编写函数:
unsigned int reverse_bit(unsigned int value);
这个函数的返回值value的二进制位模式从左到右翻转后的值。

如:
在32位机器上25这个值包含下列各位:
00000000000000000000000000011001
翻转后:(2550136832)
10011000000000000000000000000000
程序结果返回:
2550136832

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
unsigned int reverse_bit(unsigned int x)
{  
	unsigned int y=0;
	int tmp=0;
	int n=0;
	for (n=0;n<32;n++)
	{
		tmp=x&1;
		y<<=1;
		y|=tmp;
		x>>=1;
	}
	return y;
}
int main()
{   unsigned int x=0;
    printf("请输入一个整型数:\n");
	scanf("%d",&x);
    printf("该数二进制序列的逆序值为%u\n",reverse_bit(x));  
	return 0;
}

2.不使用(a+b)/2这种方式,求两个数的平均值。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int my_average(int x,int y)
{ 
	x>>=1;
	y>>=1;
	return (x+y);
}
int main()
{
	int x=0;
	int y=0;
	printf("请输入2个整型数:\n");
	scanf("%d%d",&x,&y);
    printf("%d\n",my_average(x,y) );
	return 0;
}

3.编程实现:
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。
请找出这个数字。(使用位运算)

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int search(int arr[],int sz)
{   int i=0;
	int tmp=0;
	for (i=0;i<sz;i++)
	{
		tmp=tmp^arr[i];
	}
	for (i=0;i<sz;i++)
	{
		if(tmp==arr[i])
			return i;
	}
	return sz+1;
}
int main()
{   
	int n=0;
	int arr[]={1,2,3,3,2};

	int sz=sizeof (arr)/sizeof(arr[0]);
	n=search(arr,sz);
    if (n>sz+1)
	{
		printf("该组数据中没有单独的数据\n");
	}
	else
		printf("该组数据中单独的数据是%d\n",arr[n]);
	return 0;
}

有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".
要求:
不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int my_strlen(char arr[])
{
	int i=0;
	for (i=0;arr[i]!='\0';i++)
	{
		;
	}
	return i;
}

int main()
{
	char arr[]={"student a am i"};
	char arr1[20][20]={0};
	int i=0;
	int j=0;
	int n=0;
	int sz=my_strlen(arr);
	while (1)
	{
	
		for (j=0;(arr[n]!=' ')&&(n<sz);n++,j++)
		{
       arr1[i][j]=arr[n];
		}
		arr1[i][j]='\0';
	    if (n==sz)
		{
			break;
		}
		i++;	
	    n++;
		
	}
	for (;i>=0;i--)
	{
		printf("%s ",arr1[i]);
		
	}
	  
	
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的基于Transformer算法的代码示例,可以用来预测SNumber。 ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from tensorflow.keras.models import Model from tensorflow.keras.layers import Input, Dense, Dropout, LayerNormalization, MultiHeadAttention, TimeDistributed, concatenate # 加载数据 data = pd.read_csv('data.csv') X = data.drop(['SNumber'], axis='columns') y = data['SNumber'] # 标准化输入特征 scaler = StandardScaler() X = scaler.fit_transform(X) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=False) # 构建Transformer模型 def transformer_model(input_shape): inputs = Input(shape=input_shape) x = Dense(64, activation='relu')(inputs) x = LayerNormalization()(x) x = Dropout(0.2)(x) x = Dense(32, activation='relu')(x) x = LayerNormalization()(x) x = Dropout(0.2)(x) x = Dense(1)(x) model = Model(inputs=inputs, outputs=x) return model # 训练模型 model = transformer_model((X_train.shape[1],)) model.compile(optimizer='adam', loss='mean_squared_error') model.fit(X_train, y_train, epochs=100, batch_size=16, validation_data=(X_test, y_test)) # 预测结果 y_pred = model.predict(X_test) # 可视化预测结果 plt.plot(y_test.values, label='True') plt.plot(y_pred, label='Predicted') plt.legend() plt.show() ``` 需要注意的是,这只是一个简单的示例,实际上可能需要进行更多的特征工程和调整模型参数来获得更好的预测结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值