Swift学习(二)

import Foundation


func sayhello(name:String) ->String {

    let greeting = "hello" + name + "!"

    return greeting

}

println(sayhello("anna"))



func minusresult(start: Int ,end :Int) ->Int {

    return end - start

}

println(minusresult(1,10))


//无返回值

func saygoodbye(name: String) {

    println("goodbye,\(name)")

}

println(saygoodbye("dave"))


//函数调用!!!!!!!!

func count(string: String) -> (vs:Int , cs:Int, os:Int){

    var vowels = 0 ,consonants = 0, others = 0

    for character in string  {

        switch String(character).lowercaseString {

            case "a","e","i","o","u":

            ++vowels

             case "b","c","d","f","g":

            ++consonants

        default:

            ++others

        }

    }

    return (vowels,consonants,others)

}

let total = count("some arbitry")

println("\(total.vs) vowels and \(total.cs) consonants")


/*

func join(s1: String , s2: String , joiner:String) ->String {

    return s1 + joiner + s2

}

println(join("hello","world",","))

*/


//每一个都有两个名字 比如 strings1

func join(string s1:String, tostring s2:String , withjoiner joiner:String) ->String {

    return s1 + joiner + s2

}

println(join(string : "hello",tostring : "hi",withjoiner : ","))


//简写


//#作为局部外部参数名

func containcharacter(#string : String , #charactertofind:Character) ->Bool {

    for character in string {

        if character == charactertofind {

            return true

        }

    }

    return false

}

let containasvee = containcharacter(string: "asdada", charactertofind:"a" )

println(containasvee)



func join(string s1:String,string s2:String , withjoiner joiner:String = ",")->String {

    return s1 + joiner + s2

}

let str1 = join(string:"hefe", tostring: "dawwq", withjoiner: "-")

println(str1)


//joiner有默认值 所以下面要写上

func join(s1:String, s2:String, joiner: String = " ")->String {

    return s1 + joiner + s2

}

let str3 = join("hello","world",joiner:"-")

println(str3)


//可变参数

func mean(numbers:Double...)->Double {

    var total:Double = 0

    for number in numbers {

        total += number

    }

    return total / Double(numbers.count)

}

println(mean(1.1,2.2,3.1,4.5))


func mean2(lala: Double...) ->Double {

    var total1: Double = 0

    for lala2 in lala {

    total1 += lala2

    }

return total1 / Double(lala.count)

}

println(mean2(2.3,5.4))


/*

func alignright(var string:String, count: Int, pad:Character) ->String {

    let amounttopad = count - count(string)

    for

   */


let label = "The width is"

let width = 94

let widthLabel = label + String(width)

println(widthLabel)


//输入输出函数

func swaptwoints(inout a :Int, inout b:Int){

    let temp = a

    a = b

    b = temp

}


var someint = 3

var anotherint = 7

//作为输入输出参数时

swaptwoints(&someint , &anotherint)

println("someint is now \(someint)  , and anotherint is now \(anotherint)")


/*

let interestingnumbers = [

    "prime":[2,3,5,7,11,13],

    "fibonacci":[1,1,2,3,5,8],

    "square":[1,4,9,16,25],

]

var largest = 0

for (kind,numbers) in interestingnumbers {

    for number in numbers {

        if number > largest {

            largest = number

        }

    }

}

println(largest)


var n = 2

while n < 100 {

    n = n * 2

}

print(n)


var m = 2

do {

m = m * 2

}while m < 100

print(m)


var firstforloop = 0

for i in 0..<4 {

    firstforloop += i

}

println(firstforloop)

//使用..<创建的范围不包含上界,如果想包含的话需要使用...



func calculateStatistics(scores: [Int]) -> (min: Int, max: Int, sum: Int) {

    var min = scores[0]

    var max = scores[0]

    var sum = 0

    

    for score in scores {

        if score > max {

            max = score

        } else if score < min {

            min = score

        }

        sum += score

    }

    

    return (min, max, sum)

}

let statistics = calculateStatistics([5, 3, 100, 3, 9])

print(statistics.sum)

print(statistics.2)



func returnFifteen() -> Int {

    var y = 10

    func add() {

        y += 5

    }

    add()

    return y

}

returnFifteen()


func makeIncrementer() -> (Int -> Int) {

    func addOne(number: Int) -> Int {

        return 1 + number

    }

    return addOne

}

var increment = makeIncrementer()

increment(7)

*/


//函数类型:1,定义函数,2,定义函数类型变量或常量3,给函数类型赋值

func addtowints(a : Int , b: Int) -> Int {

    return a + b

}


var mathfunction:(Int,Int) ->Int //函数类型

mathfunction = addtowints   // 赋值


println("result:\(mathfunction(2,3))")


func sum(a: Int , b :Int ) -> Int {

    return a - b

}

var mathfunction2:(Int,Int) ->Int = sum

println(mathfunction2(2,5))


func printmathresult(mathfun:(Int , Int)-> Int, a :Int ,b : Int){

    println("result:\(mathfun(a, b))")

}

printmathresult(addtowints, 1, 2)


func stepForward(input: Int) ->Int {

    return input + 1

}

func stepbackward(input:Int) ->Int {

    return input - 1

}

func choosestepfunction(backwards: Bool) ->     (Int) -> Int {

    return backwards ? stepbackward : stepForward

}

var currentvalue = 3

let movenearertozero = choosestepfunction(currentvalue > 0)

println("movenearertozero:\(movenearertozero)")


let base = 3

let power = 10

var answer = 1

for _ in 1...power {

    answer *= base

}

println(answer)


let names = ["1","2","3"]

for name in names {

    println(name)

}


let numberoflegs = ["spider":8,"ant":10,"cat":4]

for (animalname,legs) in numberoflegs{

    println("\(animalname) has \(legs)")

}


for character in "hello" {

    println(character)

}


for var index=0;index<3 ;++index {

    println(index)

}


var va = 1

while va < 5 {

    println("while index is \(va)")

    va++

}


var vb = 1

do {

    println("is \(vb)")

    vb++

}while vb < 5

内容概要:本文针对火电厂参与直购交易挤占风电上网空间的问题,提出了一种风火打捆参与大用户直购交易的新模式。通过分析可再生能源配额机制下的双边博弈关系,建立了基于动态非合作博弈理论的博弈模型,以直购电价和直购电量为决策变量,实现双方收益均衡最大化。论文论证了纳什均衡的存在性,并提出了基于纳什谈判法的风-火利益分配方法。算例结果表明,该模式能够增加各方收益、促进风电消纳并提高电网灵活性。文中详细介绍了模型构建、成本计算和博弈均衡的实现过程,并通过Python代码复现了模型,包括参数定义、收益函数、纳什均衡求解、利益分配及可视化分析等功能。 适合人群:电力系统研究人员、能源政策制定者、从事电力市场交易的工程师和分析师。 使用场景及目标:①帮助理解风火打捆参与大用户直购交易的博弈机制;②为电力市场设计提供理论依据和技术支持;③评估不同政策(如可再生能源配额)对电力市场的影响;④通过代码实现和可视化工具辅助教学和研究。 其他说明:该研究不仅提供了理论分析,还通过详细的代码实现和算例验证了模型的有效性,为实际应用提供了参考。此外,论文还探讨了不同场景下的敏感性分析,如证书价格、风电比例等对市场结果的影响,进一步丰富了研究内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值