プログラマメモ2 - programmer no memo2

[Swift]配列に関数 2015/05/09

Swiftです。
Swift楽しいですね。

はやく、アプリ作りたいですが、ちょっとその前に、言語仕様の確認とか、どんな表現でコーディングできるかお試して中です。

配列に関数を入れておいいて呼び出すときに、ランダムに読み出し利用するというのを試してみます。
import Foundation func r(m:Int)->Int { return Int(arc4random_uniform(UInt32(m))) } let rarr = [r, r, r] println("\(rarr[0](3)) \(rarr[1](3)) \(rarr[2](3))") println("\(rarr[0](3)) \(rarr[1](3)) \(rarr[2](3))") println("\(rarr[0](3)) \(rarr[1](3)) \(rarr[2](3))")

import Foundation func r(m:Int)->Int { return Int(arc4random_uniform(UInt32(m))) } func r1()->Int { return 1 } func r2()->Int { return 2 } func r3()->Int { return 3 } let rarr = [r1, r2, r3] println("\(rarr[r(3)]()) \(rarr[r(3)]()) \(rarr[r(3)]())")

[swift]乱数 2015/05/06

swiftです。
乱数。キャスト、キャスト、キャスト。。。

The Swift Programming Language: The Basics

func rand(r:Int) -> Int { return Int(arc4random_uniform(UInt32(r))); }

[MYSQL] ランダムに誕生日年とか欲しくて - FUNCTION です。 2013/01/26

mysqlのFUNCTION です。
ある年月日からある年月日までの間の年月日をランダムに生成したいなと思いました。

MySQL 5.1 リファレンスマニュアル :: 11 関数と演算子 :: 11.5 日付時刻関数
MySQL 5.1 リファレンスマニュアル :: 11 関数と演算子 :: 11.6 MySQL が使用するカレンダーは ?

以下のFUNCTION RANDOM_BIRTH() は、1940-01-01から 2012-12-31 の間の日にちをランダムに生成します。
今回使ったのはFROM_DAYSという関数です。この関数日数をうけとってDATEで返してくれます。この日数がいつからのものかというがわからないので、TO_DAYSで事前に調べておくというのが面倒ですかね。

-- mysql5 -u root work < FUNCTION_RANDOM.sql -- 再定義用 DROP FUNCTION IF EXISTS RANDOM; DROP FUNCTION IF EXISTS RANDOM_BIRTH; DROP PROCEDURE IF EXISTS MAIN; delimiter // CREATE FUNCTION RANDOM(i INT, j INT) RETURNS INT NO SQL BEGIN -- i <= r < j RETURN FLOOR(i + (RAND() * (j - i))); END; CREATE FUNCTION RANDOM_BIRTH() RETURNS DATE NO SQL BEGIN DECLARE i INT DEFAULT 0; -- SELECT TO_DAYS('1940-01-01'); 708570 -- SELECT TO_DAYS('2013-01-01'); 735234 -- SELECT FROM_DAYS(708570 + 26663); -- FROM 1940-01-01 TO 2012-12-31 SET i = RANDOM(0,26664);-- 735234 - 708570 -- グレゴリウス暦からもとめる RETURN FROM_DAYS(708570 + i); END; CREATE PROCEDURE MAIN() BEGIN SELECT RANDOM_BIRTH(); END // -- 呼び出し CALL MAIN(); -- とりあえずあったら消しておく DROP FUNCTION IF EXISTS RANDOM; DROP FUNCTION IF EXISTS RANDOM_BIRTH; DROP PROCEDURE IF EXISTS MAIN; SHOW WARNINGS;


Objective-Cでらんすう - 初期化がいらないarc4random() だそうです。 2010/08/27

Objective-Cです。といってもObjective-Cにかぎったものではないですが。。。
乱数が欲しいと思いました。それで、さがしたらarc4random()という関数がありました。
osx上で、man arc4randomするとでてきます。




arc4random() % n