5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【JS】スクリプト,バトルロワイヤル39【Perl,Ruby,PHP,Python】

1 :デフォルトの名無しさん:2013/09/08(日) 21:19:21.50
前スレ

【PHP,Python】スクリプト,バトルロワイヤル38【Perl,Ruby】
http://toro.2ch.net/test/read.cgi/tech/1378640419/

101 :デフォルトの名無しさん:2013/09/17(火) 23:15:09.70
Line 34
yield from advance(n + 1, mapping, remaining)
^
SyntaxError: invalid syntax

102 :デフォルトの名無しさん:2013/09/17(火) 23:17:21.15
>>99
>>15 のJSのコード:行数120、実行時間は10秒(?)
>>97 のPythonのコード: 行数46、実行時間は0.3秒

103 :デフォルトの名無しさん:2013/09/17(火) 23:17:52.25
>>101
>>71に書いたけど、Python3.3必須

104 :デフォルトの名無しさん:2013/09/17(火) 23:17:56.49
KYOTO + OSAKA = TOKYO
AOMORI + SAPPORO = FUKUOKA
KOCHI + OSAKA = NAGOYA
OKAYAMA + WAKAYAMA = KANAZAWA
FUKUOKA + NAGANO = YOKOHAMA
KAMAKURA + MORIOKA = NAGASAKI
KUMAMOTO + TOTTORI = WAKAYAMA
OKAYAMA + WAKAYAMA = YAMAGATA
TOTTORI + YAMAGATA = YOKOHAMA

105 :デフォルトの名無しさん:2013/09/17(火) 23:19:56.60
23+9=32
34+9=43
45+9=54
56+9=65
...
78+9=87

106 :デフォルトの名無しさん:2013/09/17(火) 23:24:40.76
>>102
>>15はバグあるしTypedArrayとか使ったりいろいろ変なことしてるだろ
最低限なことしかしてない中身約20行の>>78>>15よりちょっと早いよ

107 :デフォルトの名無しさん:2013/09/17(火) 23:31:15.10
JSは他の人も書けよ。
特に>>80,82

108 :デフォルトの名無しさん:2013/09/17(火) 23:32:36.06
JSはせっかく性能高い処理系あるんだから生CPythonぐらいは抜いて貰わないとな

109 :デフォルトの名無しさん:2013/09/17(火) 23:34:35.53
言語と速度は別だ。
実行時に新型(新クラス)が無限に生成されるのでなければ
原理的には実行前にアセンブラやC++に変換にするのは可能。

110 :デフォルトの名無しさん:2013/09/17(火) 23:44:47.98
じゃあ遅くてもいいからJSのコードがもっと見たいわ。

111 :78:2013/09/18(水) 00:05:17.59
頑張ってるけど
>>78でもう生成したコードを実行する部分だけで全体の半分以上の時間がかかってるから
仮に生成する部分を多少改善しても爆速にはならなさそう

だから実行コード自体をどうにかしたいんだけど
今のif文return以外の方法だとV8でどうしてもスタックが溢れてしまって
>>15みたいに分割しなくちゃいけなくなりそうだから結構難しい

GCにもかなり時間食われてるし、根本的に無理があるのかも
あとはアルゴリズムに手を加えて生成するコード自体を少なくするくらいしか思いつかない

112 :デフォルトの名無しさん:2013/09/18(水) 00:15:00.59
よくあるのが、文字列を足していくんじゃなくて、
配列に入れておいて、最後にjoinするって手があるが。

113 :デフォルトの名無しさん:2013/09/18(水) 00:16:28.65
文字を足していくと、新しい領域に足してコピー→前の領域を消す
という流れになるだろうから、GCに時間かかるだろうし。

114 :デフォルトの名無しさん:2013/09/18(水) 00:17:37.42
>>99
> 「できるだけ簡潔に」ね

それはそれで、ライブラリ勝負になっちゃうんだよ。

ある言語ではライブラリがあるから簡単にかけるが、
そうでない言語ではライブラリがないから書かないといけない。

115 :デフォルトの名無しさん:2013/09/18(水) 00:22:36.24
>>114誰もそんなこと言ってない
仕様を満たす最低限のコード書けたのに
それを最適化のためにわざわざコードを長くするのはマイナスじゃないかといってる

116 :デフォルトの名無しさん:2013/09/18(水) 00:25:48.02
>>115
最低限のコードっていうのもなぁ。
それもライブラリ次第なんだよね。

当然ライブラリは汎用でなければならないが、
ライブラリが存在すると仮定するならば、
それを使うことで更に短く出来るかもしれない。

ライブラリまで含めると長くなるが、
もしそのライブラリが存在するならば
短くなる。

117 :デフォルトの名無しさん:2013/09/18(水) 00:28:13.43
>>112,113
そこは分かるんだけど、そこのコストは1/3で
eval自体に2/3近くかかってしまってるんだ

118 :デフォルトの名無しさん:2013/09/18(水) 00:29:44.81
こいつ言ってることが分かんないのか???
最適化のためにコードが長くなっていく方向は最初の趣旨と違ってきてるんじゃねえのかと言ってるんだよ。

119 :デフォルトの名無しさん:2013/09/18(水) 00:39:36.70
お前らWindowsXP並のOSをソースコード1MBぐらいで書いてくれよ

120 :デフォルトの名無しさん:2013/09/18(水) 00:41:49.18
せっかくなのでコンパイル済みのバイトコードをevalするようにした
コードは>>97より少しだけ短くなった
http://codepad.org/sWPDapof

timeコマンドでおおざっぱに計測して、0.15秒程度
Pythonの起動時間のほうが気になるかもしれない

121 :デフォルトの名無しさん:2013/09/18(水) 01:07:14.22
js素直に再帰書いたら激遅すぎて終わらない
やっぱり後でevalのがいいのか

122 :デフォルトの名無しさん:2013/09/18(水) 01:21:27.47
>112,113
文字列連結はV8の十八番中の十八番
http://nothingcosmos.blog52.fc2.com/blog-entry-155.html

123 :デフォルトの名無しさん:2013/09/18(水) 01:27:00.07
>>104の時間はどうだ?
あと速度はマシン性能にも依存するから同一マシンで計るなりしないと
処理系比較としては正確でない。

124 :デフォルトの名無しさん:2013/09/18(水) 01:27:10.22
逆じゃないか
JSは言語としてはいまいちだが、処理系は極めて優秀

125 :デフォルトの名無しさん:2013/09/18(水) 01:30:47.57
>>123
全部で合わせて2秒ほどだね
$ time python3.3 sendmoremoney.py
(('send', 9567), ('money', 10652), ('more', 1085))
(('cherry', 154008), ('grape', 90634), ('apple', 63374))
(('TOKYO', 73413), ('OSAKA', 32040), ('KYOTO', 41373))
(('AOMORI', 790968), ('SAPPORO', 1744969), ('FUKUOKA', 2535937))
(('OSAKA', 89343), ('KOCHI', 48520), ('NAGOYA', 137863))
(('OKAYAMA', 9701030), ('WAKAYAMA', 60701030), ('KANAZAWA', 70402060))
(('YOKOHAMA', 10204757), ('NAGANO', 376730), ('FUKUOKA', 9828027))
(('KAMAKURA', 51915701), ('MORIOKA', 9402451), ('NAGASAKI', 61318152))
(('KUMAMOTO', 58171393), ('TOTTORI', 9399324), ('WAKAYAMA', 67570717))
(('YAMAGATA', 30406080), ('OKAYAMA', 9703040), ('WAKAYAMA', 20703040))
(('YAMAGATA', 63238353), ('YOKOHAMA', 69194323), ('TOTTORI', 5955970))

real 0m2.092s
user 0m0.000s
sys 0m0.015s

126 :78:2013/09/18(水) 04:05:57.67
やっぱり俺がアホだったわ
ここに書いてある通りのコード作るだけで
>>78より約20倍早くなって1秒切るようになった
http://blog.goo.ne.jp/ktonegaw/e/92991be3daa7b3aa871ded96a3c6adcf

同環境で>>73をRuby2.0で実行した時の5倍早い
http://ideone.com/mLFlVf

127 :デフォルトの名無しさん:2013/09/18(水) 07:19:18.04
なんという力技…

128 :デフォルトの名無しさん:2013/09/18(水) 08:57:07.20
読む気失せた

129 :デフォルトの名無しさん:2013/09/18(水) 09:45:28.05
mod2とmod3での条件を求めておけば速いのでは。
文字の重複がないとあまり意味なさそうだが。

130 :デフォルトの名無しさん:2013/09/18(水) 11:22:16.71
フィンランド人の科学者が、「世界一難しい数独」を作り出すことに成功したそうです。
http://i.gzn.jp/img/2010/08/22/hardest_sudoku/sudoku01.jpg
作成には3ヶ月かかったというこの数独ですが、「当てずっぽう」ですぐに解けてしまう人もいるかもしれません。
しかし、このパズルをロジックのみで解くには、普通は数日間はかかるでしょう」とInkala博士は語ってます。
http://gigazine.net/news/20100822_hardest_sudoku/

131 :デフォルトの名無しさん:2013/09/18(水) 11:58:57.46
GIGAZINE 編集者ってアホやろ

132 :デフォルトの名無しさん:2013/09/18(水) 12:41:33.25
Pythonやymlのインデントブロックってさ、一見良さげだけど、ブロックを締める要素がないから、なんか締まりが悪いよな

133 :デフォルトの名無しさん:2013/09/18(水) 12:45:36.48
意味のないendを延々と繰り返す締りの悪い言語よりマシ

134 :デフォルトの名無しさん:2013/09/18(水) 13:05:18.96
インデントは、自信ない。深くなるほど、ますます自信がなくなる

135 :デフォルトの名無しさん:2013/09/18(水) 13:07:36.39
endに意味がないとか言ってるやつってブロックって概念を知らないアセンブラーですか?

136 :デフォルトの名無しさん:2013/09/18(水) 13:15:52.51
「意味」という言葉を正確に使えないだけw

137 :デフォルトの名無しさん:2013/09/18(水) 13:34:14.26
>>123
いちれんのPythonのコードは全パターンを検索しているわけではないから
速度出たところで「ふーん。早く最初の答えが見つけられるね」以上の意味はないよ。
速度を比べるなら少なくともアルゴリズムは統一しないと比較にならない。

138 :デフォルトの名無しさん:2013/09/18(水) 13:34:54.02
>>126
前より大分速くなったみたいだけど、まだV8で
AOMORI+SAPPORO=FUKUOKA
に50秒ぐらいかかるな、うちの環境だと
>>120のPythonだと0.05秒

139 :デフォルトの名無しさん:2013/09/18(水) 13:37:53.14
>>137
ためしに
AOMORI+SAPPORO=FUKUOKAを全部回したら>>120は0.8秒

最後を↓のようにしただけ
for x in solve('AOMORI + SAPPORO = FUKUOKA'):
  print(x)

140 :デフォルトの名無しさん:2013/09/18(水) 14:40:29.34
これなんでPython3.3限定なの?

141 :デフォルトの名無しさん:2013/09/18(水) 15:18:30.33
>>140
Generatorのチェインが簡単に記述できるやつではないかな
for x in g:
 yield x

yield from g
でOKになったやつ

Python使いじゃないので
間違ってたら詳しい人訂正よろしく

142 :デフォルトの名無しさん:2013/09/18(水) 16:50:47.60
>>141
トン

143 :デフォルトの名無しさん:2013/09/18(水) 17:05:48.28
>>120 の枝刈りなくしてブルートフォース版に書き換えて測ったら
send + more = money に30秒かかってクソわらったわ
同じ条件で >>73 は 2.7秒!!
やっぱりRuby最強だな!!!!

144 :デフォルトの名無しさん:2013/09/18(水) 17:11:51.21
evalで威張る

145 :デフォルトの名無しさん:2013/09/18(水) 17:26:24.16
もう各言語十分な速度出たみたいだから、そろそろ良いんじゃね

146 :デフォルトの名無しさん:2013/09/18(水) 18:16:59.73
>>143
そりゃ見返りのために余分な投資してるコードから見返り分だけ意図的に
捨てたら遅くなるだけわな

147 :デフォルトの名無しさん:2013/09/18(水) 18:26:56.20
>>126のリンク先のまんまのコードはくようにしたらどうなる?
明らかに無駄な部分もあるけどこのままで。

148 :デフォルトの名無しさん:2013/09/18(水) 18:28:05.40
同じアルゴリズムで比較しても意味なし。実用性がないと。
実験以外では使わないコードは実験でしかない。

149 :デフォルトの名無しさん:2013/09/18(水) 18:39:13.51
意味が無いとか無粋なこと言うねえ。
面白くなりそうならそれでいいじゃん。
このままアルゴリズム大大会をしたいんならいいけどさ。
自分はコードの雰囲気が見たいんだよね。

遊びでコード書いてる時が一番いい時ってどっかの偉い人も言ってたし。

150 :デフォルトの名無しさん:2013/09/18(水) 18:51:06.14
>>148
リアルだと、お里が知れるから発言控えた方が良いよ

151 :デフォルトの名無しさん:2013/09/18(水) 18:53:57.88
正直に言ってこのスレは初級者の自分のすごくいい経験になってる。
コードも、雑談も、喧嘩も全て。

152 :デフォルトの名無しさん:2013/09/18(水) 19:00:09.12
ここの煽り合戦には長いこと参加してるけれど、
結論を言うと、JavaとC以外は使わない方が良い。
趣味ならRか関数型ぐらいしかメリット無し

153 :デフォルトの名無しさん:2013/09/18(水) 19:06:50.41
趣味にメリット求められましても…

154 :デフォルトの名無しさん:2013/09/18(水) 19:10:36.99
そもそも実利のないことを趣味にするぐらいなら、
プログラミングぐらい馬鹿馬鹿しいものは選ばない
2次元のオッパイでも描いた方がマシ

155 :デフォルトの名無しさん:2013/09/18(水) 19:20:19.23
()付け忘れてて 足し算しかできてなかった
四則演算できるようにしたが、割り算が入ると0除算対応と有理数化する必要があって(元から遅いのにさらに)遅くなる
ついでにループ全体をevalの中に入れて関数コールを削除したら、ほんのちょっぴり速くなった
def solver(q)
; vars = q.scan(/[a-z]/i).uniq
; ind = Hash[vars.zip(vars.size.times)]
; chk1 = q.gsub(/([a-z]+)/i){ '(' + $1.chars.reverse.map.with_index{|e,i| "a[#{ind[e]}]*#{10**i}"}.join('+') + ')'}.sub(/=/,'==')
; chk1 = "begin;#{chk1.gsub(/\(/,'Rational(')};rescue ZeroDivisionError;false;end" if q.match(/\//)
; chk2 = q.scan(/[a-z]+/i).map{|e| "!a[#{ind[e[0,1]]}].zero?" }.join(' and ')
; eval <<-EOS
; ; (0..9).to_a.permutation(vars.size) do |a|
; ; ; yield q.gsub(/([a-z])/i){a[ind[$1]]} if (#{chk1}) and (#{chk2})
; ; end
EOS
end

solver("WOODS + WOODS + WOODS = FOREST"){|a| puts a}
solver("ONE + TWO + FIVE + FIVE + SEVEN = TWENTY"){|a| puts a}
solver("SUCHEN - MACHT = SPASS"){|a| puts a}
solver("KORE * ARE = IROIRO"){|a| puts a}
solver("HE * HE = SHE"){|a| puts a}
solver("NORTH / SOUTH = EAST / WEST"){|b| puts b}
solver("AHHAAH / JOKE = HA"){|b| puts b}

156 :デフォルトの名無しさん:2013/09/18(水) 19:47:07.67
>>152
Cはいいけど、Javaなんて書くやつはアホだ

157 :デフォルトの名無しさん:2013/09/18(水) 20:00:28.77
>>156
後々で自分が馬鹿だって気付くんだろうけど、
そのレス見る限りじゃヒッピー連中にはついていかない方が良いと思う

158 :デフォルトの名無しさん:2013/09/18(水) 20:04:03.48
>>157
後々からバカだと気づくのはお前だと思うよ
10年前ならともかく今の時代にJavaなんてゴミで書き続けたことに

159 :デフォルトの名無しさん:2013/09/18(水) 20:16:59.43
個人的には進化感が好きだからLL気に入ってる
Javaもコミュニティ大きいし結構進化もしてるし、
VMの仕組みとか面白いし、眺めるのは楽しい言語だと思う
書くのは億劫だけど
Cは目的を達成するために仕方無く使う言語で
楽しむ言語じゃないね

160 :デフォルトの名無しさん:2013/09/18(水) 20:31:01.40
Javaはプログラマもいちばんレベルが低いとばれちゃったからなぁ
それでもJava以外知らない上流はかなり多いから仕事はなくならないんだろうけど
http://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20130912/20130912141130.gif

161 :デフォルトの名無しさん:2013/09/18(水) 20:33:00.08
クライアントサイドJSは別だが、一般にはLLだと意外とC使うぞ
それが本来のグルー言語としてのあり方

Java屋とかのほうがC使わない印象あるな
言語自体速いのと、ピュアJavaに重きを置く文化のせいだと思う

162 :デフォルトの名無しさん:2013/09/18(水) 20:53:22.19
自分の知ってる範囲で定義に合わないのは除外して一般と騙っちゃう人って……

163 :デフォルトの名無しさん:2013/09/18(水) 21:04:17.44
>>162
クライアントサイドJSはCを「使う」「使わない」の問題じゃなくて
「仮に使いたくても使えない」特殊なケースなんだから、
Cを「使う」「使わない」の議論からは最初から外れるんだよ

164 :デフォルトの名無しさん:2013/09/18(水) 21:14:43.71
速いのか遅いのか中途半端な言語は属人性が高い
もし遅かったら言語ではなく人が疑われる
誰が書いても遅い or 誰が書いても速い両極端な言語は人に優しい

165 :デフォルトの名無しさん:2013/09/18(水) 21:15:40.38
>>15
@Mathematica

やってみたら何とか解けた。
コード行数72行もあるので貼るのはやめとくお。(´・ω・`)

作成時間:2時間弱
計算時間:6分弱

166 :デフォルトの名無しさん:2013/09/18(水) 21:18:37.51
ideonにtextとして貼り付けたらいい

167 :デフォルトの名無しさん:2013/09/18(水) 21:30:58.60
ふん、やっぱりevalはあまりメリットがないな。
運がいい場合にたまたま使える例がある。
がそれは最善のコードではない。
そういったたぐいか。

168 :165:2013/09/18(水) 21:32:38.82
>>166
じゃあお言葉に甘えて… (´・ω・`)

@Mathematica
http://ideone.com/WBSrx1

169 :デフォルトの名無しさん:2013/09/18(水) 21:37:22.67
>>167
盲目乙

170 :デフォルトの名無しさん:2013/09/18(水) 21:39:53.79
Squeak Smalltalk
ナイーブな総当たりかつハードコードだけど、簡潔かつ速かったので。
1.6秒。

| results check n1 n2 n3 |
results := OrderedCollection new.
check := [:S :E :N :D :M :O :R :Y |
 S > 0 and: [M > 0] and: [
  (n1 := ((S*10+E)*10+N)*10+D)
  +(n2 := ((M*10+O)*10+R)*10+E)
  =(n3 := (((M*10+O)*10+N)*10+E)*10+Y)]].
(0 to: 9) combinations: check numArgs atATimeDo: [:comb |
 comb permutationsDo: [:digits |
  (check valueWithArguments: digits)
    ifTrue: [results add: {#SEND->n1. #MORE->n2. #MONEY->n3}]]]
^results asArray


ついでに Ruby のほぼ直訳版。こちらは 2.0 で 4.9秒。

results = []
n1 = n2 = n3 = 0
check = proc{ |s,e,n,d,m,o,r,y|
s > 0 and m > 0 and
(n1 = ((s*10+e)*10+n)*10+d)+
(n2 = ((m*10+o)*10+r)*10+e)==
(n3 = (((m*10+o)*10+n)*10+e)*10+y) }
(0..9).to_a.permutation(check.arity){ |digits|
results << [[:send, n1], [:more, n2], [:money, n3]] if check[digits] }
p results

171 :デフォルトの名無しさん:2013/09/18(水) 21:40:58.38
いかん。インデントが… ま、いっか。

172 :デフォルトの名無しさん:2013/09/18(水) 21:43:22.40
ハードコートなら速度は前スレの順番の通りになるしか無いな

173 :デフォルトの名無しさん:2013/09/18(水) 21:46:27.51
evalでできることは全てevalを使わないできるからね。
(でないとC言語で作れないものが存在するということになってしまう)

evalを使わないほうが優れている。

174 :デフォルトの名無しさん:2013/09/18(水) 21:50:20.47
速度は言語には依存せず処理系による。
例えばRubyで実装したPythonは、Rubyを超えることはない。

175 :デフォルトの名無しさん:2013/09/18(水) 21:55:00.86


Pythonには複数の実装が存在する。

CPython - 作者によってC言語で書かれたバージョン。通常「Python」といえばこのCPythonを指す。
Stackless Python - Cスタックを使わずに独自のスタック(Pythonスタック)で実装したもの。
Unladen Swallow - GoogleのチームによるPythonの実装
Jython - Java仮想マシン上に移植したもの。PythonからJavaのライブラリを使うことができる。
IronPython - .NET Framework/Monoで動作するPython。C#で実装されている。.NET Frameworkのライブラリを使うことができる。動的言語ランタイム上に構築されているため、既存の.NETアプリケーションへマクロ言語として搭載することも可能となっている。
PyPy - Python (RPython) によるPythonの実装
Psyco - CPython向けのJITコンパイラ
PyMite - 組み込み向けの実装、AVRなどに対応。
tinypy - 同じく組み込み向けの実装。ソースコードが64kb未満と非常に軽量なことが謳われている。

Python - Wikipedia

176 :デフォルトの名無しさん:2013/09/18(水) 21:56:11.18
>>174
> 例えばRubyで実装したPythonは、Rubyを超えることはない。

インタプリタの場合はそれは正しいね。

でもコンパイルしてアセンブラにしてしまえば、
実装言語は関係ないね。

177 :デフォルトの名無しさん:2013/09/18(水) 21:58:12.75
>>173
自分の都合のいい用にしか考えられないようだな
evalとC言語の関係性は無い
evalの有効性はその言語内または同じevalをもつもの同士でのみ比較できる
何故なら最悪evalを使わないとチューリング完全でない言語もありえるから
そうでなくとも>>55ということだアホがwww

178 :デフォルトの名無しさん:2013/09/18(水) 22:00:53.41
>>177
アタナの主張はなに?
evalを使わざるを得ない言語はそりゃあり得るでしょうよ。

そんな言語は劣っているってだけなんだが。

179 :デフォルトの名無しさん:2013/09/18(水) 22:03:33.92
ワロチwwww

180 :デフォルトの名無しさん:2013/09/18(水) 22:04:41.87
>>176
せやな

181 :デフォルトの名無しさん:2013/09/18(水) 22:07:25.43
>>168
中身はわからんが乙

182 :デフォルトの名無しさん:2013/09/18(水) 22:08:12.44
>>175
問題は、その一覧の中にある(CPython を除く)実装が 3.3 に対応しているか?
ってこと

183 :デフォルトの名無しさん:2013/09/18(水) 22:11:42.73
別にそこはどーでもよーないー?
別にPython5で書いてもOREthonで書いても怒らんよ

184 :デフォルトの名無しさん:2013/09/18(水) 22:12:43.19
Mathematicaって商用だよねやっぱり
代わりの環境ってないかな

185 :デフォルトの名無しさん:2013/09/18(水) 22:14:40.55
機能制限されたのなら良く見ないか?

186 :デフォルトの名無しさん:2013/09/18(水) 22:20:41.04
一方でオープンソースのツールというのもある。それが今回、紹介するOctaveやMaximaである。
OctaveはMatlab互換を謳ったフリーの数値計算ツールである。
MaximaはMathematica,Mapleとは互換ではないがLISPで書かれたフリーの数式処理ツールである。
http://ks.ms.u-tokyo.ac.jp/~kyn/maxima.html

Sage (数式処理システム) - Wikipedia
Sage (セイジ) は数学の幅広い処理を扱うソフトウェアである。
扱う処理は計算機代数、組み合わせ、数値計算など多岐に及ぶ。工学的応用に加え基礎科学の研究もカバーする。
Sage は2005年2月24日にフリーソフトウェアとして GNU General Public License の元で初版が公開された。
その開発目的は Magma、Maple、Mathematica 、MATLAB の代替となるフリーかつオープンソースなソフトウェアを提供することであった。
開発は、米ワシントン大学の数学准教授のウィリアム・スタイン (William Stein) が主導して始まった。

187 :デフォルトの名無しさん:2013/09/18(水) 22:20:51.50
MuPAD

188 :デフォルトの名無しさん:2013/09/18(水) 22:26:43.34
さげってwww

189 :デフォルトの名無しさん:2013/09/18(水) 22:27:01.12
SimPy

190 :デフォルトの名無しさん:2013/09/18(水) 22:33:37.03
>>159
スクリプト言語が記述するソフトウェアやライブラリ群は基本的に小さいものが殆ど
移植性の問題を切り捨てる為にJavaが使われ、JVMの性能の為にJavaが使われ、
堅牢性の為にJavaが使われ、ライブラリ質の為にJavaが使われ、大規模開発の為にJavaが使われる。
これが現実であり、リアリストの意見であり、そして現実とはかくも非常なものなのだ。

191 :デフォルトの名無しさん:2013/09/18(水) 22:34:50.77
>>174
問題
ある言語の実装全体の集合から無作為にある実装を選んだとき
その速度は何に依存しているでしょうか

192 :デフォルトの名無しさん:2013/09/18(水) 22:38:10.78
>>190
うん、Javaっていろいろ凄いよね
言語の代表でもいいと思うよ
でも尖ったとこがないから面白くないね

193 :デフォルトの名無しさん:2013/09/18(水) 22:41:21.01
顧客の要求を形にするのが仕事であって、言語仕様自体の面白味なんて入りません。
むしろ、無意味な学習コストとデバッグコストが増えるだけ。これが現実。

194 :デフォルトの名無しさん:2013/09/18(水) 22:44:28.70
”パーソナルリアリティ”ですね
わかりますよ〜

195 :デフォルトの名無しさん:2013/09/18(水) 22:45:49.79
>>190
スクリプト言語が記述するソフトウェアやライブラリ群は基本的に小さいものが殆ど
移植性の問題を切り捨てる為にCOBOLが使われ、堅牢性の為にCOBOL使われ、
ライブラリ質の為にCOBOLが使われ、大規模開発の為にCOBOLが使われる。
これが現実であり、リアリストの意見であり、そして現実とはかくも非常なものなのだ。


何を言いたいかというと、Javaは21世紀のCOBOLだってこと

196 :デフォルトの名無しさん:2013/09/18(水) 22:46:43.21
COBOLは10進数の計算が出来るから銀行で未だにDSLみたく使われてんだよ

197 :デフォルトの名無しさん:2013/09/18(水) 22:49:27.97
固定小数点演算は将来的にどの言語もサポートするだろうね

198 :デフォルトの名無しさん:2013/09/18(水) 22:51:08.08
しません。ライブラリが付くだけ

199 :デフォルトの名無しさん:2013/09/18(水) 22:53:00.77
Ruby版を参考に、eval内で一桁ずつ積和計算するようにしてみた
コードをクリーンアップして実質40行未満になった
http://ideone.com/q6znjO

SEND + MORE = MONEY 〜 TOTTORI + YAGAMATA = YOKOHAMA
全部合わせて0.6秒程度

eval使ってるくせに、足し算以外には対応してない(する気もない)

200 :デフォルトの名無しさん:2013/09/18(水) 22:54:33.19
rubyって10進演算するんだっけ?
COBOLの代替にrubyつかわれないかな

229 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)