1read 100read
2013年17プログラム24: 【JS】スクリプト,バトルロワイヤル39【Perl,Ruby,PHP,Python】 (1001) TOP カテ一覧 スレ一覧 2ch元 削除依頼
VB.NET質問スレ(Part40) (526)
VB.NET質問スレ(Part40) (526)
Smalltalk総合 Squeak Pharo (104)
Metroスタイルアプリ開発について語れ (952)
【TDD】テスト駆動開発【TestFirst】 (271)
最も美しいプログラミング言語は? Part6 (538)

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


1 :2013/09/08 〜 最終レス :Over
前スレ
【PHP,Python】スクリプト,バトルロワイヤル38【Perl,Ruby】
http://toro.2ch.net/test/read.cgi/tech/1378640419/

2 :
プログラム初心者ですが
windows8にPerl入れようとしたら
詰んだ
サポート外?

3 :
Perlのこと全く知らないけど
XAMPP使えば

4 :
ハッキングされてしまった
やっぱサーバー立てるなら確実にログ保存してないとダメだよな
何らかの方法でローカルサーバーがグローバルサーバーにされてた
??? ってなってサーバー再起動したら、元のローカルサーバーに戻った
WEBrickしっかりしよう
特に何も入ってないpcで
アクセスされたファイルはただの萌え画像1個だから別に良いけど
2時間接続されて数百KBしか転送できないような限定的な接続の仕方ってありえるのか
セキュリティってしんどいな〜

5 :
>>4 おめでとう

6 :
足跡に気づいただけマシだ

7 :
ログは別のサーバに保存しておかないとな。

8 :
>>2
そう
JAVAやPythonもWin8では使えない
rubyなら入る

9 :
サバ缶御苦労様

10 :
上げ

11 :
さて、次のお題よろしく。

12 :
PythonをWin8に移植する

13 :
もう皆疲れたよ

14 :
火葬マシンインスコすればいい

15 :
前スレで速度はどうでもいいという人がいたが
速度があると強引なアルゴリズムで強引に解決することもできるんだなと
これとか見て思った
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12109785557

16 :
windowsを窓から投げ捨てれば良い

17 :
互換性なんて嘘なんだから、皆、c++に戻りなよ

18 :
objective-cやlogtalkのようなアプローチで作られた
移植しやすいcのスーパーセットみたいな言語ってありませんか?

19 :
Cは良いけどC++はウンコ
我慢して使ってるけど

20 :
じゃあ次のお題は SEND + MORE = MONEY を
できるだけ簡潔に、しかし、耐えられる時間で解くコード

21 :
>>15
じゃあJSはこれでお願いします
10秒
+αで汎用的

22 :
9567+1085=10652
だから総当り方式だと最初の位を9から仮定していけば
SENDMONEYに特化した最適化が出来るから
速度の比較はもっと沢山問題用意しないとダメかもな

23 :
スタックが足りなくてシンプルに書けないかも

24 :
普通に総当りでどうにでもなった
2秒
ttp://ideone.com/h4fllc

25 :
全くもって汎用性のないコード
>>15みたいに覆面算全般ができないとダメよ

26 :
毎度思うんだけどさ、
問題を解くのが面倒なんだ。
言語の違いを知るだけだろ?
ならある言語で実装して、
それと同じコードを他の言語に
書き換えるだけでいいのではないのか?

27 :
全般とは言わないが
任意桁+任意桁=任意桁
くらいは出来て欲しいね。

28 :
>>26
バトルロワイヤルってのは使い手たちの戦いでもあるから
うちの言語俺が使うとこんなコードで出来まっせってのが大事

29 :
学者じゃないんだから言語の違いなんかには興味ないね。
むしろ他人がどんなコード出してくるかが気になる。

30 :
移植するほうが10倍めんどいと感じるのは俺だけ?
自分で考えて書くのが楽しんじゃないの?

31 :
既存のPHPをssjsに置き換えるのは非常に困難だって、誰かがボヤいてた

32 :
でもさ、大概他の言語で真似出来ちゃうよね?

33 :
>>29
学者は言語の違いなんて興味持ちません
大方、アルゴル系統の言語で一括りどすえ
喧しいのはワナビ族かオタク

34 :
つまらないことで煽っていくスタイルやめようぜ

35 :
しかし、VBAって処理系はいつになったらpythonやruby風に進化するんだろう
いい加減に葬り去ってjsに統一すれば良いのに

36 :
>>35
お前VBA使ってるの?
あれはあのままでいいと思うんだけど。
俺とは関係ない世界の話しだし。

37 :
>>29は地獄のミサワに1ペリカ

38 :
いるよね
さもわかってるかのような口ぶりのワナビ族

39 :
ここは言語のバトルロワイヤルであって
アルゴリズムのバトルロワイヤルじゃないと思うんだが?
アルゴリズムってのは基本的に
どの言語でも同じように実装できるし。

40 :
>>39
>アルゴリズムってのは基本的に
>どの言語でも同じように実装できるし。
何それ背理方?

41 :
いいから黙ってコード書けばよろし

42 :
つまりカリカリチューンが真骨頂と

43 :
書ける書けると言いながら未だコードは2件のみ

44 :
>>42
カリカリチューンして意味ある言語って、c/c++,fortranぐらいじゃないの?
所謂、LLのノウハウって、かつてのBASICやperlのように葬られる運命

45 :
最後にはどれだけライブラリが揃っているかの
勝負になりそう・・・。

46 :
>>15
これevalが活躍できるスクリプト言語ならではのいいお題だと思う
こういうのが上手く書けないと真にスクリプト言語を書けることにならないんじゃない?

47 :
>>44
どこでeval使ってるんだ?

48 :
>>45
やめてよね。LLがjavaに勝てるわけないじゃない
実際はc/javaのライブラリを呼ぶけれど、如何に呼びやすいかってのが最重要な要素
個人的にはrubyがグルー言語としてもコマンドラインツールとしても使えて便利そうに見える
なかのひとたちが絶望して真っ黒になるまでは使えそう

49 :
>>46だった。

50 :
>>15の知恵袋回答参照

51 :
eval is evil
eval is evil
eval is evil
eval is evil

52 :
LLからC/C++で書かれたライブラリ呼べばいいじゃん
つかPythonはそうしているし

53 :
VBAっていまだに宣言と代入が同時にできないんだぜ。
C99以下の言語。

54 :
逆に、C/C++からLLのライブラリも呼べる

55 :
evalが嫌なら構文解析やASTなんかを使わにゃならんだろうが
そりゃeval使ったほうがええな

56 :
evalで作った関数はJITも効くしこういうケースでは有効。

57 :
なんか工夫しないとやっぱり遅いな
from itertools import permutations
def solve(problem):
    variables = compile(problem, '<string>', 'eval').co_names
    letters = ''.join(set(''.join(variables)))
    first_letters = [letters.index(y) for y in set(x[0] for x in variables)]
    perms = (''.join(c) for c in permutations('0123456789', len(letters)))
    candidates = (c for c in perms if c.find('0') not in first_letters)
    for candidate in candidates:
        expr = problem.translate(str.maketrans(letters, candidate))
        if eval(expr):
            yield expr
if __name__ == '__main__':
    print(next(solve('send + more == money')))

58 :
; Common Lisp
(defmacro fukumenzan (symbol expression &optional number original-symbol)
 (let ((num (gensym)))
  `(loop with ,num = (or ,number '(0 1 2 3 4 5 6 7 8 9))
      for ,(car symbol) in ,num
      nconc ,(if (= (length symbol) 2)
           `(loop for ,(cadr symbol) in (remove ,(car symbol),num)
               if ,expression
               collect (pairlis ',original-symbol (list ,@original-symbol)))
           `(fukumenzan ,(cdr symbol) ,expression
            (remove ,(car symbol) ,num)
            ,(or original-symbol symbol))))))
;; m = 0, s = 0 を取り除いてる。
(remove-if-not (lambda (x)
         (loop for y in '(s m)
            never (zerop (cdr (assoc y x)))))
        (fukumenzan (s e n d m o r e y)
              (= (+ (+ (* s 1000) (* e 100) (* n 10) d)
                 (+ (* m 1000) (* o 100) (* r 10) e))
               (+ (* m 10000) (* o 1000) (* n 100) (* e 10) y))))

59 :
Googlemapsについて、どこで質問していいのかわからなかったので、ココで・・・。
会社で制作しているWebページに、Googlemapsを使って地図を貼り付けているんですけど、
今朝ゼンリンから電話があって、「Googlemapsを使うなごるぁ!」ってクレームが入りました。
Googlemaps自体は、特に変な事はしてなく単に座標を指定して地図を表示しているだけです。
話を聞いてみると、「Googleとの協議で、座標を指定して地図を表示するのは、著作権物の二次使用になるので利用料が発生する」
との事でした。
どうも、Googlemapsのトップページにリンクするのはいいんだけど、地図を貼り付けて表示するのは有料になるようです(なった?)。
スレ違いかもしれませんが、他の方のところも同じ様な連絡はなかったでしょうか?
https://developers.google.com/maps/faq?hl=ja#tos_commercial
↑を見る限り問題なさそうなんですが・・・。

60 :
>>59
Web制作板へ逝って、そこで質問汁
ここはスレ違いの板違いだ

61 :
>60
了解しました。

62 :
Squeak Smalltalk
| solve answers |
solve := [:words |
 | letters table int triplets |
 letters := words concatenation asSet.
 table := letters inject: Dictionary new into: [:dic :chr | dic at: chr put: 0; yourself].
 triplets := OrderedCollection new.
 int := [:str | str inject: 0 into: [:acc :chr | acc * 10 + (table at: chr)]].
 (0 to: 9) combinations: table size atATimeDo: [:comb |
  comb permutationsDo: [:digits |
   digits doWithIndex: [:dig :idx | table at: (table keys at: idx) put: dig].
   ((words allSatisfy: [:word | (table at: word first) > 0]) and: [
     (int value: words first) + (int value: words second) = (int value: words third)])
    ifTrue: [triplets add: (words collect: [:key | key -> (int value: key)])]]].
 triplets asArray].
solve value: #(SEND MORE MONEY) "=> {{#SEND->9567 . #MORE->1085 . #MONEY->10652}} "
solve value: #(APPLE GRAPE CHERRY) "=> {{#APPLE->63374 . #GRAPE->90634 . #CHERRY->154008}} "
最初の文字の非ゼロチェックだけの総当たり。
最初の解が見つかったところで終了しないで最後まで(見つからないが)探した場合で
SEND MORE MONEY は 36秒
APPLE GRAPE CHEERRY は 83秒

63 :
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::

64 :
>>59
企業からの圧力なんてあるんだ
こういうのって、google以外のフリーのマップ使えるんだっけ?

65 :
>>59
企業からの圧力なんてあるんだ
こういうのって、google以外のフリーのマップ使えるんだっけ?

66 :
>>59
利用規約の第何条第何項に違反しているのか問いただせ。
まさかとは思うが「ゼンリンの方から来ました」じゃないよな?

67 :
GoogleMapsはアクセス数が規定値未満なら無料
それ以上はGoogleにお金を払う
ゼンリン云々は120%詐欺だから無視

68 :
「座標を指定してGoogle Mapを表示」って、すごくありきたりな使い方
裁判沙汰になったらGoogleへの著作権侵害を第三者が訴えるのかな?
perlですらも商標ゴロに付きまとわれた過去があるんだし、
日本の大手企業を騙るインテリヤクザとかの奇妙な存在ってのも懸念したら?

69 :
googlemapsの件ですが、あっちのスレに書き込む前に解決しました。
結局ゼンリンの担当者の勘違いって事で。
どうもマップのスクショをイメージとして貼り付けてると思ってたらしくて。
スレ違いなのでこの辺で。
お騒がせしました。

70 :
バカ、そんな間違いするわけ無いだろ
騙されてるんだよお前の会社

71 :
>>57に比べれば瞬殺だけど長く汚くなった、あとPython3.3必須
http://codepad.org/GAwaiudN
send + more = money
apple + grape = cherry
両方合わせて3秒程度

72 :
>>71
おいPythonじゃねーじゃ・・Pythonだ

73 :
Rubyでeval
def solver(q)
; vars = q.scan(/[a-z]/i).uniq
; ind = Hash[vars.zip(vars.size.times)]
; qq = q.gsub(/([a-z]+)/i){ $1.chars.reverse.map.with_index{|e,i| "a[#{ind[e]}]*#{10**i}"}.join('+')}.sub(/=/,'==')
; chk1 = eval "->(a){#{qq}}"
; chk2 = eval "->(a){#{q.scan(/[a-z]+/i).map{|e| "!a[#{ind[e[0,1]]}].zero?" }.join(' and ')}}"
; (0..9).to_a.permutation(vars.size) do |a|
; ; yield q.gsub(/([a-z])/i){a[ind[$1]]} if chk1.call(a) and chk2.call(a)
; end
end
solver("send + more = money"){|a| puts a}
#solver("APPLE + GRAPE = CHERRY"){|a| puts a}
全パターン検索して 2.3秒
ループごとにevalさせてたら 57秒かかったので
判定関数をevalで作る方式に
"APPLE + GRAPE = CHERRY" だと4.7秒
一つ見つけたら打ち切りだと 両方あわせて 5.1秒
同環境で >>71 をPython3.3.0 で 2.8秒
ぐぬぬっPython速いな

74 :
>>71
関数型言語っぽくて良い

75 :
JSがゴミすぎる
やはり周回遅れの劣等言語か

76 :
誰かジョンタイターの予言を信じる奴いる?
確か、東北半分ぐらいが住めなくなって、首都が島根。
プログラム言語はMaybeが含まれるものが主流ってヤツ。

77 :
Squeak Smalltalk を >>73 とほぼ同じ方針で
| solve |
solve := [:words |
 | letters shouldntZeros signs check results |
 letters := words concatenation asSet asArray.
 shouldntZeros := (words collect: #first) asSet collect: [:chr | letters indexOf: chr].
 signs := '+=' readStream.
 check := Compiler new evaluate: (String streamContents: [:ss |
  ss nextPutAll: '[', ((letters gather: [:chr | ':', chr, ' ']) as: String), ' | '.
  words do: [:wd |
   ss nextPutAll: (String new: wd size withAll: $().
   wd do: [:chr | ss nextPut: chr] separatedBy: [ss nextPutAll: ')*10+'].
   ss nextPut: $)
  ] separatedBy: [ss nextPut: signs next]. ss nextPut: $]]) in: nil to: nil.
 results := OrderedCollection new.
 (0 to: 9) combinations: letters size atATimeDo: [:comb |
  comb permutationsDo: [:digits |
   ((shouldntZeros allSatisfy: [:idx | (digits at: idx) > 0])
     and: [check valueWithArguments: digits])
    ifTrue: [results add: (words collect: [:wd |
     wd -> (wd inject: 0 into: [:acc :chr | acc * 10 + (digits at: (letters indexOf: chr))])])]]].
 results asArray
].
solve value: #(SEND MORE MONEY)
全パターン検索で SEND + MORE = MONEY は 2.0秒
APPLE + GRAPE = CHERRY が 4.0秒
見つかり次第打ち切りの場合は両方合わせて 4.1秒 と劇的に改善しました。ありがとう。w
参考まで、同マシンで >>73 は SEND + MORE = MONEY が 5.7秒
APPLE + GRAPE = CHERRY が 9.4秒

78 :
JavaScriptで書いてみた
Rubyの3.6倍時間かかる
http://ideone.com/cm0Lup

79 :
やっぱりJSはひでえな。
速度もそうだが何この原始時代のコード……

80 :
JSはそんな悪い言語じゃないんだぜ
Chromeという前提条件つきであればそこらのLLを越えて爆速だし

81 :
お、おう

82 :
>>79
それは書いた奴が悪いだけ。

83 :
>>80,82
よろしく

84 :
煽るぐらいならスルーしろよ

85 :
一番にコードを書いたのに
同じJSerからも批難される>>78哀れ

86 :
>>77
空行が少ないからすごく読みにくいな。

87 :
>>77
まあこういうのは少なくとも2chに貼るもんじゃないだろうね

88 :
JSerはJS最強を唱える奴ほどコード書けないという法則があるよね
コード書けるJSerは欠点も知ってるから最強を唱えない

89 :
>>78
これ実行すると1GBもメモリ食うんだけど……
バカじゃないの?

90 :
メモリはVM入れて16MBまでね。

91 :
最近オブジェクトにオブジェクトを合成してプロパティーを追加する
こんな演算子があったらいいなと思ってるんだけどある言語ある?
obj1 .= obj2

92 :
プロパティがコンフリクトしたときはどっちを優先するの?

93 :
obj <<< obj2 ならあるが

94 :
覆面算を10進に限定せず、何進でもよくして
そのうち最小の進数で解く問題にすれば
アルファベット=文字が増えても出来る。

95 :
覆面算の価値は人に取って面白いってことだから
そうするとわかりにくくなって価値が無くなる

96 :
お前ら暇なら将棋ソフト作ってここで戦おうぜ
http://wdoor.c.u-tokyo.ac.jp/shogi/floodgate.html

97 :
>>71を少しだけ弄った
http://codepad.org/wlta9WRY
send + more = money
apple + grape = cherry
両方合わせて0.3秒程度で出る

98 :
>>97
これって AB + C = BA とかどうなるの?

99 :
>>20を忘れてない?
「できるだけ簡潔に」ね
とことん最適化するならアルゴリズム大会になるから

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【Scheme】Schemeインタプリタ Mosh Part1【Lisp】 (217)
【日本語不自由】Eclipse Pleiades プラグイン (125)
ECMAScript デス 4 (402)
くだすれC++/CLI(初心者用)part2 (723)
Boost総合スレ part10 (141)
HTABOXコア Part3 (703)
--log9.info------------------
カスミカメムシ (377)
ゾウムシってどうだ! (288)
【気がつけば】ショウジョウバエ【そこにいる】 (150)
京都クワ・カブ採集ポイント2匹目 (243)
        毛虫総合スレッド       (713)
★★カブトの幼虫の居場所★★ (109)
大量の幼虫 (121)
★クラフトウッド総合★ (193)
おまいら何処のカワラ菌糸使ってる? (522)
☆☆ダンゴムシについてマターリ語ろうよ!!☆☆ (741)
多摩地区周辺でのクワガタ・カブト採集 2匹目 (765)
逮捕なのだ!! (118)
趙○をSATSUGAIせよ! (363)
クワガタ情報(札幌) (179)
ナナフシ飼育スレッド (264)
クマゼミは害虫です (224)
--log55.com------------------
【在特会】大阪学院大学卒の柿花道明【チーム関西】
ハゲは右翼か
徐裕行 オウム真理教・村井秀夫刺殺事件 07年出獄
【SEALDs】 ほ な み 【民青】
日本の未来を作っていくスレ林明大02
【平塚市在住】チームERO Part4【ミツベ一派の高田w】
☆★ ネトウヨはなぜ無職しかいないのか? ★★
小泉進次郎