
Lv.1
音无结弦之时 跃动天使之心 立于浮华之世 奏响天籁之音
签名:2019.5.17 joined in Codemao.
在 【竞选社区管喵】星空之忆 中回复
extern crate hyper;
extern crate select;
use std::io::Read;
use hyper::Client;
use std::fs::File;
//use std::fs::create_dir_all;
//use std::io::{BufWriter};
use select::document::Document;
use select::predicate::{ Class};
use std::error::Error;
use std::io::prelude::*;
use std::path::Path;
fn main() {
let mut start = 0;
while start < 900 {
println!("start的值:{}",start);
get_date(&mut start,);
}
}
fn get_date(start: &mut i32){
let client = Client::new();
let url = "https://movie.douban.com/subject/186喵79/reviews?start=";
let num_str = format!("{0}{1}", url.to_string(), start);//拼接字符串
//println!("url{}",num_str);
let mut res = client.get(num_str.trim()).send().unwrap();
/*assert_eq!(res.status, hyper::Ok);
println!("headers:\n {}", res.headers);*/
let mut body = String::new();
res.read_to_string(&mut body).unwrap();
let htmlbody= body.trim();
/* println!("body:\n {}", htmlbody);*/
let document = Document::from(htmlbody);
let mut content = String::from("");//单页数据
for node in document.find(Class("main-bd")) {
let question = node.find(Class("short-content")).next().unwrap();
let qes_str = question.text();
let qes_str= qes_str.replace("\n","").replace("\t","").replace("\r","").replace(" ","");
let qes_str = format!("{0}{1}{2}", "start:", qes_str,"\r\n");//拼接字符串
/* content.a喵(qes_str);*/
&content.push_str(&qes_str);
}
let pathname = format!("{0}{1}{2}","./",start,"-page.txt" );//拼接字符串
//println!("一页内容{}",&content);
wtrie_file(&pathname,&mut content);
*start+=20;
}
//写入文件
fn wtrie_file(path:&String ,conetent:&mut String){
let path = Path::new(path);
let display = path.display();
let mut file = match File::create(&path) {
Err(why) => panic!("创建文件失败{}: {}",display, why.description()),
Ok(file) => file,
};
match file.write_all(conetent.as_bytes()) {
Err(why) => {
panic!("写入失败 {}: {}", display,
why.description())
},
Ok(_) => println!("成功写入 {}", display),
}
}2020-05-07T16:33:55 点赞:0
在 [教程帖]Java学习教程(第六章)[数据类型]{ 浮点型详解(理解)} 中回复
package bpAutoEncode.multi;
import java.util.ArrayList;
import bpAutoEncode.base.IbpBase;
import tool.Function;
public class BPEncodeMulti implements IbpBase{
private double[][] layer;
private double[][][] weight;
private double[][] error;
private double rate;
public BPEncodeMulti(int features,int feaAfterEncode,double r) {
int layerNum=3;
int[] numberOfLayer=new int[layerNum];
numberOfLayer[0]=numberOfLayer[layerNum-1]=features;
numberOfLayer[layerNum/2]=feaAfterEncode;
init(numberOfLayer, r);
}
public BPEncodeMulti(ArrayList<BPEncodeMulti> models,double r) {
int[] numberOfLayer=new int[models.size()*2+1];
numberOfLayer[models.size()]=models.get(models.size()-1).getMinNodeNum();
int n=numberOfLayer.length;
rate=r;
layer=new double[n][];
weight=new double[n-1][][];
error=new double[n][];
for(int i=0;i<models.size();++i) {
numberOfLayer[i]=numberOfLayer[n-1-i]=models.get(i).getMaxNodeNum();
weight[i]=models.get(i).getZoomOutWeight();
weight[weight.length-1-i]=models.get(i).getZoomInWeight();
}
for(int i=0;i<n;++i) {
layer[i]=new double[numberOfLayer[i]];
error[i]=new double[numberOfLayer[i]];
}
}
public double[][] getZoomInWeight() {
return weight[1];
}
public double[][] getZoomOutWeight() {
return weight[0];
}
public int getMinNodeNum() {
return layer[1].length;
}
public int getMaxNodeNum() {
return layer[0].length;
}
@Override
public void init(int[] numberOfLayer,double r) {
rate=r;
int n=numberOfLayer.length;
layer=new double[n][];
weight=new double[n-1][][];
error=new double[n][];
for(int i=0;i<n;++i) {
layer[i]=new double[numberOfLayer[i]];
error[i]=new double[numberOfLayer[i]];
if(i<n-1) {
weight[i]=new double[numberOfLayer[i]+1][numberOfLayer[i+1]];
for(int j=0;j<numberOfLayer[i]+1;++j)
for(int k=0;k<numberOfLayer[i+1];++k)
weight[i][j][k]=Math.random();
}
}
}
@Override
public double[] computeOut(double[] inp) {
for(int i=1;i<layer.length;++i) {
for(int k=0;k<layer[i].length;++k) {
double z=weight[i-1][layer[i-1].length][k];
for(int j=0;j<layer[i-1].length;++j) {
layer[i-1][j]=i==1?inp[j]:layer[i-1][j];
z+=weight[i-1][j][k]*layer[i-1][j];
}
layer[i][k]=Function.sigmoid(z);
}
}
return layer[layer.length-1];
}
public double[][] computeOut(double[][] inp) {
double[][] result=new double[inp.length][];
for(int i=0;i<inp.length;++i) result[i]=computeOut(inp[i]);
return result;
}
@Override
public void backPropagation(double[] target) {
int i=layer.length-1;
for(int j=0;j<layer[i].length;++j)
error[i][j]=layer[i][j]*(1-layer[i][j])*(target[j]-layer[i][j]);
while(i-->0){
for(int j=0;j<layer[i].length;++j) {
double err=0.0;
for(int k=0;k<layer[i+1].length;++k) {
err+=weight[i][j][k]*error[i+1][k];
weight[i][j][k]+=rate*error[i+1][k]*layer[i][j];
if(j==layer[i].length-1)
weight[i][j+1][k]+=rate*error[i+1][k];
}
error[i][j]=err*layer[i][j]*(1.0-layer[i][j]);
}
}
}
public void trainModel(double[][] inp,double p) {
int xn=0;
double tmp;
while(true) {
for(int i=0;i<inp.length;++i) {
computeOut(inp[i]);
backPropagation(inp[i]);
}
tmp=reportModel(inp, p);
++xn;
if(tmp>1.0-p) return;
if(xn%10000==0) p+=0.01;
}
}
public static ArrayList<BPEncodeMulti> getTrainModel(double[][] inp,double rate,double p) {
ArrayList<BPEncodeMulti> result=new ArrayList<BPEncodeMulti>();
int max=inp[0].length;
int min=(int) Math.sqrt(max);
min+=(max-min)%4;
int n=(max-min)/4;
System.out.println(n);
double[][] in=inp;
for(int i=0;i<n;++i) {
BPEncodeMulti bpEncodeMulti=new BPEncodeMulti(max-4*i, max-4*(i+1), rate);
bpEncodeMulti.trainModel(in, p);
System.out.print(bpEncodeMulti.reportModel(in喵uteEncodeDataSet(in, tmp);
in=tmp;
result.add(bpEncodeMulti);
System.out.println("\t第"+(i+1)+"个子模型*.");
}
return result;
}
public static double repModel(ArrayList<BPEncodeMulti> model,double[][] inp,double p) {
System.out.println(model.size());
int count=0;
for(double[] in : inp) {
double[] a=in;
for(int i=0;i<model.size();++i) {
double[] tmp=new double[model.get(i).getMinNodeNum()];
model.get(i).computeEncodeData(a, tmp);
a=tmp;
}
for(int i=model.size()-1;i>=0;--i)
a=model.get(i).computeDecodeData(a);
if(compare(a, in, p)) ++count;
}
return count/(double)inp.length;
}
public void computeEncodeData(double[] inp,double[] result) {
computeOut(inp);
for(int i=0;i<result.length;++i) result[i]=layer[layer.length/2][i];
}
public void computeEncodeDataSet(double[][] inp,double[][] dataSet) {
for(int i=0;i<inp.length;++i)
computeEncodeData(inp[i], dataSet[i]);
}
public double[] computeDecodeData(double[] inp) {
for(int i=layer.length/2+1;i<layer.length;++i) {
for(int k=0;k<layer[i].length;++k) {
double z=weight[i-1][layer[i-1].length][k];
for(int j=0;j<layer[i-1].length;++j) {
layer[i-1][j]=i==2?inp[j]:layer[i-1][j];
z+=weight[i-1][j][k]*layer[i-1][j];
}
layer[i][k]=Function.sigmoid(z);
}
}
return layer[layer.length-1];
}
public double[][] computeDecodeDataSet(double[][] inp) {
double[][] result=new double[inp.length][];
for(int i=0;i<result.length;++i) result[i]=computeDecodeData(inp[i]);
return result;
}
public double reportModel(double[][] inp,double p) {
int count=0;
for(int i=0;i<inp.length;++i) {
double[] result=computeOut(inp[i]);
//System.out.println(Arrays.toString(inp[i])+"\t"+Arrays.toString(result));
//System.out.println(Arrays.toString(result));
if(compare(result, inp[i], p)) ++count;
}
return count/(double)inp.length;
}
public static boolean compare(double[] a1,double[] a2,double p) {
double err=0.0;
for(int i=0;i<a1.length;++i)
err+=Math.pow(a1[i]-a2[i],2.0);
err/=a1.length;
if(err<p) return true;
else return false;
}
}
2020-05-08T11:01:46 点赞:0
在 先从昨天作业开始,,本萌新会陆续在讨论区发帖子(作品)的 中回复
import math
def IsPrime(n):
flag = True
for i in range(2,int(math.sqrt(n))+1):
if n%i == 0 :
flag = False
break
return flag
def find(n):
if n > 0 and n%2 == 0 :
for i in range(3,int(n/2)+1):
if IsPrime(i) and IsPrime(n-i) :
print(n,'=',i,'+',n-i)
def main():
a = int(input())
find(a)
if __name__ == '__main__':
main()2020-05-08T11:54:49 点赞:1