◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

プログラミングのお題スレ Part14 ->画像>47枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1558168409/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん2019/05/18(土) 17:33:29.45ID:BWmpW4IF
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
http://2chb.net/r/tech/1549160513/

2デフォルトの名無しさん2019/05/18(土) 21:48:24.46ID:4Z6EQGT/
2get!

3デフォルトの名無しさん2019/05/19(日) 00:58:10.37ID:+tXYNnhs
#!/bin/sh

echo 1乙

4デフォルトの名無しさん2019/05/19(日) 01:17:58.03ID:nN2qvMwg
>>1

>>前スレ920
C
https://ideone.com/bz7Y5P

5デフォルトの名無しさん2019/05/19(日) 08:48:39.78ID:b1S+2jBu
お題
1. URLエンコード
次の文字列をURLエンコード(パーセントエンコーディング)せよ。
但しURLエンコード専用ライブラリだけは使わない事。
‘日 本’
( 全角2文字の間に半角スペースが一つ入ってる.)

元の文字コードはUTF8とする。 この場合は7バイト。
パーセントエンコードとは、バイトの並びについて各バイトを「%XX」(XXは十六進法)という文字列への変換である。 バイト列への変換はライブラリを使っても良い。

正解(アルファベットは小文字も可)
%E6%97%A5%20%E6%9C%AC

2. URLデコード
1でURLエンコードされたものをURLデコードせよ。
URLデコード用ライブラリがあれば使う事。
正解 日 本

6デフォルトの名無しさん2019/05/19(日) 08:56:45.08ID:b1S+2jBu
>>5 python

from urllib.parse import unquote #,quote
url = '日 本'

urle = ''.join([ '%{:x}'.format(b) for b in url.encode('UTF-8') ])

print(urle) # encode same #print(quote(url))
print(unquote(urle)) # decode

''' # 出力
%e6%97%a5%20%e6%9c%ac
日 本
'''

7デフォルトの名無しさん2019/05/19(日) 09:25:01.68ID:c0f8nIXT
何も考えないバカはすぐに飛びつくなぁ
これお題に見せかけた課題か宿題だろw

8デフォルトの名無しさん2019/05/19(日) 10:51:39.18ID:m8K8ZuW2
>>7
出題者本人が回答しているだけだろ。
何も考えない以下略

9デフォルトの名無しさん2019/05/19(日) 11:02:33.76ID:zmnHcBRa
各桁を足し合わせたら引数で与えられた数になるものを5個返す関数を作れ。

例:
sumnum 12
> [39,48,57,66,75] <- 3 + 9 = 12, 4 + 8 = 12, 5 + 7 = 12, 6 + 6 = 12, 7 + 5 = 12

10 ◆QZaw55cn4c 2019/05/19(日) 11:57:55.37ID:8BTe2vpb

11デフォルトの名無しさん2019/05/19(日) 12:12:27.92ID:tgogs/mB
お題
(0,0)(0,999)(999,0)(999,999)のx,y 座標系の中の問題

次の20個の数値を先頭から2個ずつ取ってのx,y の位置に 10個のポイントがあるとする。

[136, 577, 110, 927, 472, 199, 157, 808, 388, 598, 94, 31, 388, 157, 325, 409, 787, 897, 850, 598]

(136,577) (110,927) 〜(850,598) 10ポイント

問題1 外側の正方形
全てのポイントが正方形の内側にあり、正方形の面積が一番小さくなる正方形の4点の座標を示せ。 但し正方形の座標は(999,999)の範囲内とする。
正方形は斜めもあり得る。 正方形の辺は必ず2点以上ポイントに重なっている。

問題2 内側の正方形
全てのポイントが正方形の外側にあり、正方形の面積が一番大きくなる4点の座標を示せ。
正方形は斜めもあり得る。 正方形の辺は必ず2点以上ポイントに重なっている。

問題を難しく感じる人は、斜めの正方形は考えないとしても良い。その旨回答に書いておいてください。

12 ◆QZaw55cn4c 2019/05/19(日) 12:20:45.20ID:8BTe2vpb
お題と回答
>>5 : >>6 >>10
>>9 :

13デフォルトの名無しさん2019/05/19(日) 12:21:01.79ID:sA5/dcdL
宿題スレ行けって

14デフォルトの名無しさん2019/05/19(日) 12:29:21.94ID:tgogs/mB
>>12 おいおい、金儲けにするんかい。 ま、金を払う人がいるなら良いが。 学生の宿題に需要があるかな?
しかしこんなところで宣伝すんな。

15デフォルトの名無しさん2019/05/19(日) 12:30:23.34ID:GWUTnTrp

16デフォルトの名無しさん2019/05/19(日) 13:00:59.70ID:tgogs/mB
>>15 93 だけは正しいけど他は違うだろと思ったが、0を足しても結果は変わらないから詐欺に近いな。
しかしこう言う指摘は、プログラムには重要。

こう言う考え方をするなら、129 12342 なども該当するな。
あまりにも組み合わせが多すぎるから、条件をつけないとな。

問題の条件として各桁に0は含まないとしたり数字は2桁以内とするとか、答えは一番大きな数字を上から順に5つ示せとか。

17デフォルトの名無しさん2019/05/19(日) 13:16:39.44ID:tgogs/mB
出題するときには、答えが一意になる様にした方が良い。
回答する方も戸惑うし、正解が何かも判りづらくなる。

出来るだけ正解は少ない方が良い。 理想的には一つ。

18 ◆QZaw55cn4c 2019/05/19(日) 14:18:25.76ID:8BTe2vpb
>>14
>>12 のどこに宣伝の文言が記載されているのですか?

19デフォルトの名無しさん2019/05/19(日) 14:19:46.32ID:xtBtC84Z
0 -> 1
1 -> 11
2 -> 101
3 -> 1111
4 -> 10001
5 -> 110011
6 -> 1010101
7 -> 11111111
8 -> 100000001
9 -> 1100000011
10 -> 10100000101
11 -> 111100001111
12 -> 1000100010001
13 -> 11001100110011
14 -> 101010101010101
15 -> 1111111111111111
この0から15までを隙間なく並べる
隙間なく並べるとは例えばこの0から2までなら
0 -> 1
1 -> 11
2 -> 101

---1
11
--101

11111
このように1同士がぶつからずにそして0がなくなるように並べる
この場合の解答は0番を3つ右にずらして2番を右に二つずらしているので
(0,3)(1,0)(2,2)となる

20デフォルトの名無しさん2019/05/19(日) 14:36:55.39ID:GWUTnTrp
詐欺は酷くないか
要件は満たしてるし、何より解が存在する全ての値に対して正しい解を出力するだろ
sumnum 1についても対応しようとしたらこれが綺麗な解法の1つであることは疑いようもない事実のはず

21デフォルトの名無しさん2019/05/19(日) 14:45:53.44ID:GWUTnTrp
>>20 と思ったが俺が間違ってた
相違なる数と言われてないから、sumnum 0に対しても[0,0,0,0,0]が解を満たすわな、すまんかった

22 ◆QZaw55cn4c 2019/05/19(日) 14:47:51.69ID:8BTe2vpb
お題と回答
>>5 : >>6 >>10
>>9 : >>15
>>11:
>>19:

23デフォルトの名無しさん2019/05/19(日) 14:55:35.26ID:Ep+P2jjw
>>18 リンク先に書いてあるじゃん、金払えと。
>>19 さっぱりわからん。 何のための説明をしてるの? どんな問題に関係してるの?

24デフォルトの名無しさん2019/05/19(日) 15:06:26.05ID:dHqS2yoD
お題
ペアノの公理、及びペアノに依る加法の定義に従って 128 + 256 を計算せよ。

25 ◆QZaw55cn4c 2019/05/19(日) 15:08:58.77ID:8BTe2vpb
>>23
>リンク先に書いてあるじゃん、金払えと

根拠のないデマを流さないでください
>>12 に記載のアンカーの一つ >>10
>>10 に記載のアンカー(リンクの一つ) http://2chb.net/r/tech/1434079972/56
http://2chb.net/r/tech/1434079972/56 に記載のリンクは https://ideone.com/Nxx41h でこれは ideone へのリンク
リンクをたどれるところのどこにも宣伝は記載していません

>>10 に記載のアンカーの一部 http://2chb.net/r/tech/1434079972/
のうち http://2chb.net/r/tech/1434079972/1 には、ビットコインの請求が発生する手順が定義されており
その定義を満たさないものについては、特に「※本フローに従わない回答掲示についてはビットコインの請求は発生しないものとします。」と注記していますね

したがって、そもそも「金払え」とは書いてませんし、あるいは「ビットコインを払え」とすら書いていませんね

26デフォルトの名無しさん2019/05/19(日) 15:58:31.52ID:+SzmmtV9
>>25 だったら何で金を要求するサイトへのリンクを貼るんだよ。 ビットコインを稼ぎたいための宣伝だろ?

下心がないのなら直接 ideon のリンクを貼れば良いじゃないか。 面倒臭いし。

27 ◆QZaw55cn4c 2019/05/19(日) 16:07:32.50ID:8BTe2vpb
>>26
自分の書いたコードを一箇所に固めているだけですよ
これわりと便利で、3年前のコードなんかすっかり忘れてしまっているのを呼び出せるのです、ああ、あのとき N クイーンやったよね、とか
自分のローカルは一つのディレクトリに放り込んでいるだけだから grep でも検索困難…

28デフォルトの名無しさん2019/05/19(日) 16:17:53.58ID:+SzmmtV9
練習問題のコードなんて使い捨てでいいじゃない。 俺も最初の頃は記録してたけど、もうやめた。
要は必要なときに必要なコードが書けなければそれまでなんだから、最初から勉強し直しても同じ。
昔のコードを見ても自分が理解していないんだから同じ。

沢山練習した方が良い。 基本から見直す事でより理解が深くなる。

29 ◆QZaw55cn4c 2019/05/19(日) 16:51:21.34ID:8BTe2vpb
>>28
ええ、まったくの使い捨てでここ十年くらいやってますが、特定のスレに ideone/codepad のリンクを貼っていたのが、十年たってみると、当初は意図していなかった効用をもたらしてくれているんですね

30デフォルトの名無しさん2019/05/19(日) 18:13:20.80ID:CS5X1kUk
>>23
自己愛性パーソナリティ障害の朝鮮人は相手にすんなよ

31デフォルトの名無しさん2019/05/19(日) 18:40:48.30ID:ibH/HNzv
ネトウヨの相手もすんなよ

32デフォルトの名無しさん2019/05/19(日) 19:37:16.01ID:lXFYvnLZ
>>5 Squeak Smalltalk

'日 本' encodeForHTTP "=> '%E6%97%A5%20%E6%9C%AC' "

'%E6%97%A5%20%E6%9C%AC' unescapePercents "=> '日 本' "

33デフォルトの名無しさん2019/05/19(日) 20:09:21.36ID:b1S+2jBu
>>32 但しURLエンコード専用ライブラリだけは使わない事。

34デフォルトの名無しさん2019/05/19(日) 20:17:22.66ID:w9oOtt0P

35デフォルトの名無しさん2019/05/19(日) 20:20:05.14ID:w9oOtt0P
>>9
Haskell

import Data.Char

main = (print.sumnum) 12

sumnum 0 = [0]
sumnum n |n < 0 = error "Please n >= 0 number"
sumnum n = take 5 [x | x <- [0..], n == sum [read [a]| a <- show x]]

36デフォルトの名無しさん2019/05/19(日) 20:25:29.07ID:iZGlVtrY

37 ◆QZaw55cn4c 2019/05/19(日) 20:30:36.06ID:8BTe2vpb
>>36
いいことを教えてもらいました、Java って uft-16 だけかとおもっていました…

38デフォルトの名無しさん2019/05/19(日) 21:30:05.06ID:GwAz9H1L
>>33
組み込みメソッドの使用禁止とかばかげてる

39 ◆QZaw55cn4c 2019/05/19(日) 21:53:11.12ID:8BTe2vpb

40デフォルトの名無しさん2019/05/19(日) 22:17:12.44ID:6fg2Xy1G
出禁 ID:8BTe2vpb

41デフォルトの名無しさん2019/05/19(日) 22:26:04.27ID:iE9NckHD
正直言ってここに出てくるお題よりAtCoderのお題の方がレベル高いよね

42デフォルトの名無しさん2019/05/19(日) 22:53:21.34ID:nN2qvMwg
11がマジで難しいんだけど、だれか取り組んでる?

43 ◆QZaw55cn4c 2019/05/20(月) 00:00:59.23ID:V0YkyU13
>>41
小ネタの合間にめんどくさいものがポツポツあるかと >>11 とか

44デフォルトの名無しさん2019/05/20(月) 02:35:31.92ID:8xDKheXg

45デフォルトの名無しさん2019/05/20(月) 06:02:09.58ID:poyp5Kqc
漏れなんて、書き捨てのRuby のファイルが、100もある

いつも、Windows10 で、WSL, Ubuntu16.04 から、grep してる

46デフォルトの名無しさん2019/05/20(月) 06:44:50.41ID:Wdi8QIqr
お、ツッコミ待ちか?

47デフォルトの名無しさん2019/05/20(月) 07:53:09.19ID:oPixGX3C
お題
Excelのカラム名でHELLOからWORLDまで表示する

48デフォルトの名無しさん2019/05/20(月) 09:16:55.34ID:m4uUuPD/
>>11 問題1の斜めにしない直行正方形までは出た。

xの範囲= (94, 31) (850, 598) 差 756
yの範囲= (94, 31) (110, 927) 差 896
1辺= 896

直行正方形 (94, 31) (990, 31) (94, 927) (990, 927)
次はこれを傾けていくんだな。これがムズイ。

49デフォルトの名無しさん2019/05/20(月) 13:11:43.52ID:YvmdLvGf
>>11 x,y座標は 0〜999までの整数 辺の長さは斜めになった時は整数とは限らない。

50デフォルトの名無しさん2019/05/20(月) 15:10:01.16ID:poyp5Kqc
プログラミングのお題スレ Part13
http://2chb.net/r/tech/1549160513/920-984

前スレのランク付けの問題は、O(n^2)とかなら簡単なんだが、
ハッシュなどを使って、計算回数を少なくするのに、苦戦してる

入力データ
-6 3 9 5 3 -7
出力・ランク
2 3 5 4 3 1

51デフォルトの名無しさん2019/05/20(月) 18:09:47.07ID:paVMwW+F
ハッシュを使ってんのがperlのじゃねえの

52デフォルトの名無しさん2019/05/20(月) 19:35:06.91ID:SPSZRaeY
ランク付けならmap使うと楽、O(NlogN)が想定解

53デフォルトの名無しさん2019/05/20(月) 19:41:12.77ID:Nk0f6TzG
前スレの場合、みんなハッシュ(set)かソート使ってたじゃん

54デフォルトの名無しさん2019/05/20(月) 19:53:28.74ID:GKW/g8qb
>>53 コンパクトなコーディングはみんなほぼ同じだったね。

python smalltalk java

なんかプログラミング言語を見直しはじめたよ。
複雑にせずに根本を見つめるコーディングが出来る言語というのは素晴らしい。

55デフォルトの名無しさん2019/05/20(月) 19:56:03.94ID:jO4bupva
え、JAVA?

56デフォルトの名無しさん2019/05/20(月) 19:58:48.02ID:HD7QqTZv
>>前スレ988 Perl5
http://2chb.net/r/tech/1549160513/988

sub p {
 $h = int $n/2;
 for ($i=2; $i<=$h; $i++) {
  $s[$i] = 1 unless exists $s[$i];
  do {$s[$i*$_] = 0 for 2..int $h/$i} if $s[$i];
 }
 @p = grep{$s[$_]} 2..$h;
}
sub f {
 my $i = shift;
 my $h = int $i/2;
 for $j (grep{$_ <= $h} @p) {
  return ($j, f($i/$j)) if 0 == $i % $j;
 }
 $i
}
for $n (qw{28 2002 216653}) {
 p;
 my %f; $f{$_}++ for f($n);
 @f = map{$_ . (1 < $f{$_} and "^$f{$_}")} sort{$a<=>$b} keys %f;
 $" = '+';
 print "$n => @f\n";
}

実行
~ $ perl 13_988.pl
28 => 2^2+7
2002 => 2+7+11+13
216653 => 216653

57デフォルトの名無しさん2019/05/20(月) 20:01:05.70ID:oKvxv21R
setにぶちこんで重複削除、リストにしてソートしてマップの値の方にインデックス入れて最後にそのマップ使って出して完成

58デフォルトの名無しさん2019/05/20(月) 20:02:09.53ID:oKvxv21R
ゆっくり書いてたら間にたくさんの書き込みが入った。
俺のことは忘れてくれ。

59デフォルトの名無しさん2019/05/20(月) 20:08:45.44ID:HD7QqTZv
>>56 スマソ、ケアレスミスった、繋ぐ演算子は+ => *だた…orz
sub p {
 $h = int $n/2;
 for ($i=2; $i<=$h; $i++) {
  $s[$i] = 1 unless exists $s[$i];
  do {$s[$i*$_] = 0 for 2..int $h/$i} if $s[$i];
 }
 @p = grep{$s[$_]} 2..$h;
}
sub f {
 my $i = shift;
 my $h = int $i/2;
 for $j (grep{$_ <= $h} @p) {
  return ($j,f($i/$j)) if 0 == $i % $j;
 }
 $i
}
for $n (qw{28 2002 216653}) {
 p;
 my %f; $f{$_}++ for f($n);
 @f = map{$_ . (1 < $f{$_} and "^$f{$_}")} sort{$a<=>$b} keys %f;
 $" = '*';
 print "$n => @f\n";
}

実行
~ $ perl 13_988.pl
28 => 2^2*7
2002 => 2*7*11*13
216653 => 216653

60 ◆QZaw55cn4c 2019/05/21(火) 22:06:24.96ID:vwCWORvF
test

61 ◆QZaw55cn4c 2019/05/21(火) 22:14:40.60ID:vwCWORvF

62 ◆QZaw55cn4c 2019/05/21(火) 22:17:32.24ID:vwCWORvF
お題と回答
>>5 : 6 10 32 36 44
>>9 : 15 34 35
>>11 : 48
>>19 :
>>50, http://2chb.net/r/tech/1549160513/920 :
http://2chb.net/r/tech/1549160513/988 : 59 61

63デフォルトの名無しさん2019/05/21(火) 23:09:46.41ID:Arl7g85c
あなたが解けない C/C++/Java/C#/JavaScript の問題を有償で片付けるスレッドです

64デフォルトの名無しさん2019/05/21(火) 23:10:51.22ID:Arl7g85c
有償で片付けるスレッドに貼り付けるのはよろしくないね
有償で片付けてほしくて出題してるわけじゃないでしょ
問題の窃盗だよ

65デフォルトの名無しさん2019/05/21(火) 23:21:22.29ID:GF2ZpO+x
>>59
Perlは配列に対するexistsやdefinedは呼び出せるが振る舞いは不明確で「強く」非推奨となっているので
この場合では問題なくとも@pはリストではなく代わりにハッシュ%pを使って実装するべきだった

66デフォルトの名無しさん2019/05/21(火) 23:33:57.22ID:GF2ZpO+x
>>65
ハッシュにしたほうが良いのは@pじゃなくて@sの方だったわ

67デフォルトの名無しさん2019/05/21(火) 23:56:06.27ID:Jac4P34c
>>64
バカチョンには何を言っても無駄だと思うよ
聞く耳持たない分からず屋の馬鹿だからバカチョンなんだから

68デフォルトの名無しさん2019/05/22(水) 00:03:24.91ID:qz4w5gXY
>>64
>>27に理由が書かれていたが、一ヶ所に纏めておくと便利だなんてのは個人の都合であって、他の人にはわざわざ間接参照を強いることになるのだから、ほんとに身勝手な奴だと思う。

>>27
纏めておくのは他所で勝手にやれ、このスレにはコードだけを貼れよ。お前の手間なぞ知ったことではない。

69デフォルトの名無しさん2019/05/22(水) 00:04:37.78ID:I/cGK6IK
ネトウヨもコテハンもうぜえわ

70デフォルトの名無しさん2019/05/22(水) 01:11:55.55ID:BQdyZ7fR
>>62 折角まとめるんなら、回答の方も >> でリンクを貼って欲しいな。

71デフォルトの名無しさん2019/05/22(水) 01:20:05.57ID:34FbFmyD
>>70
それは絶対にやらないんじゃね
奴は自分のことしか考えてないから
だから自己愛
永遠に人から煙たがられる存在

72デフォルトの名無しさん2019/05/22(水) 01:29:50.95ID:BQdyZ7fR
>>11 は、多角形の中のドットの内外判定問題と言うのが確立されてるみたいね。
色んな方法があるみたいだが、簡単なのは、
Crossing Number Algorithm
らしい、ググってみると結構コンパクトなコード。
他も見てみたが、問題は境界線上にある点は多角形外と判定する事。

だから、そのままのロジックに手を入れないとした場合、使う側としてどう解決したら良いんだろう。
直行正方形を1ドットずつ大きくしてから回転させる?

それとも、多角形の中の多角形問題の方が適してるのかな?

この問題は結構勉強になる。 問題のイメージを掴むために、図形表示までやり始めたよ。 表示するとより楽しくなる。

73デフォルトの名無しさん2019/05/22(水) 01:32:14.02ID:BQdyZ7fR
>>71 そこまで悪い人間では無さそうだけどな、おだてれば猿も木に登るタイプだとみた。
高い木に登ってもらおう。

74デフォルトの名無しさん2019/05/22(水) 01:33:07.52ID:57KmKoFr
ググラないで考えようとしていたけど、
ヒントを目にしてしまった気分
いやべつにいいけどさ

75デフォルトの名無しさん2019/05/22(水) 01:34:42.74ID:7yGywXQG
Q. クソ問題とは何ですか?
A. 問題の解釈を巡って議論や煽り合いが10レス以上続く、バカが投稿した不備のある問題のことです。

76デフォルトの名無しさん2019/05/22(水) 04:38:05.31ID:qmHT8WH/
>>47 Ruby
("HELLO".."WORLD").each{|v| puts v}

77デフォルトの名無しさん2019/05/22(水) 07:31:41.79ID:O8fu6CiE
>>62
前スレ920 >>4

78デフォルトの名無しさん2019/05/22(水) 07:39:53.22ID:O8fu6CiE
>>72
https://dotup.org/uploda/dotup.org1853571.cpp.html

とりあえず図形表示。
一応内部の点は除去して、凸包を表示するような感じにしてる。
左クリックで頂点追加、右クリックで全削除、中クリックでリセット

操作しながらいろいろ検討してるけど、さっぱり思いつかない。

79デフォルトの名無しさん2019/05/22(水) 10:43:49.16ID:qmHT8WH/
>>9 Ruby

def sumnum(n)
(0..4).map{|i| ("1"*n +"0"*i).to_i}
end

80デフォルトの名無しさん2019/05/22(水) 12:02:59.73ID:75T3S5z+
>>78  
Windows じゃないと動かないようだけど見やすいようにideonに張ってみた。
https://ideone.com/gJVREH

凸包と言うんだね。

2次元の凸包を求めるアルゴリズムと応用について
https://matsu7874.hatenablog.com/entry/2018/12/17/025713
凸包(convex hull)とは,与えられた点をすべて包含する最小の凸多角形(凸多面体)のこと.

--------
凸包が求められても難しいね。 凸包内の点を削除して計算時間を削減できる効果はあるかもしれないけど。

81デフォルトの名無しさん2019/05/22(水) 12:11:47.61ID:/472uU17
凸包が求められれば、頂点の並びも整列するので
形状を分割して余弦定理とかから導けないかなって思ったんだよね

82デフォルトの名無しさん2019/05/22(水) 12:13:57.61ID:pwChZnOT
>>47
画面の幅が足りなくて表示できません。

83デフォルトの名無しさん2019/05/22(水) 12:34:28.61ID:/472uU17
ちなみに、最小を求めるだけならある角度から見た凸包の一次元への投影と、直交する角度からの一次元への投影を180度回しながら調べれば出せると思うけど、分割の粒度の問題で、本当に最小が取れる保証はないね

84デフォルトの名無しさん2019/05/22(水) 13:45:45.60ID:pwChZnOT
>>76
試しに Perl でも 文字列 .. 文字列 をやってみたらできたよ。
こんなことできたとは。知らないまま20年以上使ってたよ。w

85502019/05/22(水) 19:14:59.08ID:1CosvZF6
>前スレの920
頭を使った。Ruby で、

str = "-6 3 9 5 3 -7"

original_ary = str.split.map!( &:to_i ) # 各要素は整数型
hash = original_ary.each_with_object( { } ) { | num, h | h[ num ] = true }

sorted_ary = hash.sort # キーでソートする
#=> [[-7, true], [-6, true], [3, true], [5, true], [9, true]]

# Enumerator#with_index(offset = 0)
sorted_hash = sorted_ary.each.with_index( 1 ) { | elem, idx | elem[ 1 ] = idx }.to_h

# p sorted_ary
#=> [[-7, 1], [-6, 2], [3, 3], [5, 4], [9, 5]]

# p sorted_hash
#=> {-7=>1, -6=>2, 3=>3, 5=>4, 9=>5}

results = original_ary.map{ | num | sorted_hash[ num ] }
puts results.join( " " ) #=> 2 3 5 4 3 1

86 ◆QZaw55cn4c 2019/05/22(水) 19:16:47.93ID:Kujyr1dD
>>70-71
アンカーが多すぎると投稿できないのです、ただそれだけです

87 ◆QZaw55cn4c 2019/05/22(水) 19:17:22.29ID:Kujyr1dD
>>73
>おだてれば猿も木に登るタイプだとみた。
痛いところを突きますね…

88502019/05/22(水) 19:26:33.00ID:1CosvZF6
>2 3 5 4 3 1

これが、
2 3 6 5 3 1

みたいに、4 が無くなる・飛ばされるランキングだと、もっとややこしい!w

89デフォルトの名無しさん2019/05/23(木) 09:23:03.57ID:mvOL8yN3
前スレの920 Ruby



def f(a)
b={}
a .dup.sort.each{|v|b[v]=b.size+1 if not b.key v}
a.map{|v|b[v]}
end

p f([-6,3,9,5,3,-7])
[2, 3, 5, 4, 3, 1]

90デフォルトの名無しさん2019/05/23(木) 12:32:00.03ID:vYeVJ6FZ
>>34
>>79

一休さんみたいなトンチの効いた回答で、それはそれで楽しめました。

改めて問題を書き直します。

各桁を足し合わせたら引数で与えられた数になる数の集合全体から小さい順に(可能なら=0対策)5個返す関数を作れ。

例:
sumnum 12
> [39,48,57,66,75] <- 3 + 9 = 12, 4 + 8 = 12, 5 + 7 = 12, 6 + 6 = 12, 7 + 5 = 12

91デフォルトの名無しさん2019/05/23(木) 12:33:09.81ID:vYeVJ6FZ
>>34>>15の間違い

92デフォルトの名無しさん2019/05/23(木) 13:50:07.86ID:qjdiTxTD
苗字で漢字の「口」を「くち」ではなく「ぐち」と読むのは
井口、矢口、田口の3つだけ
これマメな

93デフォルトの名無しさん2019/05/23(木) 15:16:07.91ID:j56nuYko
>>92
川口
ハイ論破

94デフォルトの名無しさん2019/05/23(木) 16:02:19.12ID:4YO7mLFH
ただの荒らし 、蒸し蒸し by 山口

95デフォルトの名無しさん2019/05/23(木) 17:19:50.40ID:TKS1qOdO

96デフォルトの名無しさん2019/05/23(木) 18:37:52.11ID:TjazBdz3
>>90
Haskell

import Data.Char要らんかった。
take 5も問題と違うけど外に追い出した方が応用効きそう。

main = (print.take 5.sumnum) 12

sumnum 0 = [0]
sumnum n |n < 0 = error "Please n >= 0 number"
sumnum n = [x | x <- [1..], n == sum [read [a]| a <- show x]]


>>95
OCamlで無限リスト処理どうすんだろと疑問だったので、後で精読させて頂きますm(_ _)m

97 ◆QZaw55cn4c 2019/05/23(木) 18:40:43.46ID:QGT5qlDg
>>92
谷口
関口
合口・相口・藍口・青口・赤口・秋口・明口… https://name.sijisuru.com/Fname/search?option=1&moji=%E5%8F%A3&pages=0&kanjilen=0&kanalen=0&romalen=0

98デフォルトの名無しさん2019/05/23(木) 19:39:17.51ID:4YO7mLFH
>>97 もう相手にすんな。お題にするなら、

その9つの名前の読み仮名のあいうえお順に並べよ。

谷口・関口・合口・相口・藍口・青口・赤口・秋口・明口

読み仮名を持ってくるのが難しそうだけどな。

99デフォルトの名無しさん2019/05/23(木) 21:02:26.03ID:W0nkxFNY
aを要素の型がIntである長さNの配列、k、cを型がIntである変数とする。
{P}a[a[k]]=c;{a[a[k]]!=c}
Hoare tripleが成立するためのなるべく弱いPを示せ

100 ◆QZaw55cn4c 2019/05/23(木) 21:06:01.11ID:QGT5qlDg
>>99
教えてください
P は何ですか?
{ } とは何を表しているのですか?

>{P}a[a[k]]=c;{a[a[k]]!=c}

101デフォルトの名無しさん2019/05/23(木) 21:17:28.82ID:W0nkxFNY

102デフォルトの名無しさん2019/05/23(木) 21:38:26.52ID:iqEot/XY
sumnum、引数に10000とか与えたら答え返ってこなさそう
引数に1億とかは文字列長が千万とかになるから無理でも仕方ないけど、1万位は対応したいね

103デフォルトの名無しさん2019/05/23(木) 23:35:27.08ID:+TqLtPkO
>>102
下位桁に9が並ぶだけじゃね?

104デフォルトの名無しさん2019/05/23(木) 23:45:44.19ID:iqEot/XY
>>103 知らない言語ばかりでよく読めてないんだが、今までの提出って1から順に試してね?
それだと当然結果が返ってこないが
違ったらすまん

105デフォルトの名無しさん2019/05/24(金) 00:19:46.43ID:25j6Q5My
QZは相変わらず頭が悪い癖にプライドだけは高いな

106デフォルトの名無しさん2019/05/24(金) 00:38:02.83ID:3viueN7b
>>92は「必ずレスがもらえるレス」として有名な文らしいな
案の定わんさかレスの付いてること

107デフォルトの名無しさん2019/05/24(金) 01:07:12.76ID:/EuQv4hQ
>>99 何語?

108デフォルトの名無しさん2019/05/24(金) 01:41:24.00ID:/EuQv4hQ
>>11 閑話休題 凸包
プログラミングのお題スレ Part14 	->画像>47枚

109デフォルトの名無しさん2019/05/24(金) 02:55:43.78ID:/EuQv4hQ
>>108 この凸包図を眺めてると、正解の正方形は 左辺の一番長い線を1辺とした正方形になりそうだが、それをどうやって求めるのか。

How to find the minimum-area-rectangle (MAR) fitted on the given points?
https://gis.stackexchange.com/questions/22895/finding-minimum-area-rectangle-for-given-points

最初に書いた人は、凸包を求めて重心を中心として1度ずつ回転させるやり方を考えたらしいが、下の方で良い解法のコメントが付いてた。

プログラミングのお題スレ Part14 	->画像>47枚

少しずつ回転させるのではなくて、長方形の1辺は必ず凸包の辺のどれかと重なってるはずだから、凸包の辺の角度だけをとって試せば良いとのこと。
これなら重心を求める必要もないし、時間はかからない。

長方形が求まったら、座標系の中に入る正方形にすれば良いがはみ出してたら、参考解かな。

このアルゴリズムは、
The algorithm you are looking for is known in polygon generalisation as "smallest surrounding rectangle".
凸包最小長方形の解法とでも言えば良いのかな。

110デフォルトの名無しさん2019/05/24(金) 06:39:15.19ID:UW+Tk6Dp
>>109
正方形を求める場合で凸包がひし形の場合、その方法はうまくいかないきがす?

111デフォルトの名無しさん2019/05/24(金) 09:32:40.58ID:0g5oPW7D
今回のアルゴリズムは、最小の正方形を求める方法だけじゃなくて、グラフの境界との交差判定もあるから
最小の求め方だけではなく、2番め以降についても正しく判定できないといけない上に、回答が一つに定まらない可能性もあるんだよね

112デフォルトの名無しさん2019/05/24(金) 09:46:10.43ID:SalRbGaI
与えられた点を全て含む凸包全体からなる集合の濃度は明らかに連続体濃度なんだから2番目なんて存在しないぞ

113デフォルトの名無しさん2019/05/24(金) 10:02:31.57ID:SalRbGaI
あ、凸包じゃなくて凸多角形な

114デフォルトの名無しさん2019/05/24(金) 10:35:59.86ID:0g5oPW7D
>>112
書いててあれ?と思てったけど、たしかにそうだ。
俺では解けなさそうだ。

115デフォルトの名無しさん2019/05/24(金) 11:52:18.57ID:MR3FxfYE
>>111 1辺から正方形を作る場合は、その正方形が全ての凸包の頂点を全て含むような大きさでなければならない。
この場合6辺あるから、そのような6つの正方形を作ってその中の最小のものを求めることになる。

面倒なのはそれが座標系に入らないといけないから場合によっては辺に平行移動しないといけないかも知れない。
すると、>>112 の言うように正方形の位置は変わるかもしれないけど、辺の長さが合ってれば正解だろうね。
(この場合は座標系に入るだろうからとりあえずは平行移動は考えないでも良いかも)

116デフォルトの名無しさん2019/05/24(金) 12:12:24.29ID:MR3FxfYE
>>110 どんな凸包体でも求まるよ。 1辺の長さが凸包体の辺の長さと一致させるわけじゃないよ。

全ての頂点を含む直方体を作る。 この求め方も工夫が必要そう。
1辺を伸ばした直線上に全ての頂点から垂線を引いて、一番外の距離を直方体の1辺とするんだろうな。
同じように他辺も求める。

117デフォルトの名無しさん2019/05/24(金) 12:51:12.25ID:Nda2hmui
>>116
雑な書き殴りですまん
プログラミングのお題スレ Part14 	->画像>47枚

さらにややこしいのは、凸包の頂点が正方形の辺上に位置して、
頂点に存在しないことのほうが多いのも難くする要因の一つ

118デフォルトの名無しさん2019/05/24(金) 13:09:58.32ID:MR3FxfYE
>>117 あ、そうか。

119デフォルトの名無しさん2019/05/24(金) 18:00:01.45ID:ZpEEE6+U
>>11 色々見たけど、画像認識の境界を探す為にある程度人気のある話題みたいだが、完全を求めるのではなく、だいたいで良いからスピードの速いのが良いとしてるみたいだね。 境界自体があやふやなものだし。

厳密にやるとしても、長方形と正方形ではかなり条件が違う。

全ての点が正方形に入るのなら、一つの候補は凸包の対角上の点が一番離れているところを正方形の対角とした正方形が一つの候補ではないだろうか。
直交正方形が最大だからそこまでを調べれば良いけど、それだけをしらみつぶしに調べてどれだけ時間がかかるかだな。
それをはみ出る点がある場合にどうゴニョゴニョするかだけど、条件が絞れればスピードは速くなる。

一般的にはポイント数は膨大な数だから、条件を絞り込む方法が重要になりそう。


しかし、こんな例題はどこにでもありそうで殆どサンプルがないのは時間がかかりすぎて簡単に試せないのかな、今回はポイント数が少ないからそれほどではないとは思うけど。

120デフォルトの名無しさん2019/05/24(金) 18:05:08.54ID:ZpEEE6+U
>>119 文章が変な順になっててごめん。

全ての点が正方形に入るのなら、一つの候補は凸包の対角上の点が一番離れているところを正方形の対角とした正方形が一つの候補ではないだろうか。

それをはみ出る点がある場合にどうゴニョゴニョするかだけど、条件が絞れればスピードは速くなる。

直交正方形が最大だからそこまでを調べれば良いけど、それだけをしらみつぶしに調べてどれだけ時間がかかるかだな。

121デフォルトの名無しさん2019/05/24(金) 18:27:30.58ID:ukAKIdqH
計算両を優先するなら、座標軸を基準にとって大雑把に取るべきじゃないのかな
これなら、ゲームのコリジョン検出で使われる方法そのままだし

122デフォルトの名無しさん2019/05/24(金) 18:52:18.42ID:U6fsa1pB
点の数は関係なくね?
任意の3点を選んでその内部にある点は無いものとして考えても同じなんだから

123デフォルトの名無しさん2019/05/24(金) 19:02:15.89ID:U6fsa1pB
いや、関係あるか
頂点のめちゃくちゃ多い凸多角形になったら計算量明らかに増えるもんな

124デフォルトの名無しさん2019/05/25(土) 18:51:08.08ID:CqCnLPQm
>>11 なんかかなりの難問に思えてきたな。 解法への足がかりが見えない。 凸包までは比較的簡単にたどり着いたけどそれからが闇の中。
凸包の重心が何か使えるだろうか?

最小包含円 という言葉もあるようだが、少なくとも 正方形の辺はこの円の直径以下。

125デフォルトの名無しさん2019/05/25(土) 19:01:54.73ID:CqCnLPQm
>>124 取り敢えずこの問題を 『凸包正方形 』
とでも呼びますか。

126デフォルトの名無しさん2019/05/25(土) 20:41:54.94ID:jq9htnT/
三角形に分解してみる?

127デフォルトの名無しさん2019/05/25(土) 21:12:11.52ID:9LrJCzXS
>>112
連続体濃度でかつ二番目に小さな値のある集合
{0, 1} ∪ (2, ∞)

128デフォルトの名無しさん2019/05/25(土) 22:13:07.00ID:u9k+LAdR
>>11
ポイントが(136,577), (110,927)の2つだけならどうなる?

129デフォルトの名無しさん2019/05/25(土) 22:15:27.93ID:9LrJCzXS
>>128
それ対角線の正方形しかないやろ

130デフォルトの名無しさん2019/05/26(日) 01:40:13.82ID:y3Cc4Dz0
以下はオレなりに考えた仮説
1)2点で正方形の内側に接するのは何らかの平べったい形、対角にて頂点が接するので45°
2)3点で接するのは、細長い三角形あるいはそれに準じた形、角度の計算は…?不明
 または凸包の一辺が正方形の辺に接する形
3)4点で接するのは、細長い三角形あるいはそれに準じた形、角度の計算は…?不明
 または凸包の一辺が正方形の辺に接する形
4)5点以上で接する場合は、凸包の一辺が正方形の辺に接する

「対角にて頂点が接する形の角度は45°」
「凸包の一辺が正方形の辺に接する形は凸包の辺の角度」
これらは角度が分かるので回転変化・逆変換を使って
外側の最小の斜め正方形の候補を探索することは可能だが、
角度が良く分からない形の解法が、まだ見出せていない

131デフォルトの名無しさん2019/05/26(日) 01:44:08.13ID:y3Cc4Dz0
凸包の一辺が正方形の辺に接するおよび二点が対角に接する場合に限った解法
なら難しくないんだがな…

132デフォルトの名無しさん2019/05/26(日) 01:59:58.39ID:tjjSxTb8
>>129
それは正方形が(0,0)-(999,999)からはみでてまうな

1331302019/05/26(日) 17:27:59.46ID:XOxN6P/y
>>11 外側の正方形 Perl5、但し>>130>>131の「凸包の一辺が正方形の辺に接する」または「細い菱形のような形が
正方形の対角2点で接する」場合について求てみた。凸包を求める処理は略し、二点間の辺を総当りで計算している。
use List::Util qw{min max pairkeys pairvalues};
@s=qw{136 577 110 927 472 199 157 808 388 598 94 31 388 157 325 409 787 897 850 598};
@X = pairkeys @s; @Y = pairvalues @s;
sub sp {$_[0]*$_[2] + $_[1]*$_[3]}
sub rt {
 @e = (cos $th, -sin $th); @f = (sin $th, cos $th);
 my @x = map{sp @e, $X[$_], $Y[$_]} 0..$#X;
 my @y = map{sp @f, $X[$_], $Y[$_]} 0..$#Y;
 @x = (min(@x), max(@x)); @y = (min(@y), max(@y));
 $h = (max $x[1] - $x[0], $y[1] - $y[0]) / 2;
 $cx = ($x[1] + $x[0]) / 2; $cy = ($y[1] + $y[0]) / 2;
 @x = ($cx - $h, $cx + $h); @y = ($cy - $h, $cy + $h);
 ($e[1], $f[0]) = (-$e[1], -$f[0]);
 @x = map{sp @e, $x[$_], $y[$_]} 0..1;
 @y = map{sp @f, $x[$_], $y[$_]} 0..1;
 @x = (min(@x), max(@x)); @y = (min(@y), max(@y));
 (\@x, \@y, 2*$h) }
for $i (0..@X-2) { for $j ($i+1..$#X) {
 ($dx, $dy) = ($X[$j] - $X[$i], $Y[$j] - $Y[$i]);
 ($dx, $dy) = (-$dx, -$dy) if $dx < 0;
 $l = sqrt($dx*$dx + $dy*$dy);
 $th = $dx > abs($dy) ? -atan2($dy, $dx) : atan2($dx, $dy);
 ($X, $Y, $w) = &rt;
 push @t, +{i,$i,j,$j,dx,$dx,dy,$dy,l,$l,th,$th,X,$X,Y,$Y,w,$w};
 $th += 3.14159265358979/4; ($X, $Y, $w) = &rt;
 push @t, +{i,$i,j,$j,dx,$dx,dy,$dy,l,$l,th,$th,X,$X,Y,$Y,w,$w};
} }
@t = sort{$a->{w}<=>$b->{w}} grep{0<=$_->{X}[0]and$_->{X}[1]<=999 and 0<=$_->{Y}[0]and$_->{Y}[1]<=999} @t;
do {@x = @{$t[$_]->{X}}; @y = @{$t[$_]->{Y}};
 printf"%d: (%7.3f, %7.3f)-(%7.3f, %7.3f): w=%3.3f\n",$_+1,$x[0],$y[0],$x[1],$y[1],$t[$_]->{w}} for 0..5;

134デフォルトの名無しさん2019/05/26(日) 17:29:47.07ID:XOxN6P/y
>>133 の実行例

~ $ perl 14_11.pl
1: ( 48.607, 27.043)-(863.062, 983.177): w=891.576
2: ( 45.920, 20.484)-(869.713, 849.356): w=892.353
3: ( 32.627, 29.170)-(901.066, 949.457): w=895.142
4: ( 24.000, 31.000)-(920.000, 927.000): w=896.000
5: ( 24.000, 31.000)-(920.000, 927.000): w=896.000
6: ( 14.845, 32.823)-(931.567, 907.397): w=896.130


検算してないので、もしバグっていたらゴメンチャイ、(ゝω・) テヘペロ

135デフォルトの名無しさん2019/05/26(日) 17:38:51.62ID:XOxN6P/y
>>133 スマソ、「正方形の4点の座標を示せ」と書かれていたので、出力処理を少し修正
use List::Util qw{min max pairkeys pairvalues};
@s=qw{136 577 110 927 472 199 157 808 388 598 94 31 388 157 325 409 787 897 850 598};
@X = pairkeys @s; @Y = pairvalues @s;
sub sp {$_[0]*$_[2] + $_[1]*$_[3]}
sub rt {
 @e = (cos $th, -sin $th); @f = (sin $th, cos $th);
 my @x = map{sp @e, $X[$_], $Y[$_]} 0..$#X;
 my @y = map{sp @f, $X[$_], $Y[$_]} 0..$#Y;
 @x = (min(@x), max(@x)); @y = (min(@y), max(@y));
 $h = (max $x[1] - $x[0], $y[1] - $y[0]) / 2;
 $cx = ($x[1] + $x[0]) / 2; $cy = ($y[1] + $y[0]) / 2;
 @x = ($cx - $h, $cx + $h); @y = ($cy - $h, $cy + $h);
 ($e[1], $f[0]) = (-$e[1], -$f[0]);
 @x = map{sp @e, $x[$_], $y[$_]} 0..1;
 @y = map{sp @f, $x[$_], $y[$_]} 0..1;
 @x = (min(@x), max(@x)); @y = (min(@y), max(@y));
 (\@x, \@y, 2*$h) }
for $i (0..@X-2) { for $j ($i+1..$#X) {
 ($dx, $dy) = ($X[$j] - $X[$i], $Y[$j] - $Y[$i]);
 ($dx, $dy) = (-$dx, -$dy) if $dx < 0;
 $l = sqrt($dx*$dx + $dy*$dy);
 $th = $dx > abs($dy) ? -atan2($dy, $dx) : atan2($dx, $dy);
 ($X, $Y, $w) = &rt;
 push @t, +{i,$i,j,$j,dx,$dx,dy,$dy,l,$l,th,$th,X,$X,Y,$Y,w,$w};
 $th += 3.14159265358979/4; ($X, $Y, $w) = &rt;
 push @t, +{i,$i,j,$j,dx,$dx,dy,$dy,l,$l,th,$th,X,$X,Y,$Y,w,$w};
} }
@t = sort{$a->{w}<=>$b->{w}} grep{0<=$_->{X}[0]and$_->{X}[1]<=999 and 0<=$_->{Y}[0]and$_->{Y}[1]<=999} @t;
do {@x = @{$t[$_]->{X}}; @y = @{$t[$_]->{Y}};
 printf"%d: (%6.3f, %6.3f), (%7.3f, %6.3f), (%6.3f, %7.3f), (%7.3f, %7.3f): w=%3.3f\n",
  $_+1,$x[0],$y[0],$x[1],$y[0],$x[0],$y[1],$x[1],$y[1],$t[$_]->{w}} for 0..5;

136デフォルトの名無しさん2019/05/26(日) 17:40:00.54ID:XOxN6P/y
>>135 実行結果

~ $ perl 14_11.pl
1: (48.607, 27.043), (863.062, 27.043), (48.607, 983.177), (863.062, 983.177): w=891.576
2: (45.920, 20.484), (869.713, 20.484), (45.920, 849.356), (869.713, 849.356): w=892.353
3: (32.627, 29.170), (901.066, 29.170), (32.627, 949.457), (901.066, 949.457): w=895.142
4: (24.000, 31.000), (920.000, 31.000), (24.000, 927.000), (920.000, 927.000): w=896.000
5: (24.000, 31.000), (920.000, 31.000), (24.000, 927.000), (920.000, 927.000): w=896.000
6: (14.845, 32.823), (931.567, 32.823), (14.845, 907.397), (931.567, 907.397): w=896.130

検算してないので、もしバグっていたらゴメンチャイ、(ゝω・) テヘペロ

137デフォルトの名無しさん2019/05/26(日) 17:44:33.42ID:XOxN6P/y
>>136
なんか変、バグってるスマソ、直すことが出来たら書き込みます

138デフォルトの名無しさん2019/05/26(日) 18:33:59.00ID:XOxN6P/y
>>11 外側の正方形 Perl5 凸包の辺が正方形の辺に接するまたは対角二点で接する場合、>>135の露骨なバグ一個修正
use List::Util qw{min max pairkeys pairvalues};
@s=qw{136 577 110 927 472 199 157 808 388 598 94 31 388 157 325 409 787 897 850 598};
@X = pairkeys @s; @Y = pairvalues @s;
sub sp {$_[0]*$_[2] + $_[1]*$_[3]}
sub rt {
 @e = (cos $th, -sin $th); @f = (sin $th, cos $th);
 my @x = map{sp @e, $X[$_], $Y[$_]} 0..$#X;
 my @y = map{sp @f, $X[$_], $Y[$_]} 0..$#Y;
 @x = (min(@x), max(@x)); @y = (min(@y), max(@y));
 $h = (max $x[1] - $x[0], $y[1] - $y[0]) / 2;
 $cx = ($x[1] + $x[0]) / 2; $cy = ($y[1] + $y[0]) / 2;
 @x = ($cx - $h, $cx + $h, $cx - $h, $cx + $h);
 @y = ($cy - $h, $cy - $h, $cy + $h, $cy + $h);
 ($e[1], $f[0]) = (-$e[1], -$f[0]);
 @x = map{sp @e, $x[$_], $y[$_]} 0..3;
 @y = map{sp @f, $x[$_], $y[$_]} 0..3;
 (\@x, \@y, 2*$h) }
for $i (0..@X-2) { for $j ($i+1..$#X) {
 ($dx, $dy) = ($X[$j] - $X[$i], $Y[$j] - $Y[$i]);
 ($dx, $dy) = (-$dx, -$dy) if $dx < 0;
 $l = sqrt($dx*$dx + $dy*$dy);
 $th = $dx > abs($dy) ? -atan2($dy, $dx) : atan2($dx, $dy);
 ($X, $Y, $w) = &rt;
 push @t, +{i,$i,j,$j,dx,$dx,dy,$dy,l,$l,th,$th,X,$X,Y,$Y,w,$w};
 $th += 3.14159265358979/4; ($X, $Y, $w) = &rt;
 push @t, +{i,$i,j,$j,dx,$dx,dy,$dy,l,$l,th,$th,X,$X,Y,$Y,w,$w};
} }
@t = sort{$$a{w}<=>$$b{w}} grep{0<=min@{$_->{X}}and max@{$_->{X}}<=999 and 0<=min@{$_->{Y}}and max@{$_->{Y}}<=999} @t;
do {@x = @{$t[$_]{X}}; @y = @{$t[$_]{Y}};
  printf"%d: (%7.3f,%7.3f), (%7.3f,%7.3f), (%7.3f,%7.3f), (%7.3f,%7.3f): w=%7.3f, th=%7.3f°\n",
   $_+1,$x[0],$y[0],$x[1],$y[1],$x[2],$y[2],$x[3],$y[3],$t[$_]{w},$t[$_]{th}*180/3.14159265358979} for 0..4;

139デフォルトの名無しさん2019/05/26(日) 18:37:35.18ID:XOxN6P/y
>>138 実行例

~ $ perl 14_11.pl
1: ( 32.627, 29.170), (927.382, 55.475), ( 6.310,923.152), (901.066,949.457): w=895.142, th= -1.685°
2: (920.000,927.000), ( 24.000,927.000), (920.000, 31.000), ( 24.000, 31.000): w=896.000, th=180.000°
3: ( 24.000, 31.000), (920.000, 31.000), ( 24.000,927.000), (920.000,927.000): w=896.000, th= 0.000°
4: ( 14.845, 32.823), (910.733, 11.994), ( 35.680,928.226), (931.567,907.397): w=896.130, th= 1.332°
5: ( 18.819, 32.332), (914.819, 16.335), ( 34.819,928.046), (930.819,912.049): w=896.143, th= 1.023°

ちゃんと検算してないので、もしまだバグがいたらゴメンチャイ、(ゝω・) テヘペロ

検算方法考えた方がいいのかも。ちなみにwは正方形の幅、thは回転各[deg]

>>11 の内側の正方形についてはまだ考えていない。

140デフォルトの名無しさん2019/05/26(日) 20:05:21.06ID:MaF2nVvH
>>11 おもろいな、初級問題だと文法の練習としてそれなりに勉強になる。
こう言うのはそれを超えていろんなパッケージ/ライブラリを駆使することになるから一皮剥けて勉強になる。

解けるか解けないか判らないけど楽しんでる。

勿論こう言うのは、言語の問題ではなく、ロジックの問題だと解っているんだが、ヒントとなる数字を出せるのは言語の力にもよるからそれはそれなりに面白い。

図形は直感的に推論が正しいかどうか判るから面白い。
プログラミングのお題スレ Part14 	->画像>47枚
凸包の重心は使えなさそうだな。

>>139 なんとなく変に感じるんだが。
プログラミングのお題スレ Part14 	->画像>47枚

この場合の正方形の一辺は、左側の凸包の線そのものになると思うんだけど。
つまり、左下端が、( 94,31 )、上端が(110,927) にならないかな?

141デフォルトの名無しさん2019/05/26(日) 20:06:23.89ID:MaF2nVvH
>>140 ごめん、同じ画像を二つ上げてしまった。

142 ◆QZaw55cn4c 2019/05/26(日) 20:24:38.79ID:CpBTYp0n
>>11
まずは「斜めは考えない」 https://ideone.com/0ho1Fr
>>48
解が一致しました

143 ◆QZaw55cn4c 2019/05/26(日) 20:28:38.16ID:CpBTYp0n
お題と回答
>>5 : 6 10 32 36 44
>>9 : 15 34 35 79
>>11 : 48 (78) 138-139
>>19 :
>>50, http://2chb.net/r/tech/1549160513/920 : 4 85 89
http://2chb.net/r/tech/1549160513/988 : 59 61
>>90 : 95 96
>>99 :

1441382019/05/26(日) 21:07:57.74ID:GCxYDy5d
>>140 図をありがとう

scriptを(94, 31) - (110, 927)の辺に傾けてこの角度における最小の正方形だけを計算するようなおして
計算したら
5: ( 18.819, 32.332), (914.819, 16.335), ( 34.819,928.046), (930.819,912.049): w=896.143, th= 1.023°
になりました。

145デフォルトの名無しさん2019/05/27(月) 00:47:32.69ID:WucVzOyp
>>144 それはおかしい。 直行正方形の辺の長さが896だから、896以下にならなければならない。

146デフォルトの名無しさん2019/05/27(月) 03:33:47.20ID:ZlNUfz2v
>>11 1)のみ やってみた。

https://codepen.io/dokokade/full/WBzgrZ

※ 途中で完全にJavaScriptのお遊びになってしまった。
  (計算は別プログラムで、そのログを図にした)

一辺 = 890.70993168302
四点
x: [ 0.8027676391, 82.9114960624, 969.828819782, 887.7200913596]
y: [916.8907759982, 29.9734522778, 112.082180701, 998.9995044215]

147デフォルトの名無しさん2019/05/27(月) 12:03:51.40ID:g1o9JmK9
>>146 多分正解だね。 おめでとう。

148デフォルトの名無しさん2019/05/27(月) 12:17:08.10ID:g1o9JmK9
>>146 あ、でも 右上の頂点は y = 998.9995044215 となってるけど、
正確には y=999 とぶつからなければいけないよね。 少し誤差が大きすぎるような気がするけどこんなもの?

149デフォルトの名無しさん2019/05/27(月) 23:46:29.70ID:FhcziIHI
>>140
この図の(388,157)は(388,598)の誤記?

150デフォルトの名無しさん2019/05/27(月) 23:59:39.40ID:WucVzOyp
>>149 間違っていないでしょ。
両方あるよ。
xys [[136 577]
[110 927]
[472 199]
[157 808]
[388 598] ***
[ 94 31]
[388 157] ***
[325 409]
[787 897]
[850 598]]

プログラミングのお題スレ Part14 	->画像>47枚

151デフォルトの名無しさん2019/05/28(火) 00:07:34.28ID:A9u6a3RO
>>145 凸包の一辺(94,31)-(110,927)のみに着目し、この辺が垂直となる様に座標を1.023°回転して
から点郡を囲む矩形領域を求め、その長方形を正方形になるように短い辺を伸ばす処理は省いて
長方形のまま元の座標系に逆変換し4頂点座標を見たところ、
use List::Util qw{min max};
use Math::Trig;
@X = qw{94 110}; # 787 850 472 388};
@Y = qw{31 927}; # 897 598 199 598};
sub sp {$_[0]*$_[2] + $_[1]*$_[3]}
for $i (0..@X-2) { for $j ($i+1..$#X) {
 ($dx, $dy) = ($X[$j] - $X[$i], $Y[$j] - $Y[$i]);
 ($dx, $dy) = (-$dx, -$dy) if $dx < 0;
 $th = $dx > abs($dy) ? -atan2($dy, $dx) : atan2($dx, $dy);
 @e = (cos $th, -sin $th); @f = (sin $th, cos $th);
 my @x = map{sp @e, $X[$_], $Y[$_]} 0..$#X;
 my @y = map{sp @f, $X[$_], $Y[$_]} 0..$#Y;
 @x = (min(@x), max @x); @y = (min(@y), max @y);
 $w = max($x[1] - $x[0], $y[1] - $y[0]);
 ($e[1], $f[0]) = (-$e[1], -$f[0]);
 @x = map{sp @e, $x[$_], $y[$_]} 0,1,0,1;
 @y = map{sp @f, $x[$_], $y[$_]} 0,0,1,1;
 #next if min@x<0 or 999<max@x or min@y<0 or 999<max@y;
 push @t, +{i,$i,j,$j,dx,$dx,dy,$dy,th,$th,X,[@x],Y,[@y],w,$w} } }
@t = sort{$$a{w}<=>$$b{w}} @t;
do {@x = @{$_->{X}}; @y = @{$_->{Y}};
 printf"%d: (%7.3f,%7.3f), (%7.3f,%7.3f), (%7.3f,%7.3f), (%7.3f,%7.3f): w=%7.3f, th=%7.3f°\n",
  ++$k,$x[0],$y[0],$x[1],$y[1],$x[2],$y[2],$x[3],$y[3],$$_{w},rad2deg $$_{th}} for @t;
~ $ perl 14_11_2.pl
1: ( 94.000, 30.990), (110.000, 30.990), ( 94.000,926.704), (110.000,926.704): w=896.143, th= 1.023°
となったので、今のところ計算は合っていると思う。おかしく感じたのは長方形を正方形になるように短い辺を伸ばした座標の
シフトによるものだと思う。しかし、この長方形⇒正方形補正が曲者で、より小さい正方形であるにもかかわらず長方形の
短辺を両側に均等に伸ばすと頂点が0〜999の範囲をこえてしまうものがあるらしく、不均等に伸ばすようにすれば
より小さい正方形を見出せるかもしれない。

152デフォルトの名無しさん2019/05/28(火) 00:08:24.04ID:A9u6a3RO
>>150
そうだね、ゴメン

153デフォルトの名無しさん2019/05/28(火) 00:16:35.63ID:eILR4MCH
>>150 外接円を描いてみたけど、利用方法を見つけられなかった。
むしろ [ 94 31] [787 897] の対角を直径とする最小包含円 からかな?

154デフォルトの名無しさん2019/05/28(火) 00:27:46.22ID:A9u6a3RO
以下は試作実験programと結果
@凸包の辺の角度にのみ傾ける(それ以外の角度は略) A長方形⇒正方形補正は略 B頂点座標が0〜999の範囲外も出力
use List::Util qw{min max}; use Math::Trig;
@X = qw{94 110 787 850 472 388}; @Y = qw{31 927 897 598 199 157};
sub sp {$_[0]*$_[2] + $_[1]*$_[3]}
for $i (0..@X-2) { for $j ($i+1..$#X) {
 ($dx, $dy) = ($X[$j] - $X[$i], $Y[$j] - $Y[$i]);
 ($dx, $dy) = (-$dx, -$dy) if $dx < 0;
 $th = $dx > abs($dy) ? -atan2($dy, $dx) : atan2($dx, $dy);
 @e = (cos $th, -sin $th); @f = (sin $th, cos $th);
 my @x = map{sp @e, $X[$_], $Y[$_]} 0..$#X;
 my @y = map{sp @f, $X[$_], $Y[$_]} 0..$#Y;
 @x = (min(@x), max @x); @y = (min(@y), max @y);
 $w = max($x[1] - $x[0], $y[1] - $y[0]);
 ($e[1], $f[0]) = (-$e[1], -$f[0]);
 @x = map{sp @e, $x[$_], $y[$_]} 0,1,0,1;
 @y = map{sp @f, $x[$_], $y[$_]} 0,0,1,1;
 #next if min@x<0 or 999<max@x or min@y<0 or 999<max@y;
 push @t, +{i,$i,j,$j,dx,$dx,dy,$dy,th,$th,X,[@x],Y,[@y],w,$w} } }
@t = sort{$$a{w}<=>$$b{w}} @t;
do {@x = @{$_->{X}}; @y = @{$_->{Y}};
 printf"%d: (%7.3f,%7.3f), (%7.3f,%7.3f), (%7.3f,%7.3f), (%7.3f,%7.3f): w=%7.3f, th=%7.3f°\n",
  ++$k,$x[0],$y[0],$x[1],$y[1],$x[2],$y[2],$x[3],$y[3],$$_{w},rad2deg $$_{th}} for @t[0..4];

1: (752.170,710.324), ( 94.000,710.324), (752.170, -8.662), ( 94.000, -8.662): w=873.451, th=168.102°
2: ( 70.342, 31.983), (863.100, 31.983), ( 70.342,891.839), (863.100,891.839): w=895.830, th= 2.537°
3: ( 94.000, 30.990), (855.637, 30.990), ( 94.000,913.391), (855.637,913.391): w=896.143, th= 1.023°
4: (699.348,547.478), ( 94.000,547.478), (699.348,-34.520), ( 94.000,-34.520): w=945.899, th=160.148°
5: ( 94.000, 29.184), (671.086, 29.184), ( 94.000,1007.681), (671.086,1007.681): w=978.102, th=-23.199°
真の極小解は中途半端な角度にあるのか…

1551462019/05/28(火) 00:38:23.09ID:dFqOFikP
>>148

146は、ヒュースリックス解だから、まだ小さくなると思う。
でも、あと1くらいだと思う
( これが厳密解を求めるやる気が、無くなる原因)

少しずるして、この問題に過剰最適化させて、
890.7003209442369にした。
https://codepen.io/dokokade/full/WBzgrZ

156デフォルトの名無しさん2019/05/28(火) 00:44:50.83ID:A9u6a3RO
>>154
これ、凸包の辺の角度にのみ傾けてない、凸包の全頂点の組み合わせエッジの角度に傾けている。
まいいや、大差ない

157デフォルトの名無しさん2019/05/28(火) 01:02:45.97ID:eILR4MCH
>>125 >>11 の問題1 に名前を与えるならさしずめ、最小包含正方形 かな。

158デフォルトの名無しさん2019/05/28(火) 01:18:31.05ID:eILR4MCH
>>155 無理を言ってごめん、答えの誤差をなくすために、最終座標は整数の xy 座標に出来るかな。 中心からの距離を切り上げて整数にする感じになると思うけど。

159デフォルトの名無しさん2019/05/28(火) 01:33:00.26ID:A9u6a3RO
こういう問題って、極小・最小解にいたる連続的な解空間形成してなけりゃ収束計算もできないし
かといって解析的あるいはロジカルな求解法が見出せなけりゃ、最後はヒューリスティックあるいはランダムwalk
あるいはRISMみたいな外挿的に探索するしかないのだろうか…
ないんだろうなたぶん。そんなきがす

160デフォルトの名無しさん2019/05/28(火) 01:41:09.17ID:eILR4MCH
>>159 現実の世界でも、求める解は整数にすることが多いと思う。
画面のドット精度、工作機械の精度など整数と考えた方が良い。
現実的には整数解が求められないと、角を切り落としたりしかねない。
(許容誤差を加えた範囲を求めるのでも良いけど)

整数解にした方が、試行錯誤の時間も少なくなると思うからより現実的だと思う。 答えが一律に決まるし。

161502019/05/28(火) 13:42:19.32ID:tpS8MDSU
http://2chb.net/r/tech/1549160513/920

前スレの920の、ランク付けの問題で、

入力データ
-6 3 9 5 3 -7
出力・ランク
2 3 5 4 3 1

2 3 6 5 3 1

下のように、同値の場合は、同じランクにして、次のランクの間隔を空ける場合、
ランク3 が2つあるから、4が無くなって、次は、5に飛ぶ場合は、難しい!

162デフォルトの名無しさん2019/05/28(火) 16:43:58.97ID:C7xxE9sL
>>161
uniqしないだけ

163デフォルトの名無しさん2019/05/28(火) 17:48:16.52ID:IzhB96hl
>>153 このケースの場合の最小包含円は外接円と一致するんだな。

164デフォルトの名無しさん2019/05/29(水) 15:51:03.59ID:PE9V8n6M
素因数分解する関数を作れ。
ただし2より小さい数は空のリスト(又は配列)を返す事とする。

例: factorization 150
>[2,3,5,5]

165デフォルトの名無しさん2019/05/29(水) 16:00:45.49ID:bq8lopql
はい、次のお題どうぞ

166 ◆QZaw55cn4c 2019/05/29(水) 18:28:49.13ID:8RGCI467

167デフォルトの名無しさん2019/05/29(水) 21:59:41.60ID:tGd6tVjg
>>164 Perl5、>>59 で書いたroutineを流用しています。

sub prime {
 $h = int $n/2;
 for ($i=2; $i<=$h; $i++) {
  $s[$i] = 1 unless exists $s[$i];
  do {$s[$i*$_] = 0 for 2..int $h/$i} if $s[$i];
 }
 @p = grep{$s[$_]} 2..$h;
}
sub factorization {
 my $i = shift;
 my $h = int $i/2;
 for $j (grep{$_ <= $h} @p) {
  return ($j, factorization($i/$j)) if 0 == $i % $j;
 }
 1 < $i ? $i : ();
}
$"=',';
for $n ((0, 1, 2, 150)) {
 prime;
 @f = factorization $n;
 print"$n => [@f]\n";
}

実行結果
~ $ perl 14_164.pl
0 => []
1 => []
2 => [2]
150 => [2,3,5,5]

168デフォルトの名無しさん2019/05/30(木) 18:43:19.57ID:vFLUPPTs
>>166
すでに既出だったとは。。。orz

169デフォルトの名無しさん2019/05/30(木) 18:45:09.99ID:vFLUPPTs
>>164
一応Haskell載せときます。

main = (print.factorization) 150

factorization n | n < 2 = []
factorization n = f n primes
where
f n (x:_) |n == x = [x]
f n (x:xs)|n `mod` x == 0 = x:f (n `div` x) (x:xs)
f n (_:xs) = f n xs

primes = sieve [2..]
where sieve (p:xs) = p:sieve [x | x <- xs, x `mod` p /= 0]

170デフォルトの名無しさん2019/05/30(木) 18:49:02.33ID:WCG+7mjF
既に既出
馬から落馬
歌を歌う
舞を舞う
ダンスをダンスる

171デフォルトの名無しさん2019/05/30(木) 18:50:08.40ID:WCG+7mjF
ヤフーでググる

172デフォルトの名無しさん2019/05/30(木) 20:22:38.83ID:JBeAmq0Y
お題: sin, cos を用いてお題を作成せよ

173デフォルトの名無しさん2019/05/30(木) 20:26:45.68ID:zjW7i8/A
eをネイピア数とした時
e^(iθ) ≠ cosθ + i sinθ
となる事を証明せよ

174デフォルトの名無しさん2019/05/30(木) 20:35:25.37ID:7cnHmzOq
ん~、じゃあ
sin, cos を実装せよ

175デフォルトの名無しさん2019/05/30(木) 22:02:46.02ID:8+NCnZcE
>>173
オイラーの公式なめてんの?

176デフォルトの名無しさん2019/05/30(木) 22:10:08.81ID:mWdPfVjS
>>175
exp(iθ)=cosθ+isinθだけど(2.71828...)^(iθ)は多値関数だよ

177デフォルトの名無しさん2019/05/30(木) 22:23:36.25ID:mWdPfVjS
>>176
多値じゃなくて多価

178デフォルトの名無しさん2019/05/30(木) 23:36:43.35ID:0JxSfYBl
^はxorだからな。そりゃ違うさ。

179蟻人間 ◆T6xkBnTXz7B0 2019/05/30(木) 23:40:43.53ID:rhzd9E8p
お題:テーブル方式でcos/sin関数をテキトーに自作セヨ。

180デフォルトの名無しさん2019/05/30(木) 23:54:33.59ID:J5ONVYE0
>>179
cos := (1 0)(round abs fdivmod 2 * $a Math.PI) * (sgn $a);
sin := (0 1)(round abs fdivmod 2 * $a Math.PI) * (sgn $a);

181デフォルトの名無しさん2019/05/31(金) 00:55:18.43ID:t9s7pmzY
ああこりゃ多価関数の意味を知らないバカだな

182デフォルトの名無しさん2019/05/31(金) 01:02:49.06ID:6bzo9swJ
複素数の指数関数や対数関数は多価関数だろ
馬鹿はお前だ

183デフォルトの名無しさん2019/05/31(金) 01:38:23.70ID:4Atryqh8
指数関数は多価じゃないよ、何言ってんの

184デフォルトの名無しさん2019/05/31(金) 05:30:51.21ID:Rd2VdfQd
>>183
寝言はねえから言えよクズ
z^w := exp(w * log(z))
log(z) が多価関数なんだから一般にz^wも多価関数だっつーの
死ねよ雑魚が

https://en.wikipedia.org/wiki/Exponential_function
> We can then define a more general exponentiation:
>
> {\displaystyle z^{w}=e^{w\log z}} z^{w}=e^{w\log z}
> for all complex numbers z and w. This is also a MULTIVALUED function, even when z is real.

185デフォルトの名無しさん2019/05/31(金) 05:49:38.41ID:C3HpXD20
>>184
出典がwikiとかありえねーよwww
wikiにそう書いてあるからってそれが正しいとは限んねえだろバーカ

186デフォルトの名無しさん2019/05/31(金) 06:17:16.52ID:4Atryqh8
>>184
第一の意味での指数関数、つまり f′(z) = f(z), f(0)=1 を満たす f(z) = exp(z) は当然多価関数じゃない。

第二の意味での「指数関数」、つまり複素数の複素数乗 f(z, w) = z^w は、引用してくれたとおり exp の「逆関数」 log を使って f(z, w) = exp(w log z) と定義するけど、
log は主値を取るものとして(つまり定義域を制限した exp の真の意味での逆関数として)定義すれば log w も f(z, w) もちゃんとした関数になる。そうでなければどちらも多価関数になる。

多価関数って要は関数じゃない(写像ではない)から、少なくとも一般的な計算には使わないよね。多価の asin x や多価の √x なんて使わないでしょ?

187デフォルトの名無しさん2019/05/31(金) 06:53:54.48ID:BfGYI+kd
>>186
主値を取る場合はLogなりp.v. fなりきちんと明示するのが少なくとも解析屋の間ではルールだよ
他の分野の人は知らないけど

188デフォルトの名無しさん2019/05/31(金) 07:16:05.79ID:LXc8d8Er
>>170
> 歌を歌う
歌うには「歌を」と言う意味は含まれてないから歌を歌うと言うのは別におかしくないよ
> 舞を舞う
も同様

189デフォルトの名無しさん2019/05/31(金) 07:32:11.07ID:E12bWjgi
>>164 Python sympy

from sympy import *
print(factorint(150))
#{2: 1, 3: 1, 5: 2} 2*3*5**2 を示す

190デフォルトの名無しさん2019/05/31(金) 12:16:09.80ID:ihIFj/V/
>>188
和語として語源同一なんだけど。
意外なものでは「くさい」と「くそ」「明かり」と「開ける」も同一語源。

191デフォルトの名無しさん2019/05/31(金) 14:15:19.33ID:rnSTXr8b
数学の問題なんて、センター入試問題でも解いてこいよ。 手を抜きすぎだぞ。 もっと面白くひねれよ。

192デフォルトの名無しさん2019/05/31(金) 20:50:13.55ID:/Dlwa3kC
>>164
Haskellを元にPython。
素数じゃ無いと判定した時点でループ抜けるとかしたら、そこそこ速くなった。
https://ideone.com/3L1N23

193デフォルトの名無しさん2019/05/31(金) 23:54:43.29ID:fDsN7sSa
センターなんて数学じゃなくて算数でしょ

194デフォルトの名無しさん2019/06/01(土) 05:45:08.23ID:uuPo6pHP
面白いお題がないかと文句を言う前に
進んで面白いお題を書きましょう

195デフォルトの名無しさん2019/06/02(日) 10:12:21.99ID:kAC27lYz
>>192 python sympy

from sympy import *
import time
time_sta = time.perf_counter()
ans=factorint(13999)
time_end = time.perf_counter()
print(ans,'{:.7f}ms'.format((time_end-time_sta)*1000))

#{13999: 1} 0.0283330ms

同じpython でも餅は餅屋なんだろうな。
因みに、13999**2 を求めると
#{13999: 2} 0.4635000ms

iPhone Xs Max Pythonista3.2 Python3.6.5 sympy 0.4.7.1

196デフォルトの名無しさん2019/06/02(日) 15:03:12.02ID:c9LZ9fJN
>>192>>164向けの回答としては問題ない。

しかし、一般的な素因数分解としては問題が。
大きな素数が対象のとき、実行時間がひどい結果になっている。
たとえば有名な素数1000000007(10億7)をやると....
(前スレ988の制約範囲内くらい、普通にできる形が望ましい)

pythonで手を抜いた一般的な素因数分解でも
10^12くらいは1秒以内に出る。(10^12+39が近場の素数)

1971952019/06/02(日) 18:27:22.13ID:Hxta4mKu
>>196 python sympy
{1000000007: 1} 0.2255000ms

1981952019/06/02(日) 18:41:56.81ID:Hxta4mKu
>>196 同一環境での比較。

n= 13999 ans= {13999: 1} time=0.0135830ms
>>192 を実行
n= 13999 ans= [13999] time=152.4304170ms

199デフォルトの名無しさん2019/06/03(月) 00:41:43.81ID:u5qwV1AY
>>198
192の解が一般解としてはひどいすぎるってことでしょ。
10億7どころか、百万台の素数もキツイ。

200デフォルトの名無しさん2019/06/03(月) 03:39:17.26ID:4uiCu3lL
お題:↓の画像のようにコンソール画面に雨を降らせなさい
プログラミングのお題スレ Part14 	->画像>47枚

201デフォルトの名無しさん2019/06/03(月) 12:16:50.21ID:V0dR4GNy
>>164 pythonわかってない俺がpythonで
https://ideone.com/7j8Gz8

202デフォルトの名無しさん2019/06/03(月) 21:33:09.94ID:CuEu7mic
>>164
Kotlin
https://paiza.io/projects/65lAktSm6rjmcVdxSlaLSQ

ただループ回すだけじゃ芸がないと思って素数を返すイテレータのクラス作ってやってみた。
(素数をバッファリングもすればもっと無駄がなかったなとは思ったがそれはやってない)。

203デフォルトの名無しさん2019/06/04(火) 06:42:47.26ID:7qxdZD6A
>>185
Wikiが正しいとは限らないからと言って、wikiが間違っている前提で反論するバカの見本

2041952019/06/04(火) 07:17:53.03ID:/ArpXH0n
>>201 jupyter で測ってみた。結構早い。

[1000000007]
CPU times: user 2.28 ms, sys: 0 ns, total: 2.28 ms
Wall time: 2.25 ms

[1000000000039]
CPU times: user 99.8 ms, sys: 0 ns, total: 99.8 ms
Wall time: 107 ms

[2, 3, 3, 5, 7, 11, 13, 17, 29]
CPU times: user 76 µs, sys: 0 ns, total: 76 µs
Wall time: 78.7 µs

[2, 3, 3, 5, 7, 11, 13, 17, 29, 1000000007]
CPU times: user 3.53 ms, sys: 0 ns, total: 3.53 ms
Wall time: 3.54 ms

205デフォルトの名無しさん2019/06/04(火) 07:56:52.47ID://1XsOfQ
素数は、平方根までの素数で割って、割り切れなければ素数だろ

[2,3,5,7,11,13...] みたいに、素数表に追加していく途中で、
例えば、103 なら、11 までの素数で割って、割り切れなければ素数

13以降の素数で割る必要はない

もし13で割り切れるなら、13 * n = 103
となり、n は、√103 よりも、小さくなるから、既に割り切れているはず!

206デフォルトの名無しさん2019/06/04(火) 08:11:49.19ID:e9k+jtYr
>>205
例のRubyバカはこのスレにも出没するのか

207デフォルトの名無しさん2019/06/04(火) 09:07:39.39ID:QWQyVZWL
誰もRubyの話なんてしてないやろ

208デフォルトの名無しさん2019/06/04(火) 09:27:19.41ID:u+S7EiZ9
日頃の行いがなぁ…

209デフォルトの名無しさん2019/06/04(火) 10:23:22.04ID:prB+PlYz
>>185
間違いとも限らない。

書かれていることを鵜呑みにするのは間違いだが見もしないで頭ごなしに間違いと決めつけるのも間違い。

2102022019/06/04(火) 10:27:05.50ID:prB+PlYz
>>205
なるほど。暇があったらそれも考慮しよう。

211デフォルトの名無しさん2019/06/04(火) 11:04:03.94ID:Hzpqs43L
【速報】金券五百円分とすかいらーく優侍券をすぐもらえる    
プログラミングのお題スレ Part14 	->画像>47枚   
  
@ スマホでたいむばんくを入手   
A 会員登録を済ませる   
B マイページへ移動する     
C 招待コード→招待コードを入力する [Rirz Tu](スペース抜き)    
     
今なら更に4日18時までの登録で2倍の600円の紹介金を入手 
クオカードとすかいらーく優待券を両方ゲットできます。  
    
かんたんに入手できますのでご利用下さい    

212デフォルトの名無しさん2019/06/04(火) 13:01:01.36ID:XXr8i2SB
>>211
あとで一万円の請求が来るらしい

213デフォルトの名無しさん2019/06/04(火) 13:24:26.77ID:RxG/e7Cf
>>211
バラまきキャンペーン乙。

214デフォルトの名無しさん2019/06/05(水) 02:49:29.97ID:TK4G9YGK
>>200 Ruby
# エスケープシーケンスが有効な環境
print "\e[1;1;H\e2" # "\ec"
while true
print 79.times.inject(''){|s| s += (rand(20) >= 19)? '|' : ' ' }, "\n\e[1T\eM"
sleep 0.1
end

215デフォルトの名無しさん2019/06/05(水) 19:02:11.80ID:xAyG9V/M
お題:2次元関数を図示したとき網目状になる関数を示せ。

216デフォルトの名無しさん2019/06/05(水) 19:05:56.09ID:JxAz00LY
網目状になったら普通それは関数とは言わないんですが

217デフォルトの名無しさん2019/06/05(水) 20:21:05.87ID:4AufAgsU
>>200
プログラミングのお題スレ Part14 	->画像>47枚

エスケープシーケンスのコードが行方不明だったので書き直した。
C++で書いたけど、ベターCですなぁ。

218デフォルトの名無しさん2019/06/05(水) 20:26:27.13ID:Fd++qFdy
>>215
それは数学のお題では?関数の方を求めるんでしょ?図を画面に出すとかではなく。

2192142019/06/06(木) 05:58:02.66ID:6h02yf6h
>>200 Ruby
# 水はねを追加
require 'io/console'
Crow, Ccol = STDOUT.winsize
print "\e[0;0H"
lines = []
while true
line = ' ' * Ccol
rand(Ccol).div(8).times{ line[rand(Ccol)] = '|' }
lines << line
print "\e[0;0H#{line}\n\e[0;0H"
if lines.size >= Crow
line = lines.shift.tr('|','w')
print "\e[#{Crow};0H#{line}\e[0;0H"
end
sleep 0.1
print "\e[0;0H\eM"
end

220デフォルトの名無しさん2019/06/06(木) 18:09:53.98ID:Qxsak61t
お題

1/x + 1/2y + 1/3z = 4/3
を満たす、整数( x, y, z )の組み合わせを求めろ

ただし、x, y, z の範囲は、1 <= x, y, z <= 4 とする

答え
[ 1, 2, 4 ], [ 1, 3, 2 ], [ 2, 1, 1 ]

221デフォルトの名無しさん2019/06/06(木) 20:34:48.88ID:2PaE6Est
また数学か

222デフォルトの名無しさん2019/06/06(木) 20:50:52.65ID:ZTQEoQsZ
これは数学と言うより、コンピュータの問題じゃないかな。
IEEE754の理解が必要になると思う。

2232202019/06/06(木) 22:57:28.49ID:Qxsak61t
有理数・Rational クラスを使えば?

式を6倍しても良いけど

224デフォルトの名無しさん2019/06/06(木) 23:11:58.29ID:Zwi2yFYb
というか知的障害者でも64回回せば終わる問題だよな

225デフォルトの名無しさん2019/06/06(木) 23:16:57.91ID:P4iafl1G
上位大学の入試見てると問題作りってセンス出るよな

226デフォルトの名無しさん2019/06/07(金) 07:11:55.05ID:CBwJTjr/
>>222
> IEEE754の理解が必要になると思う。
釣りか?

227デフォルトの名無しさん2019/06/07(金) 13:55:32.04ID:D45ggIzR
>>215
sin(x + y)*sin(x - y)=0

228デフォルトの名無しさん2019/06/07(金) 16:27:31.91ID:RHh4qcVs
>>226
誤差収束しないといけないからだと思う。
コンピュータは1/3を計算するとき工夫がいる。

2291952019/06/07(金) 16:32:04.76ID:QdXw6XxC
>>228 馬鹿だろ。 6倍してみろ

230デフォルトの名無しさん2019/06/07(金) 16:36:23.22ID:CBwJTjr/
>>228
> コンピュータは1/3を計算するとき工夫がいる。
だからその工夫が>>223の言う
> 有理数・Rational クラスを使えば?
とか
> 式を6倍しても良いけど
だろ
数学的な問題は実数使っても解けないことが多いぞ

231デフォルトの名無しさん2019/06/07(金) 16:44:59.95ID:RHh4qcVs
あぁ、すまん。
暇なので愚直に解いてくるわ。

232デフォルトの名無しさん2019/06/07(金) 17:00:40.10ID:RHh4qcVs
https://ideone.com/0kIloe
愚直に解いたのでは出ないので、有理数クラスが必要だ。という話になりました。(愚鈍)

233デフォルトの名無しさん2019/06/07(金) 17:32:22.41ID:IXZHPSuO
等式を6xyz倍して、4の3乗通りの整数の組み合わせを代入して単純に比較するだけの話だよね

234デフォルトの名無しさん2019/06/07(金) 18:22:52.80ID:CBwJTjr/
>>233
まあそう言うことだわな
> 1/x + 1/2y + 1/3z = 4/3
6yz + 3xz + 2xy = 8xyz
整数演算だけでいい

235デフォルトの名無しさん2019/06/07(金) 20:25:03.39ID:itc0IrgZ
お題:相異なる25個の英大文字が与えられるので、足りない1個を出力せよ

BCDEFGHIJKLMNOPQRSTUVWXYZ -> A
YIZFOADLMWCRUTGSVQKJEHNBP -> X

236デフォルトの名無しさん2019/06/07(金) 20:27:51.01ID:LHJ6D3bl
>>235 ruby
$><<([?A..?Z]-gets.split(''))

237デフォルトの名無しさん2019/06/07(金) 20:28:29.84ID:LHJ6D3bl
typo
>>235 ruby
$><<([*?A..?Z]-gets.split(''))

238デフォルトの名無しさん2019/06/08(土) 00:59:14.99ID:zvJkEDj7
>>235 Perl5

for $s (BCDEFGHIJKLMNOPQRSTUVWXYZ, YIZFOADLMWCRUTGSVQKJEHNBP) {
 @a = grep{0>index$s,$_} A..Z;
 print "$s -> @a\n";
}

$ perl 14_235.pl
BCDEFGHIJKLMNOPQRSTUVWXYZ -> A
YIZFOADLMWCRUTGSVQKJEHNBP -> X

239デフォルトの名無しさん2019/06/08(土) 01:04:50.07ID:zvJkEDj7
>>238 Pler5 >>238 よりもう少しコンパクトでsimpleに書けた

for $s (BCDEFGHIJKLMNOPQRSTUVWXYZ, YIZFOADLMWCRUTGSVQKJEHNBP) {
 print "$s -> ", grep{0>index$s,$_} A..Z, "\n";
}

240デフォルトの名無しさん2019/06/08(土) 04:54:26.27ID:t4bm4zRu
>>220
kotlinc
6倍して計算

>>> (1..4).forEach { x -> (1..4).forEach { y -> (1..4).forEach { z -> if (6.0/x+3*y+2*z==8.0) println("[$x, $y, $z]") }}}
[2, 1, 1]
>>>

答え一つだけのようだが、>>220の下に書いてある答えはなんだ?

241デフォルトの名無しさん2019/06/08(土) 05:36:07.66ID:BULhVnPP
>>240
スペース無しの1/2yを1/2*yって解釈する人間を初めて見たわ
悪意か?

2422202019/06/08(土) 05:51:26.61ID:0P3wY/7I
>>223
>式を6倍しても良いけど

間違い!
6xyz 倍する

x, 2y, 3z が、分母です!

243デフォルトの名無しさん2019/06/08(土) 06:35:13.06ID:nbnKD3nO
最初から曖昧な式を書いてる出題者が最大の悪意だろ
もう無視しろよこんなサイコパス

244デフォルトの名無しさん2019/06/08(土) 06:40:21.36ID:c2kswOOS
えぇ……どこが曖昧なんだよ
無知だからって開き直るのは格好悪いわ

245デフォルトの名無しさん2019/06/08(土) 06:50:01.64ID:7Ke9leiS
>>241
悪意と言うより6.0/xとか見る限りちょっと抜けてるんだと思う

246デフォルトの名無しさん2019/06/08(土) 07:48:52.33ID:jHJxbMi0
お前らでも他人の悪口言うもんなんだな

247デフォルトの名無しさん2019/06/08(土) 10:21:44.01ID:831NYUH9
>>235 Pharo/Squeak Smalltalk

| alphabet |
alphabet := Character alphabet asUppercase.
alphabet difference: 'BCDEFGHIJKLMNOPQRSTUVWXYZ'. "=> 'A' "
alphabet difference: 'YIZFOADLMWCRUTGSVQKJEHNBP'. "=> 'X' "

248デフォルトの名無しさん2019/06/08(土) 11:01:33.46ID:CjDCyQh6
>>220 Pharo/Squeak Smalltalk

| set exp |
set := Set new.
(1 to: 4) asDigitsToPower: 3 do: [:combi |
combi permutationsDo: [:permu | set add: permu copy]
].
exp := [:x :y :z | 1/x + (1/(2*y)) + (1/(3*z))].
set select: [:permu | (exp valueWithArguments: permu) = (4/3)]

"=> a Set(#(2 1 1) #(1 3 2) #(1 2 4)) "

2491952019/06/08(土) 11:07:07.66ID:gSg6KwWS
>>235 python

import string

A26 = set(string.ascii_uppercase)
print(A26.difference(set('BCDEFGHIJKLMNOPQRSTUVWXYZ')).pop()) #-> A

print(A26.difference(set('YIZFOADLMWCRUTGSVQKJEHNBP')).pop()) #-> X

250デフォルトの名無しさん2019/06/08(土) 20:39:21.75ID:gCLo3iII
>>241
え?なんで?括弧なしで続けて書いたらそういう解釈にしかならんと思うが?
そうでないならその部分どう解釈するのが正解なの?

251デフォルトの名無しさん2019/06/08(土) 20:40:05.48ID:gCLo3iII
>>245
全体を6倍しているからだが?

252デフォルトの名無しさん2019/06/08(土) 20:41:05.12ID:gCLo3iII
>>242
それが分母ならちゃんと括弧書けよ。

253デフォルトの名無しさん2019/06/08(土) 21:10:55.53ID:7Ke9leiS
周りの人に同情するわ…w

254デフォルトの名無しさん2019/06/08(土) 21:53:10.61ID:bSq0it8T
ID:gCLo3iII ガチのガイジやんけ

255デフォルトの名無しさん2019/06/08(土) 22:03:07.94ID:CpkbOmpy
ワラタwww

256デフォルトの名無しさん2019/06/08(土) 23:58:19.51ID:nh3nMmSu
https://ideone.com/IFCJVe
3個でないよ?(愚鈍)

257デフォルトの名無しさん2019/06/08(土) 23:59:56.19ID:t4bm4zRu
>>241
>>232のリンク先もそのようになっているようだが、見ていなかったか。

258デフォルトの名無しさん2019/06/09(日) 00:14:56.14ID:W8wtcQAp
>>235
AからZの文字コードの数値の総和から入力文字列の各文字の文字コードの総和を引けばいいね

259デフォルトの名無しさん2019/06/09(日) 00:16:02.81ID:SSgQq8CW
>>238
https://ideone.com/ztrBf9
わかってやってみた。ソートすんなとは書いてなかった。今は反省している。

260デフォルトの名無しさん2019/06/09(日) 00:17:23.59ID:SSgQq8CW
あ、間違えた。>>259 => >>235
ネタ振ったときにこれだよ。。。

261デフォルトの名無しさん2019/06/09(日) 00:19:22.44ID:OSjRKT39
むしろプログラマの世界で数式を書くなら、
1/(2*y) だろうな。
1/2y と書けば、普通は、(1/2) * y だろ。

262デフォルトの名無しさん2019/06/09(日) 00:24:01.37ID:SSgQq8CW
数学習った時も掛け算記号は省略できるとか習った覚えが。
あと、割り算と掛け算混ぜたときの結果は項の順番によらないかった覚えが。

寝る。

263デフォルトの名無しさん2019/06/09(日) 00:45:59.55ID:T9jyzIYI
>>261
コード書いたわけじゃなくて普通の数式やがな
それをコードに直すのがプログラマ

264デフォルトの名無しさん2019/06/09(日) 01:16:32.66ID:zgQq0a06
>>263
数式でも人が紙に書いたかのような表現が使えず1行に無理に押し込める形式にするのならそれなりの工夫が必要だ

265デフォルトの名無しさん2019/06/09(日) 01:59:59.85ID:RDMRCxQC
まず普通の人はあの表記を見ても迷わない
一京歩譲ったとして仮に迷ったとしても与えられた答えを代入すれば猿でも分かる
つまりいちゃもんつけてるのは猿未満

266デフォルトの名無しさん2019/06/09(日) 02:03:55.91ID:vJOouxE6
自演乙

267デフォルトの名無しさん2019/06/09(日) 02:08:15.94ID:1JZdgA2h

2682202019/06/09(日) 05:40:38.30ID:rn4C+nSw
>>220
Ruby で、

ary = ( 1..4 ).to_a

# 直積・3重ループ
p ary.product( ary, ary ).select { |( x, y, z )|
Rational( 1, x ) + Rational( 1, 2 * y ) + Rational( 1, 3 * z ) == 4/3r }

#=> [[1, 2, 4], [1, 3, 2], [2, 1, 1]]

269デフォルトの名無しさん2019/06/09(日) 08:43:57.74ID:OSjRKT39
>>263 >コード書いたわけじゃなくて普通の数式やがな

普通の数式ってどこの世界での普通なんだ? 普通の数式ならそんな書き方はしないからな。
1/2y を普通の数式として解釈すれば、(1/2) * y が普通の解釈だろ。 左から順に演算されるのが普通(と言うかルール)だからな。

270デフォルトの名無しさん2019/06/09(日) 09:08:49.29ID:T9jyzIYI
左からやって普通は1割る2yだろ
普通の数式で1÷2yってあってそう解釈するか?
割る記号の変わりだろ/は
プログラムのコードじゃないぞ

一個目の1/xがないならまだわからんでもないけど

271デフォルトの名無しさん2019/06/09(日) 09:18:11.20ID:OSjRKT39
>>270 お前の普通の根拠を示してみろや。
記号が書かれてれば掛ける記号が略されてるとみなすのが普通

1/2y は1/2*y と等価 1割る2は、0.5 これが普通。

272デフォルトの名無しさん2019/06/09(日) 09:20:36.13ID:OSjRKT39
>>270 お前の異常なところは、2y が優先演算されると思い込んでいるところ。
そこが大きな間違い。

273デフォルトの名無しさん2019/06/09(日) 09:32:55.64ID:T9jyzIYI
中学の文字式の問題といてみたらいいんじゃないかな

274デフォルトの名無しさん2019/06/09(日) 09:42:13.99ID:1+U3aTMC
教養のない(1/2)派が暴れてて最高に笑えるわ
馬鹿は馬鹿らしく謙虚でいろよ

275デフォルトの名無しさん2019/06/09(日) 10:16:16.60ID:Gi1Jt9cY
普通とかほざくゴミまで出てきたってことは一番最初の出題者はやっぱりサイコパスだろ
解釈の分れる書き方をワザとしてんだよ

276デフォルトの名無しさん2019/06/09(日) 10:16:55.57ID:1+U3aTMC
いや馬鹿以外は一通りにしか解釈してねえだろ

277デフォルトの名無しさん2019/06/09(日) 10:28:52.42ID:OSjRKT39
>>273 だからお前の言う普通の文字式が書かれてるところを示してみろよ。
最も中学では、1/2のような書き方はしないから、そんな問題はないと思うが。

兎に角プログラミングスレで、
1/2x と書けば、(1/2)*x という解釈しかありえない。

もう一度 >>267 を見てこい。

278デフォルトの名無しさん2019/06/09(日) 10:33:43.64ID:dGGyKbbw
ID:OSjRKT39 こいつ、仕事もできねえんだろうな
同情するわ……こいつの同僚にw

279デフォルトの名無しさん2019/06/09(日) 10:54:03.46ID:8GuoKRFn
>>278
具体例も挙げてきちんと論証してるじゃん

280デフォルトの名無しさん2019/06/09(日) 10:54:55.69ID:wmlwj4f3
まあ理系なら数式見慣れてるし、数式だと 2x でセットと見るから
2x/3y を (2*x*y)/3 と解釈するアホはいないと思う

281デフォルトの名無しさん2019/06/09(日) 10:57:55.90ID:8GuoKRFn

282デフォルトの名無しさん2019/06/09(日) 10:58:26.13ID:dGGyKbbw
>>279
お前は論証という言葉をまず辞書で引け

283デフォルトの名無しさん2019/06/09(日) 10:59:01.91ID:8GuoKRFn
理系じゃない人にもやさしい世界の方がよくない?

284デフォルトの名無しさん2019/06/09(日) 11:00:19.84ID:dGGyKbbw
理系以外にも優しくするのはいいとして馬鹿に優しくする必要は無いだろ
無能な猿が思い上がるだけ

285デフォルトの名無しさん2019/06/09(日) 11:00:55.16ID:tpC+iRBo
キチガイを一人召喚してるな

286デフォルトの名無しさん2019/06/09(日) 11:00:55.34ID:8GuoKRFn
>>282
仕事もできねえ、馬鹿、アホという人格否定で自分を正しく見せようという
幼稚な人より100倍マシだと思いましたよ

287デフォルトの名無しさん2019/06/09(日) 11:02:06.44ID:dGGyKbbw
>>286
たとい俺より百万倍マシだったとしてもお前がクズな現実は変わらない

288デフォルトの名無しさん2019/06/09(日) 11:02:42.49ID:8GuoKRFn
>>284
一般的な例を挙げて論証する人を馬鹿だとは思わないなあ
むしろ相手の人格を貶めることばかりに終始してる君のほうが・・・

289デフォルトの名無しさん2019/06/09(日) 11:04:17.16ID:dGGyKbbw
面白いなこいつ
叩けば音が鳴るおもちゃやん

290デフォルトの名無しさん2019/06/09(日) 11:04:30.99ID:8GuoKRFn
>>287
罵詈雑言を言ったら

291デフォルトの名無しさん2019/06/09(日) 11:04:57.97ID:8GuoKRFn
自分が賢くなるとでも?

292デフォルトの名無しさん2019/06/09(日) 11:07:45.90ID:OSjRKT39
>>280 理系ならwolfram ( mathematica ) を知らないわけないだろ。

>>281 をよく見ろ。 世界中の数学者はこう計算するというのが数学の世界なんだぞ。
お前は世界中の数学者をアホ呼ばわりするのか?

293デフォルトの名無しさん2019/06/09(日) 11:07:46.72ID:ycrydNOH
で、結局論証ってなんのこと?
どこに論理的な推論があったわけ。

294デフォルトの名無しさん2019/06/09(日) 11:09:31.01ID:8GuoKRFn
>>293
一般的で具体的な例を上げて説明してたよ

295デフォルトの名無しさん2019/06/09(日) 11:11:12.17ID:8GuoKRFn
>>292
はいストローマン論法

296デフォルトの名無しさん2019/06/09(日) 11:11:47.45ID:8GuoKRFn
君たちは理系なの?

297デフォルトの名無しさん2019/06/09(日) 11:13:37.36ID:ycrydNOH
>>294
一般的で具体的な例を上げて説明することは「論証」とは言いません
そんな的はずれな事言ってたらヴィトゲンシュタインが泣きますよ

298デフォルトの名無しさん2019/06/09(日) 11:15:19.30ID:8GuoKRFn
>>297
立派な論証だよ
ウィトゲンシュタインもうなずいてるよ

299デフォルトの名無しさん2019/06/09(日) 11:15:45.10ID:OSjRKT39
>>293 論証じゃなくて、wolfram やgoogle の計算の実証を挙げてるのに全くそんなのを無視しておいて何を今更。

なんにせよ、プログラマスレではプログラマとして動け。 問題としては落第。

300デフォルトの名無しさん2019/06/09(日) 11:19:54.29ID:ycrydNOH
wolframやgoogleでのレクシコンが今の議論に一体何の関係があるのだらうか!?
全くの荒唐無稽だと言っておきませうせうせう

301デフォルトの名無しさん2019/06/09(日) 11:24:46.91ID:8GuoKRFn
>>300
一般的にどう解釈されるかを示す具体例として挙げられてるよ
どうして歴史的仮名遣いなのさ!?

302デフォルトの名無しさん2019/06/09(日) 11:37:39.19ID:ycrydNOH
>>301
君はいい人そうだから強く生きていきませう

303デフォルトの名無しさん2019/06/09(日) 11:41:33.13ID:8GuoKRFn
>>302
どうして歴史的仮名遣いなの?
君の思う論証ってどういうもの?
他人の発言を的外れとまで言ったんだからきちんと説明していただきたい

304デフォルトの名無しさん2019/06/09(日) 11:41:33.39ID:OSjRKT39
>>300 自分の論証はどこに有る? 例を出せと言ってるのに出せないんだろ?

305デフォルトの名無しさん2019/06/09(日) 11:43:32.18ID:8GuoKRFn
>>304
兄貴、俺たちの勝ちっすね

306デフォルトの名無しさん2019/06/09(日) 11:46:12.25ID:8GuoKRFn
おいお前ら、俺たちのバックにはグーグルがいるんだぞ

307デフォルトの名無しさん2019/06/09(日) 12:10:10.83ID:SqGEiAZe
物理などの世界では並置優先ルールが有る。
1/ab は、1(a*b) 1/2yは1/(2y)

しかし一般的なプログラミング(コンピュータ)の世界では、並置は存在しないから並置優先ルールもない。
ab は、a、b とは別変数となる。

プログラミングのお題としては、プログラミングルールに従った出し方にすべき。

308デフォルトの名無しさん2019/06/09(日) 12:49:50.56ID:W8wtcQAp
1.出題者が複数の解釈のできる曖昧な書き方(1/2y)をした。
2.多くの回答者は曖昧さを理解した上で自然に取れる解釈(1/(2y))をした。
3.一部の回答者はプログラミングや数学的な記法の厳密な解釈として((1/2)y)であるべきとした。
4.3と3を煽る奴らのどうでもいい喧嘩←今ここ

309デフォルトの名無しさん2019/06/09(日) 12:50:30.57ID:fheL3UO0
お題をみてそれにあわせたコードをかくのがプログラミングだろ
お題は文章なり数式でプログラミングのルールにのっとる必要はないじゃん
表現が曖昧で複数にとれるようなものは出題者に確認するだけの話だと思うけど

310デフォルトの名無しさん2019/06/09(日) 13:03:13.41ID:Gi1Jt9cY
ゴミみたいな書き方する出題者がそもそも悪いでしょ
そういうヤツは除外しなきゃ
叩いて叩いて叩きまくればいいんだよ

311デフォルトの名無しさん2019/06/09(日) 13:08:30.37ID:SqGEiAZe
誤解を生まないように書けば良いのにな。

312 ◆QZaw55cn4c 2019/06/09(日) 13:42:29.09ID:VJkUGCEU
お題と回答
>>5 : 6 10 32 36 44
>>9 : 15 34 35 79
>>11 : 48 (78) 138-139 (140) 142 146 151 154
>>19 :
>>50, http://2chb.net/r/tech/1549160513/920 : 4 85 89
http://2chb.net/r/tech/1549160513/988 == >>164 : 59 61 167 169 189 192 201 202
>>90 : 95 96
>>99 :
>>200 : 214 219
>>215 : 227
>>220 : 232 240 248 256 268
>>235 : 236 237 238 239 247 249 259

313デフォルトの名無しさん2019/06/09(日) 13:48:39.24ID:7ZWYIG6V
>>307
> 物理などの世界では並置優先ルールが有る。
そういうルールを知らなかった奴が引っ込みつかなくなってるだけでしょ

314デフォルトの名無しさん2019/06/09(日) 14:28:03.28ID:zgQq0a06
>>308
> 2.多くの回答者は曖昧さを理解した上で自然に取れる解釈(1/(2y))をした。

多く?そもそも回答者がほとんどいないのでは?
それでもどちらかの解釈で回答した人は居るが、その回答はどちらの解釈が多かった?

315デフォルトの名無しさん2019/06/09(日) 14:30:26.74ID:zgQq0a06
>>307
それならばそのようなルールで書くと断りを入れてから書くべきだな。

316デフォルトの名無しさん2019/06/09(日) 15:51:50.05ID:30kMM31D
>>313 並置優先ルールがない世界に、並置優先ルールが有るものだと言う前提で問題を出せば混乱するに決まってる。

そんな仕様書を書いたら即座に首だろ。

(唯一の救いはこの場合答えがあるから、確認することはできたが、確認せずに回答した人がいることも忘れてはならない)
プログラムの世界は、1点の曇りもあってはならない。

317デフォルトの名無しさん2019/06/09(日) 16:06:31.19ID:BPlIESHh
曖昧さも糞も無いだろ
答えまで書かれてたんだからそれで確認するのが正常な頭脳の持ち主
数学できない阿呆が噛み付いてるだけ
惨めだからもうやめときな

318デフォルトの名無しさん2019/06/09(日) 17:01:23.49ID:wmlwj4f3
単なる匿名掲示板で仕様書ガーとかw
バカにされて悔しいのはわかるけど流石にそろそろアキラメロン

319デフォルトの名無しさん2019/06/09(日) 17:31:39.31ID:4d8N5HDz
激しい自演と正当化

320デフォルトの名無しさん2019/06/09(日) 17:55:17.43ID:KzhGDYKc
お題:Hello, World!を二進数で出力せよ

321デフォルトの名無しさん2019/06/09(日) 18:46:11.83ID:iI/aMWbb
>>320 Perl5

print map{sprintf'%b ',ord}split'','Hello, World!';

実行
~ $ perl 14_320.pl
1001000 1100101 1101100 1101100 1101111 101100 100000 1010111 1101111 1110010 1101100 1100100 100001

322デフォルトの名無しさん2019/06/09(日) 20:11:20.28ID:v5VOLpEn
お題
x=1から始めて一度のステップで
・xに1を足す
・xを2倍する
のいずれかを行うことができます。

正の整数Nが与えられるので、
x=Nに到達するのに必要な最小ステップ数を求めなさい。

N=34
=> 6 (1 -> 2 -> 4 -> 8 -> 16 -> 17 -> 34)

N=1
=> 0

N=10000
=> 17

323デフォルトの名無しさん2019/06/09(日) 20:18:23.01ID:SSgQq8CW

324デフォルトの名無しさん2019/06/09(日) 20:26:39.07ID:Gi1Jt9cY
>>322
シフト回数と1足した回数調べりゃいいんじゃないの

10000 (10) = 10011100010000 (2)
34 (10) = 100010 (2)

325デフォルトの名無しさん2019/06/09(日) 20:58:31.04ID:8GuoKRFn

326デフォルトの名無しさん2019/06/09(日) 21:12:31.05ID:jNBSWirB
>>325
桃白白改めミスターポポ改めピラフ改めピッコロさんには少し難しかったかな

327デフォルトの名無しさん2019/06/09(日) 21:18:39.26ID:OSjRKT39
>>320 Python

print( ['{:08b}'.format(ord(s) ) for s in 'Hello, World!' ] )

# ['01001000', '01100101', '01101100', '01101100', '01101111', '00101100', '00100000', '01010111', '01101111', '01110010', '01101100', '01100100', '00100001']

328デフォルトの名無しさん2019/06/09(日) 21:25:43.55ID:D5Urc2jv
>>322 Ruby
f=->n{n.digits(2).sum+n.bit_length-2}
p f[34] # => 6
p f[1] # => 0
p f[10000] # => 17

329デフォルトの名無しさん2019/06/09(日) 22:04:49.27ID:OSjRKT39
# >>322 Python 取り敢えずオーソドックスに

def step(n):
 for cnt , _ in enumerate( range(n ) ):
  if n == 1 : break
  n = n//2 if n%2 == 0 else n-1
 return cnt

print(step(34)) #6
print(step(10000)) #17
print(step(1)) #0

330デフォルトの名無しさん2019/06/09(日) 22:08:37.43ID:8GuoKRFn

331デフォルトの名無しさん2019/06/09(日) 22:49:04.65ID:OSjRKT39
>>322 Python >>328を真似して

f = lambda n: bin(n).count('1') + n.bit_length()-2

print(f(34)) #6
print(f(10000)) #17
print(f(1)) #0

332デフォルトの名無しさん2019/06/10(月) 10:26:34.05ID:Xpp6HhX6
>>322 Squeak Smalltalk

| fn |
fn := [:n | n bitCount + (n numberOfDigitsInBase: 2) - 2].
fn value: 34. "=> 6 "
fn value: 1. "=> 0 "
fn value: 10000. "=> 17 "

333デフォルトの名無しさん2019/06/11(火) 00:54:15.70ID:aZcuYhl5
>>322
以下みたいに、すべてのステップ数を記録する、表を作っていくのか?

0 step : 1
1 : 2
2 : 3, 4
3 : 4, 6 | 5, 8 => 4, 5, 6, 8
4 : 5, 8 | 6, 10 | 7, 12 | 9, 16 => 5, 6, 7, 8, 9, 10, 12, 16

3343332019/06/11(火) 02:58:39.60ID:aZcuYhl5
表を作らなくても、これで良いのか

1. 偶数なら、2で割る
2. 奇数なら、1を引いてから、1へ行く

335デフォルトの名無しさん2019/06/11(火) 09:40:44.16ID:9nwOHJjF
>>334 少し前すら読んでいないんだな。
その考え方で解いたのが。>>329

さらなるアイデアが、>>328 >>331 >>332

336デフォルトの名無しさん2019/06/11(火) 09:58:48.09ID:p0Xp2yNy
>>335
そいついつも人の話を聞かない奴だからスルーしとけばいいよ

337デフォルトの名無しさん2019/06/11(火) 10:35:23.49ID:fys+McUU
最小ステップの証明は?

338デフォルトの名無しさん2019/06/11(火) 11:02:34.44ID:9nwOHJjF
>>337 1足す2が3であることを証明しろと言うのか?
まあいいや、最小ステップは2倍が最大回数になればよいだけの話。

339デフォルトの名無しさん2019/06/12(水) 01:58:04.75ID:vCbGNUwk
>>322
kotlinスクリプト

>>> fun f(n: Int) = println("N=$n\n=> ${n.toString(2).map { it - '0' + 1 }.sum() - 2}")
>>> f(34)
N=34
=> 6
>>> f(1)
N=1
=> 0
>>> f(10000)
N=10000
=> 17

340デフォルトの名無しさん2019/06/12(水) 02:51:35.08ID:vCbGNUwk
>>320
Kotlin

https://paiza.io/projects/w4z9UaR7KG9qv6Zmc7KE_Q

文字コードを2進数で出すのでは簡単過ぎるので・・・

3413332019/06/12(水) 06:36:52.68ID:vWkgJgOw
>>322
Ruby で、

def f( n )
n_2 = n.to_s( 2 ) # 2進数

# 2進数の桁数 + 1の個数 - 2
n_2.length + n_2.count( "1" ) - 2
end

p [ 1, 34, 10_000 ].map { |n| f( n ) }
#=> [0, 6, 17]

342デフォルトの名無しさん2019/06/12(水) 08:43:05.24ID:PSW3BzBK
>>235 Io
f := method(s,
((65+90)*26/2 - s sum)asCharacter
)
Io> f("BCDEFGHIJKLMNOPQRSTUVWXYZ")
==> "A"

343デフォルトの名無しさん2019/06/12(水) 09:55:38.00ID:6rY4ofim
何かと思ったら'A'から'Z'の総和か、その求め方は草

344デフォルトの名無しさん2019/06/12(水) 12:18:37.17ID:5tKK6KtT
お題:特定ドライブ配下の*.jpgファイルを削除し、そのjpgファイルが格納されていたフォルダも削除する

345デフォルトの名無しさん2019/06/12(水) 12:31:12.34ID:x67noP4p
質問スレへどうぞ。

346デフォルトの名無しさん2019/06/12(水) 13:19:30.21ID:apqCeTcN
>>344
rm -rf /

347デフォルトの名無しさん2019/06/12(水) 15:25:36.12ID:5tKK6KtT
>>346
ありがとうございます。試してみます。

348デフォルトの名無しさん2019/06/12(水) 16:38:42.58ID:cGak2oax
面白いことになりそうだな、ワクワク

349デフォルトの名無しさん2019/06/12(水) 17:30:57.74ID:8XpDs8H3
最近のrmはそれじゃ実行できないとマジレス

350デフォルトの名無しさん2019/06/12(水) 17:36:01.92ID:cGak2oax
何にせよ良い子は、>>344 なんてお題は無視するように。
いろんな人間がいるのに、ファイルを削除とかディレクトリを削除とか言う問題は危険すぎる。
せめてrename で済ませるべき。

経験のある人間でも、テストでいきなり削除なんてしないぞ。 怖くてできるわけがない。

>>344 の問題は却下。

351 ◆QZaw55cn4c 2019/06/12(水) 23:51:44.14ID:1cw0Fvdf
>>350
回答という形での投票行動がもっとも自然な見解なのでは?

352デフォルトの名無しさん2019/06/13(木) 00:08:48.60ID:NulSwGzN
Ruby には、FileUtils::DryRun みたいに、
実際には実行されなくて、どうなるかだけを見るモードがある

PowerShell の、-WhatIf もそう

>>346
は、あちこちで、rm -rf /
を書いてる荒らしだから、実行しないように!

353デフォルトの名無しさん2019/06/13(木) 01:15:05.86ID:uE2MTK17
>>235
Kotlin

https://paiza.io/projects/e1tMs1B9gF4m-AWN-z-Gyg

Set に全て入れて'A'..'Z'のSetから引くやり方で足りない文字は全て出すようにした。

354デフォルトの名無しさん2019/06/13(木) 01:43:17.30ID:SaZXT9dZ
>>352 dry run はいろんなツールにもあるけど、良い子の皆がそんな事に気付く訳ないじゃないか。
危険なものには近づかないのが一番。

>>344 は、単にアホな問題というだけ。 無視虫蒸し

355デフォルトの名無しさん2019/06/13(木) 01:44:02.67ID:uE2MTK17
>>344
Linux や UNIX 系 OS で良く使われる find コマンドの場合は次のようにできる。

find '対象のディレクトリ' \( -type f -name '*.dir' -o -type d \) -delete

-delete が使えない find の場合は

find '対象のディレクトリ' -depth -type f -name '*.jpg' -exec rm {} \; -o -type d -exec rmdir {} \;

但し *.jpg 以外のファイルがあったら削除されないのでそのディレクトリの削除はできない。

Windows の場合でも WSL の Linux 環境か、Cygwin環境等では同じやり方が使える。
素の Windows だと find.exe という同名の全く違う動きをするコマンドがあるので同じやり方はできない。

356デフォルトの名無しさん2019/06/13(木) 02:18:28.38ID:N68D4F9N
>>352
あれだけ周りから荒らし認定されても全く態度を改めないお前が、他人を荒らしだなどとよく言えるな。

357デフォルトの名無しさん2019/06/13(木) 07:56:16.47ID:C3vlVMf6
>>355
「jpegファイルが入っていたディレクトリの」削除になっていないですよ

358デフォルトの名無しさん2019/06/13(木) 09:22:03.12ID:387c3JPq
>>322
Haskellでオーソドックスに。

main = mapM_ (print.f) [1,34,10000,0]

f = length.f'
where
f' n | n < 1 = error "Please n > 0 number."
f' 1 = []
f' n | even n = n:f' (n `div` 2)
f' n = n:f' (n - 1)

Out:

0
6
17

Program error: Please n > 0 number.

359デフォルトの名無しさん2019/06/13(木) 09:23:37.93ID:387c3JPq
>>235
Haskellで正規表現知らん奴が。。。

import Data.List

main = mapM_ (print.f) ["BCDEFGHIJKLMNOPQRSTUVWXYZ", "YIZFOADLMWCRUTGSVQKJEHNBP"]

f = f' ['A'..'Z']
where
f' [x] _ = x
f' az (x:xs) = f' (delete x az) xs

Out:

'A'
'X'

360デフォルトの名無しさん2019/06/13(木) 09:39:44.91ID:Br2wLKeL
>>357
ああ。入ってなくても空だと消されるか。
じゃあもう一捻り必要だな。

361デフォルトの名無しさん2019/06/13(木) 10:41:34.39ID:n1M8G6tH
良問ですな

362デフォルトの名無しさん2019/06/13(木) 20:07:47.87ID:CBVgpEUY
お題
実行すると1から6までの数字のどれか1つを返すサイコロのプログラム
表示可能なら以下の文字列を使っても良い
⚀⚁⚂⚃⚄⚅

363デフォルトの名無しさん2019/06/13(木) 20:39:06.34ID:Kt3d2lSx
⚀ しか出さないものでもいいのけ?w

364デフォルトの名無しさん2019/06/13(木) 20:40:29.16ID:l9amdy+N
>>362 PHP
1

365デフォルトの名無しさん2019/06/13(木) 21:09:03.26ID:UDXJ1rkZ
>>362 javascript
'⚀'

366デフォルトの名無しさん2019/06/13(木) 21:18:28.25ID:Oox4dDUw
>>362 Ruby
p$.

367デフォルトの名無しさん2019/06/13(木) 21:29:38.97ID:yBwKh2Mt
>>362 Ruby
def dice
n = [0, 0, 0, 0, 0, 0]
1000000.times do n[(0...6).to_a.sample] += 1 end
p n
n.rindex(n.max) + 1
end
puts dice

368蟻人間 ◆T6xkBnTXz7B0 2019/06/13(木) 21:38:38.55ID:FGFZkT/Z
お題: トランプのハートの1〜mとダイヤの1〜mの合計2m枚(1≦m≦9)を使って神経衰弱ゲームをするプレーヤーを実装し、n人のプレーヤーで神経衰弱ゲームをシミュレーションせよ。
カードは横一列に並べられる。最初は全て裏面でランダムな並びとする。
プレーヤーはカード番号の並びを文字列として読み取ることができる(裏面はゼロと見なす)。

369デフォルトの名無しさん2019/06/13(木) 21:41:29.88ID:flist1Oo

370デフォルトの名無しさん2019/06/13(木) 21:45:57.30ID:V6nODsfN
>>362 Pharo/Squeak Smalltalk

#('⚀' '⚁' '⚂' '⚃' '⚄' '⚅') atRandom. "=> '⚁' "

371デフォルトの名無しさん2019/06/13(木) 21:47:11.24ID:yBwKh2Mt
>>362
puts Time.now.sec % 6 + 1

372蟻人間 ◆T6xkBnTXz7B0 2019/06/13(木) 22:27:44.15ID:FGFZkT/Z
>>368
出力例。
000000
プレーヤー1が開きました。
100200
不一致。閉じます。
000000
プレーヤー2が開きました。
110000
一致。プレーヤー2は計2枚獲得。
プレーヤー2が開きました。
110202
一致。プレーヤー2は計4枚獲得。
プレーヤー2が開きました。
113232
一致。プレーヤー2は計6枚獲得。
プレーヤー2の勝ち。

373蟻人間 ◆T6xkBnTXz7B0 2019/06/13(木) 22:55:45.20ID:FGFZkT/Z
>>368
補足。文字列でも配列でもいい。
一枚ずつでも二枚ずつでもいい。
プレーヤーは

374デフォルトの名無しさん2019/06/15(土) 12:26:21.79ID:n7CfuAo6
>>362
Kotlin スクリプト

Unicode の DIE FACE-1 〜 6 を使う場合はこれ。

println((0x2680 + kotlin.random.Random.nextInt(6)).toChar())

ASCII の数字(所謂半角の数字)にしたい場合はこれ。

println(('0' + kotlin.random.Random.nextInt(6)).toChar())

漢数字にしたければこれ。(これにサイコロの文字を割り当てても良い)

println("一二三四五六"[kotlin.random.Random.nextInt(6)])

375デフォルトの名無しさん2019/06/15(土) 12:27:27.56ID:n7CfuAo6
あ、ASCII の場合は何も考えずに1足してただ出力すれば良いだけだった。
まあいか。

376デフォルトの名無しさん2019/06/15(土) 14:29:00.37ID:54Zm/EIO
>>362 なんでそんなの出すんだよ。、問題になってないじゃないか。
解答 ⚄

377デフォルトの名無しさん2019/06/15(土) 16:05:02.20ID:BY4KYcRQ
ダイスってトライグラフじゃねーか!!
色々変換かけないと出せなくて苦しい。@C++。

ちなみにトライグラフの仕様は削除されました。

378デフォルトの名無しさん2019/06/15(土) 16:38:27.08ID:0Ytlw1xG
>>371
イカサマ賽じゃねーか

379デフォルトの名無しさん2019/06/15(土) 16:46:37.42ID:BY4KYcRQ
https://ideone.com/HU8OdB
>>362 C++
メモリ上に持つことはできてデバッガでも表示されるが、iostreamが認識なくて数字になる。
wchar_tのように組み込み型になってないみたい。@VC++

にわかにはここまでしかできない。Orz

380デフォルトの名無しさん2019/06/16(日) 12:54:26.74ID:yFpqmFPd
>>362 R
cat(sample(1:6,1))

381デフォルトの名無しさん2019/06/16(日) 14:16:01.82ID:e+LWqLgl
>>362 Python

import random

for _ in range(10) : print(random.choice("⚀⚁⚂⚃⚄⚅"), end=' ')

# ⚅ ⚅ ⚁ ⚃ ⚀ ⚃ ⚁ ⚄ ⚂ ⚀

382デフォルトの名無しさん2019/06/16(日) 14:54:11.08ID:NJ2skO19
もふもふ

383デフォルトの名無しさん2019/06/16(日) 16:47:25.75ID:NJ2skO19
神経衰弱を作っていたが、VC2019が仮想関数をうまく扱ってくれない感じで大爆死。

384デフォルトの名無しさん2019/06/16(日) 16:54:34.40ID:NJ2skO19
https://dotup.org/uploda/dotup.org1873815.zip
ここまで作ってデバッグしようとしたらシェアードポインタが継承扱ってくれない感じになった。

385デフォルトの名無しさん2019/06/16(日) 17:02:05.88ID:e+LWqLgl
>>384 前の方からの VC++ の人かな?
なんでそんなに苦労してるのかが理解できない。
使った事ないから知らないけど。

でも、貼るんだったらzip は辞めようよ。 怖くて開けない。 ソースだけなら動かなくてもideon に張り付ければ良いじゃん。

386デフォルトの名無しさん2019/06/16(日) 17:12:16.15ID:NJ2skO19
>>385
ソースが2分割されててまとめたほうがいいかと思ったけど。
ZIPって脆弱性あるの?

張りなおすわ。

387デフォルトの名無しさん2019/06/16(日) 17:16:39.10ID:NJ2skO19
https://ideone.com/mqLP90
C++。開発中だが、頓挫したので挙げておく。
面倒なことしてるとは言うけど、プレイヤー分けたほうがそれっぽいかと思って分けてある。
あまり深い意味はないよ。

388 ◆QZaw55cn4c 2019/06/16(日) 17:58:27.24ID:gDHKfsB6
お題:
a, b, c, d, e, f, g, h, i, j, x は正の整数で
a^3 - b^3 = c^3 - d^3 = e^3 - f^3 = g^3 - h^3 = i^3 - j^3 = x
を満たす.
条件を満たす最小x と対応する a, b, c, d, e, f, g, h, i, j を求めよ

389デフォルトの名無しさん2019/06/16(日) 18:10:27.80ID:0YuYzKwS
>>387
仮想関数名前違うじゃん

390デフォルトの名無しさん2019/06/16(日) 18:59:11.36ID:NJ2skO19
https://ideone.com/StMJSA
>>神経衰弱。
一応、ランダムプレイヤーで終了まで走ったのでアップ。おしまい。
いい暇つぶしになった。

>>389
あぁ、別スレにも投げたんだが、即反応があって赤っ恥だよ。
直したところ、通ったので適当にデバッグが可能になった。

391デフォルトの名無しさん2019/06/16(日) 19:15:07.52ID:SF357sr+
NervousBreakdown って名前はユーモアでそうしてるだけ?
カードゲームの神経衰弱って、(一部の)日本人しか連想できなさそうな名前だけど

392デフォルトの名無しさん2019/06/16(日) 19:15:53.29ID:EJ1uP6fE
俺は英語に詳しいんだ

393デフォルトの名無しさん2019/06/16(日) 19:17:19.26ID:NJ2skO19
>>391
グーグルで翻訳かけたらそれが出たので脳死で採用。
英語下手なんだ。

394デフォルトの名無しさん2019/06/16(日) 21:36:03.28ID:0GeuHYqO
ゲーム名とかは翻訳に掛けるんじゃなくてwikipediaとかで調べればいいと思うよw

395デフォルトの名無しさん2019/06/16(日) 21:52:41.52ID:paRCIAHR
>>393
concentration または memory ではないかな。

396デフォルトの名無しさん2019/06/16(日) 22:00:19.21ID:NJ2skO19
>>395
ウィキペディアには、前者が書いてあった。
ローカルの直しておくかな。
イデオンは編集可能期限が過ぎてる。

397 ◆QZaw55cn4c 2019/06/16(日) 22:15:01.42ID:gDHKfsB6
>>388
条件を追加します、a, b, c, d, e, f, g, h, i, j は互いに異なる正の整数です
試算では
x = 1412774811
になりました

398デフォルトの名無しさん2019/06/16(日) 22:24:36.49ID:81Mc3quK
数学の宿題解いてくださいスレ立てれば

399 ◆QZaw55cn4c 2019/06/16(日) 23:19:03.49ID:gDHKfsB6
>>398
どうして、あるいはどういう点によって、これは宿題だと思ったのですか?

400蟻人間 ◆T6xkBnTXz7B0 2019/06/16(日) 23:21:46.39ID:QegIZpn+
お題: 入力からC言語の整数リテラルもしくは浮動小数点数リテラルを読み取り、型の種類、実際の値の十進表現、そして型のバイトサイズを出力するプログラム。
入力が不正な場合はERRORと出力せよ。
前後の空白は読み飛ばすこと。

401デフォルトの名無しさん2019/06/17(月) 01:22:44.99ID:ikLTlFyV
https://ideone.com/tSqKkb
>>400
ベターC。今流行りのTrueパーサーというやつです、はい。
怒られるヤツです、はい。

ローレベルは苦手だ。

402デフォルトの名無しさん2019/06/17(月) 01:30:23.22ID:ikLTlFyV
>>397
数字が異なるモノであることをチェックするのが面倒だなぁ。字数多くて。

403デフォルトの名無しさん2019/06/17(月) 03:31:09.45ID:lxC/KfUO
>>388,397
俺も適当に回したもので1412774811が出たが、
それが正しいかどうか調べるのは21701までの総当たりで1412774811より小さい条件を満たすものが無けりゃええんよな?
21702^3 - 21701^3が1412865307になって1412774811を超えるけーの

404デフォルトの名無しさん2019/06/17(月) 14:19:11.19ID:ikLTlFyV
https://ideone.com/yqze0k
>>388 >>397
総当たり(予定)
概算書いてあるから簡単かと思ったら、リリースでも終わらないでござる。
よく考えたら、15ビットの10乗だったので死ぬわ。でござる。

405デフォルトの名無しさん2019/06/17(月) 14:44:54.54ID:ikLTlFyV
https://ideone.com/LROfLu
>>404 の おまけ。
ハッシュにしてみたら、面倒なチェック落とせるんじゃね?と思い、物故んでみたところ。
メモリ限界に達して死にました。南無。

406デフォルトの名無しさん2019/06/17(月) 17:11:31.48ID:DBfNM9nt
>>368 Squeak/Pharo Smalltalk

| m scores turn cards mask print |
m := 3.
scores := #(0 0).
cards := ((1 to: m), (1 to: m)) shuffled.
Transcript open; clear.
(print := [:val | Transcript cr; show: val]) value: cards * (mask := Array new: m*2 withAll: 0).
turn := 1.
[mask includes: 0] whileTrue: [
| player choice prevMask pair |
player := turn - 1 \\ 2 + 1.
choice := (mask negated + 1 * (1 to: m * 2) copyWithout: 0) shuffled first: 2.
prevMask := mask copy.
pair := choice collect: [:pos | mask at: pos put: 1. cards at: pos].
print value: 'プレーヤー', player asString, 'が開きました。'; value: cards * mask.
pair asSet size caseOf: {
[2] -> [print value: '不一致。閉じます。'; value: (mask := prevMask) * cards. turn := turn + 1].
[1] -> [print value: ('一致。プレーヤー{1}は計{2}枚獲得。' format: {player. scores at: player incrementBy: 2})]
}
].
print value: (scores asSet size = 1
ifTrue: ['引き分け。']
ifFalse: ['プレーヤー', (scores indexOf: scores max) asString, 'の勝ち。'])

407デフォルトの名無しさん2019/06/17(月) 18:07:12.55ID:1OuEx0ms
>>397 >>388
お、なんか簡単に出来なさそうだから、やってみるかな。 たまたま記号計算の勉強中だから、やってみるがそっちの勉強の方が難しすぎて答えまでたどり着けるかどうかわからんが、良い練習問題になる。

408蟻人間 ◆T6xkBnTXz7B0 2019/06/17(月) 18:27:18.50ID:00OaCjzA
お題: あなたは完全予約制の映画館の運営責任者だ。映画館にある10x10席について予約アプリを作ることになった。

仕様:
2桁の座席番号で空いてる席を予約できる。
「おまかせ」ボタンで席を決めてくれる。
席が決まったら、整理券を発券する。
「印刷」ボタンで予約状況を印刷できる。
「売上」ボタンで売上を計算できる。

409 ◆QZaw55cn4c 2019/06/17(月) 18:52:34.71ID:mDiaA7dQ
>>402
問題文が悪いようですね、ごめんなさい
言いたいことは
任意の正の整数 a, b, の三乗差 a^3 - b^3 で表される整数について、これが 5 通りの三乗差で表現できる最小の整数を求めよ
のつもりだったのです

4通りの三乗差で表現できる最小の数は
165^3-93^3=162^3-111^3=178^3-63^3=678^3-3^3=4118877
です。

>>403
最悪 (10進4桁)^3 でなんとかなると思っていましたが…

410 ◆QZaw55cn4c 2019/06/17(月) 20:32:11.25ID:mDiaA7dQ
>>409
こちらで書いた試行プログラムにバグが見つかりました

4通りの三乗差で表現できる最小数は
165^3-72^3=162^3-51^3=178^3-115^3=678^3-675^3=4118877

20年ぶりにバグ出ししてしまった…てへぺろ

411デフォルトの名無しさん2019/06/17(月) 20:39:53.72ID:kwMyLS9e
いっっっつも問題修正してるじゃん。
雑なんだよ。センスも能力も無いのでは?

412 ◆QZaw55cn4c 2019/06/17(月) 20:45:27.57ID:mDiaA7dQ
>>411
はい、能力もセンスもありませんので、こちらで胸を借りようかと(宿題スレもあわせて)10年くらい書き続けてこの様だったりするのです…

413 ◆QZaw55cn4c 2019/06/17(月) 21:59:24.42ID:mDiaA7dQ
>>411
あれ?
直前の私のお題は
http://2chb.net/r/tech/1524570314/795,796
http://2chb.net/r/tech/1480579110/891
でしたが、「いっつも」と言われるほど問題を修正しまくっていましたっけ?

414デフォルトの名無しさん2019/06/17(月) 23:25:47.26ID:kD34CthS
>>362 なでしこ

(6 の 乱数) + 1 を 表示

415デフォルトの名無しさん2019/06/18(火) 01:58:28.56ID:yt8XeQST
>>408
なんのアプリ?

416デフォルトの名無しさん2019/06/18(火) 06:13:34.61ID:3nOE2mBA
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
http://2chb.net/r/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。

417デフォルトの名無しさん2019/06/18(火) 10:36:11.03ID:gPTwn7rm
お題:あからさまなループ(再帰、goto等も含む)を使わずに1から100までを表示するコードを書いてください。

参考(ネタバレ注意)
https://www.quora.com/How-can-I-print-1-to-100-in-C%2B%2B-without-a-loop-goto-or-recursion

418デフォルトの名無しさん2019/06/18(火) 14:41:48.42ID:C7xWA/+P
>>417 Squeak/Pharo Smalltalk

1000 / 999 squared asScaledDecimal: 300

"=> 0.001002003004005006007008009010
011012013014015016017018019020
<snip>
081082083084085086087088089090
091092093094095096097098099100s300 "

419デフォルトの名無しさん2019/06/18(火) 17:18:04.54ID:yt+j24gZ
>>417
Kotlin スクリプト
こういうのアリか?

println((1..100).joinToString())

420デフォルトの名無しさん2019/06/18(火) 17:25:13.33ID:0ZczZHMk
>>417
pythonなら超簡単に書けそう。
俺は書かないけど。

421デフォルトの名無しさん2019/06/18(火) 17:31:24.32ID:GIiOlD+x

422デフォルトの名無しさん2019/06/18(火) 23:24:46.27ID:iS/QjWZR
>>417 そもそもなんのためにこんな小汚いコーディングしてるのか理解不能。 >>417 の出題者の目的はなんだ?

Python for loop 無しというルールがわからん
これはループしてないだろ?

print( [i for i in range(1,101) ] )

423デフォルトの名無しさん2019/06/18(火) 23:31:47.74ID:uzZY1452
パズルとか頓智とかゴルフとかそういう系統でしょ
あなたにはおそらく今後5年間は理解できそうにないからわざわざ首を突っ込まなくていいんじゃない?
それとそのコードだとforを使ってることになるからダメだよ
「なんでダメなの?」と聞かれてもその手の遊びを本当に理解できない物体がいるのでコミュニケーション不可能だから答える必要はない

424デフォルトの名無しさん2019/06/18(火) 23:38:20.95ID:LmXiKmLw
printで1から100まで出力したらダメですかw

425デフォルトの名無しさん2019/06/19(水) 00:18:45.19ID:SHnWP/2E
>>424
別にいいけど、受けないとわかってるギャグを言う時と同じくらい恥ずかしいと感じるんじゃないかな

426デフォルトの名無しさん2019/06/19(水) 00:25:06.13ID:vbzhpePV
>>423 ま、いいけどさ、for という言葉が嫌いなら

>>417 Python

print(list(range(1,101)))
結果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

427デフォルトの名無しさん2019/06/19(水) 00:26:59.96ID:5w3Qflb9
rangeもダメです

428デフォルトの名無しさん2019/06/19(水) 00:29:09.75ID:fEpvNKSm
>>397
2分46秒で答えが出た。このくらいで答えが出るはいいお題。

429デフォルトの名無しさん2019/06/19(水) 00:29:30.92ID:vbzhpePV
>>427 何なら良いんだよ。まさかgoto 文以外はダメだとか言わないだろうな。
もう一度聞くが、for と range 以外なら良いのか?

430デフォルトの名無しさん2019/06/19(水) 00:31:10.59ID:5w3Qflb9
>>429
じゃあrangeは良いです

431デフォルトの名無しさん2019/06/19(水) 01:07:24.29ID:vbzhpePV
>>417 >>427 >>419 kotlin と、>>421 commonLisp もダメなんだな?

とにかく自動生成される数列は許さないんだろ?
かつループも、再帰コールも、goto も使うなと。

やーめた。

432デフォルトの名無しさん2019/06/19(水) 01:35:17.48ID:mmqopiXL
>>417 Perl5

print "@{[1..100]}\n";


実行結果
$ perl 14_417.pl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
89 90 91 92 93 94 95 96 97 98 99 100

433デフォルトの名無しさん2019/06/19(水) 01:47:16.78ID:G/RPQnNp
https://ideone.com/sjWw95
>>417
見よ、この土方力を。
趣旨からしてこういうことだよね。
汎用性つらぽよ。

434デフォルトの名無しさん2019/06/19(水) 01:57:49.22ID:G/RPQnNp
言い訳するんやったら、ループじゃなくて、掛け算です。

と、言ってみる。

435デフォルトの名無しさん2019/06/19(水) 03:30:31.24ID:4D/OEXM7
>>431
ダメってことはないけど「お!」って思わせる意外さや面白さはないよね?

>>417は「およそ誰もが最初に思いつく方法(つまりループ等)以外で
1から100までを表示するコードをひねくり出してみてください」
という知性やユーモアを問うゲーム

436デフォルトの名無しさん2019/06/19(水) 05:20:19.54ID:NxDxxkQ7
>>417 R
cat(1:100)

437デフォルトの名無しさん2019/06/19(水) 09:45:26.08ID:gZl/9gTZ
クソ問出しといて面白い回答でオレ様を感心させろとか言う厚顔無恥なクズ

438デフォルトの名無しさん2019/06/19(水) 10:47:05.36ID:WYELJAwQ
>>417
bash

echo {1..100}

439デフォルトの名無しさん2019/06/19(水) 11:28:35.01ID:AE1x6OvS
だから言ったじゃん
その手のユーモアを全く理解できない物体がいて、そいつらとはコミュニケーション不可能だ、って
わざわざ首を突っ込んできてクソ呼ばわり、害悪そのものだ

「理解不可能」「出題者の目的」「ルールが分からん」と三拍子揃ってるからコミュニケーション不可能の異質な生物だと思った方がいい
for rangeのを出して来て「ループしてないだろ?」と聞く時点でもはやコミュニケーション不可能、価値感が根本から違う
表面だけは人間の姿形をしてるが中身は全然違う物体で、そいつらとはコミュニケーションや意志疎通は出来ない
絶望的に話が合わないし価値感も全く違うので、人語を解するコミュニケーション不可能な人型生物、程度に見ておいた方がいい

440デフォルトの名無しさん2019/06/19(水) 14:20:18.59ID:obZmDbZo
おだいじに

441蟻人間 ◆T6xkBnTXz7B0 2019/06/19(水) 14:21:10.78ID:GEIUHOY6
>>415
好きな端末でいいよ。

442デフォルトの名無しさん2019/06/19(水) 16:12:40.53ID:XyjBYhsR
>>417 Brainfuck
https://ideone.com/AOy5TP
あからさまなコピペ

443デフォルトの名無しさん2019/06/19(水) 17:16:09.66ID:ogviAWT/
>>417 javascript
console.log(Array.from({length:100},(_,i)=>i+1).join`\n`)

444デフォルトの名無しさん2019/06/19(水) 19:47:06.93ID:OY3s5aed
>>408
一席いくら?

445蟻人間 ◆T6xkBnTXz7B0 2019/06/19(水) 19:56:34.95ID:GEIUHOY6
>>444
200円(税込)

446デフォルトの名無しさん2019/06/19(水) 21:58:53.08ID:5w3Qflb9

447デフォルトの名無しさん2019/06/19(水) 22:25:22.23ID:n9mQOThz
>>388
a^n-b^nの因数分解を眺めていたらnが素数の時はa-bの項しかないようだ。そして項数が素数になっている。

448デフォルトの名無しさん2019/06/19(水) 23:11:59.86ID:1TMSR9rp
>>446
再帰…

449デフォルトの名無しさん2019/06/20(木) 02:27:04.40ID:oTe0B3jI
Javaって言語は、一体何のために作られたのか…

450デフォルトの名無しさん2019/06/20(木) 02:37:37.28ID:oTe0B3jI
>>433
そのコードを見て1から100までを表示するプログラムだと
仕様を解釈するのは困難、
何のためにコードを書いてるのか意義が…
ドカタから脱却しなよ

451デフォルトの名無しさん2019/06/20(木) 02:52:32.60ID:Vo9FXuh9
>>417
Kotlin
https://paiza.io/projects/KZhyXLlN2KP7UUVWCPOcwA

ループはしていない。

452デフォルトの名無しさん2019/06/20(木) 03:12:52.52ID:abq7/G7i
>>417 phi
print(oneToHundredSeparatedBySpace())

453デフォルトの名無しさん2019/06/20(木) 03:22:25.03ID:BE85dc2p
>>417 PHP
1
0999999999988888888887777777777666666666655555555554444444444333333333322222222221111111111
0987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654354321
縦書きなので右から左へ。

454デフォルトの名無しさん2019/06/20(木) 08:15:15.24ID:eWAtuK2L
>>450
何のためにって、お題に対して面白い解き方をするコードを挙げているのだから、コードから仕様を解釈するのが困難だなんて指摘は的外れだろうよ

455デフォルトの名無しさん2019/06/20(木) 08:45:45.25ID:/HnXr8PE
>>450
ドカタはお前やwww

456デフォルトの名無しさん2019/06/20(木) 12:35:25.86ID:C9bRCGTz
>>417
スクリプトか、それに準ずる文法持ってる言語有利やな。

Haskell

main = print [1..100]

それは1ー100のリストやろ言うなら

main = mapM print [1..100]

とか改行無しなら

main = mapM (putStr.show) [1..100]

“,”で区切れデコ助野郎言うなら

main = (putStrLn.init.concat.map ((++ ",").show)) [1..100]

457デフォルトの名無しさん2019/06/20(木) 13:40:58.14ID:8QzdDreI
mapは実質ループ処理やろ…

458デフォルトの名無しさん2019/06/20(木) 14:00:32.25ID:yAxi76dJ
mapはダメです

459デフォルトの名無しさん2019/06/20(木) 15:39:33.58ID:lLho4HyI
>>450
書いた人間だけど。
5個表示するのが5個あったら25個表示出来て、それを4個並べて100個!
完璧な作戦じゃないですか!!!!遂行するのが不可能ということもない。

5*5*4=100!!

460デフォルトの名無しさん2019/06/20(木) 16:32:25.26ID:Gh9YFRfh
>>417 はループ禁止とか言いながら、プログラムの外でループしてるだけのプログラムじゃないか。
プログラムにループかなくて繰り返しなんてあり得ない事がわからないバカなんだろうな。

461デフォルトの名無しさん2019/06/20(木) 16:35:07.14ID:lLho4HyI
屁理屈の応酬が見たかったんだろうけどね。

462デフォルトの名無しさん2019/06/20(木) 16:43:22.80ID:xEuEtm2x
そういう意味ではソフトから見て最小単位であるアセンブラのブロック転送命令もマイクロコードでループしてるわね。
と言う訳で、解なしが正解かな?

463デフォルトの名無しさん2019/06/20(木) 17:02:57.57ID:UeiaYI4k
あからさまなループ禁止でループ完全な禁止じゃないでしょそもそも

464デフォルトの名無しさん2019/06/20(木) 17:20:12.64ID:Gh9YFRfh
こんなドカタの力仕事の訓練しても何にもならない、こんなので楽しめるなんて ドM だろ。
綺麗なプログラムは許さない。できるだけ小汚いプログラムしかダメ。 いかに小汚くプログラム出来るかのコンテストです。

>>463 屁理屈だな。map や range などは明らかなループじゃないだろ。 明らかなループってなんだ?
1行で書かれた綺麗なプログラムは許しませんと言えよ。

465デフォルトの名無しさん2019/06/20(木) 17:24:08.31ID:lLho4HyI
人の持つ適度さっていうのを裁量してるともとれるし。

466デフォルトの名無しさん2019/06/20(木) 17:25:50.68ID:UeiaYI4k
mapだめって言ってるのが出題者どうかもわかんねえじゃん
あと解きたくないなら解きたくないでいいしほっとけばいい
曖昧だと思うなら質問すればいい
あと訓練するためのスレでもない

467デフォルトの名無しさん2019/06/20(木) 17:49:38.66ID:yAxi76dJ
じゃあmapは良いです

468デフォルトの名無しさん2019/06/20(木) 17:50:26.82ID:yAxi76dJ
>>464
ドカタはダメです

469デフォルトの名無しさん2019/06/20(木) 18:40:11.89ID:7bp91DBM
クソ問。

470デフォルトの名無しさん2019/06/20(木) 18:42:30.38ID:Gh9YFRfh
>>466 出題者は聞いたって答えないじゃんか。 ま、クソ問題でしかない。

471デフォルトの名無しさん2019/06/20(木) 18:43:56.11ID:8yknygrc
>>457
あからさまの定義は何?
map内部でループ使ってるからダメってなら、printf内部でループ使ってたらダメって言ってるのと一緒じゃん。

Haskell

main = sequence_ [print x | x <- [1..100]]

472デフォルトの名無しさん2019/06/20(木) 18:48:20.30ID:PrZKlplW
>>471 1行で書けるものは嫌いなんだってさ。
[1..100] なんて大っ嫌いだってさ。 自動生成される数字は全て反則だって。

473デフォルトの名無しさん2019/06/20(木) 19:12:37.52ID:lLho4HyI
一応、どの辺がプリミティブかっていうのはあると思うぞ。
オブジェクト指向と手続き型と関数型で均質なプリミティブとはいったい・・・。

ごごご・・・...,,,

474デフォルトの名無しさん2019/06/20(木) 19:44:30.14ID:dXsduSm6

475デフォルトの名無しさん2019/06/20(木) 19:49:49.24ID:Gh9YFRfh
>>474 よう解らんけど、それらはループの塊らしいよ。
要はプログラムの中で完結してる解は、全てループが入ってるはず。

476デフォルトの名無しさん2019/06/20(木) 19:51:56.16ID:Gh9YFRfh
プログラムの外でループさせろという趣旨の問題じゃないのかな?

477◆QZaw55cn4c 2019/06/20(木) 21:09:58.62ID:j5hWgvM1
>>428
試算プログラムでは40秒でした
個人的には ideone で実行結果まで出るくらいには高速化したいと思っています、ある程度高速化した上でのこの要求はかなり厳しいです

478デフォルトの名無しさん2019/06/20(木) 21:16:47.46ID:QhoGDCwl
>>475
ん、そんなことは誰もいっとらんとおもうけど?
shiroさんの解、良いじゃないか!

rangeはさておき、rangeをmapしてたらそれはもうループ処理だろう…

479デフォルトの名無しさん2019/06/20(木) 22:04:45.76ID:lLho4HyI
お題:犬作りましょう。(自由回答)
サンプル:https://ideone.com/jimp7B

人口無能・ドッグを作りましょう。
どこまで作りこむかはあなた次第。
なるべくビジュアライズして見せられるようにすると高得点です。

おひとついかがですか?

480デフォルトの名無しさん2019/06/20(木) 22:29:29.17ID:fMa85Kci
>>417 JavaScript
var n=1,t=setInterval(function(){console.log(n++);if(n>100){clearInterval(t);}},0);
>>451をJavaScriptで書き換えてみたけど明らかにループでしょこれ

481デフォルトの名無しさん2019/06/20(木) 23:38:45.25ID:OLwHtCR1
>>474 がループだとか難癖つけてる土方は
このコードが何やってんのか理解出来てんの?

482デフォルトの名無しさん2019/06/20(木) 23:44:11.27ID:Sr/gBML4

483デフォルトの名無しさん2019/06/21(金) 00:14:32.42ID:5YMvPAfL
>>481 出題者がループの定義をしていないんだから解らんよ。
format もループといえばループだろ。 繰り返しが入ってるものは全てループ。

484デフォルトの名無しさん2019/06/21(金) 00:30:08.90ID:smbNU/wq
いやいやformatはループじゃないだろ、頭湧いてるのか

485デフォルトの名無しさん2019/06/21(金) 01:02:14.01ID:Z2iYVQkJ
出題者か外野か知らないけど、ループの定義に拘ってこれはループだとかいうのはほっとけばいいんじゃないか?
そいつらの解釈なんか気にするより、他の誰かが見て感心や納得させられるような物を思い付いたら挙げてみた方が面白い。

486デフォルトの名無しさん2019/06/21(金) 02:15:56.40ID:8b/72/Ba
>>483
やっていることを理解できているかを問われているのにそれじゃ答えになってないよ
それともformatしかわからなかったという敗北宣言?

487デフォルトの名無しさん2019/06/21(金) 02:51:58.63ID:gD/sRlmt
>>388,397,477 Java
https://ideone.com/6VdAiU
あー、適当に分割しながら探索したらideone余裕だったわ
6通りは無理だがw

488デフォルトの名無しさん2019/06/21(金) 07:21:50.48ID:QhChOpgN
>>428
制約論理プログラムやデーモン型ソルバー使うと短く書けて面白い。

QR = (CSint **)malloc(STP * sizeof(CSint *));
for(i = 0; i < STP; i++){
QR[i] = cs_createCSint(1, DMIN);
}
xcost = cs_createCSint(1, XMAX);

CSint *sub[STP/2], *add[STP/2], *add1[STP/2];
for(i = 0; i < STP/2; i++) {
sub[i] = cs_Sub(QR[2*i], QR[2*i+1]);
add[i] = cs_Add(QR[2*i], QR[2*i+1]);
add1[i] = cs_Sub(cs_Mul(add[i], add[i]), cs_Mul(QR[2*i], QR[2*i+1]));
cs_Eq(cs_Mul(sub[i], add1[i]), xcost);
cs_GT(sub[i], 0);
}
for(i = 0; i < STP/2 - 1; i++) {
cs_Gt(sub[i], sub[i+1]);
cs_Lt(add1[i], add1[i+1]);
}
cs_AllNeq(&QR[0], STP);

cs_minimize(&QR[0], STP, cs_findFreeVarNbElements, xcost, cost_printSolution);

489デフォルトの名無しさん2019/06/21(金) 07:32:04.38ID:Ocejx0+r

490デフォルトの名無しさん2019/06/21(金) 07:49:55.41ID:i67HMLPS
>>417
書き込み制限で途中改行入れたが、もうこれが正解で良いんじゃね?

prinft("1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 "
"51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100");

491デフォルトの名無しさん2019/06/21(金) 07:56:09.60ID:vf8hmAK4
それも正解でしょ
書くのめんどくさいだけで

492デフォルトの名無しさん2019/06/21(金) 08:18:08.17ID:SnH180rX

493デフォルトの名無しさん2019/06/21(金) 08:39:31.90ID:+3mnNN5K
>書くのめんどくさい
え?

494デフォルトの名無しさん2019/06/21(金) 10:11:32.34ID:UUUS7pJl
写経のように一文字一文字手で入力する事が大切なのです。

495デフォルトの名無しさん2019/06/21(金) 13:49:45.38ID:RHusABfj
>>417
再帰、ループ、ループ代わりに使う関数使用禁止だと、
副作用前提なのでファイルやGUI部品(テキストボックスなど)とやり取りするしかない。

Haskell

import System.Exit
import System.Process

-- Windows ver. is String "notloop"(compile source file "notloop.hs)
main = f >> system "./notloop"

f = readFile "count.txt" >>= f'
where
f' "101" = exitWith ExitSuccess
f' n | n == "1\n" = putStr n >> wf n
f' n = putStrLn n >> wf n

wf = writeFile "count.txt".show.(+1).read

ただ、そうなると外と内で相互再帰してるみたいな感覚を覚える。

main = f1 1

f1 101 = return ()
f1 n = print n >> f2 (n + 1)

f2 n = print n >> f1 (n + 1)

496デフォルトの名無しさん2019/06/21(金) 14:10:09.62ID:aaCZYOrN
モナドはダメです

497デフォルトの名無しさん2019/06/21(金) 17:24:35.02ID:UUUS7pJl
#!/bin/sh

echo '1から100まで入力してください。'
read n
echo $n

498デフォルトの名無しさん2019/06/21(金) 17:40:03.54ID:RHusABfj
>>417
屁理屈ではあるが、自分自身を呼び出すのでは無く、
別の関数の引数に渡しているので厳密には再帰では無い。
かと言って相互再帰でも無い。

Haskell

main = f 1

f = fa f

fa _ 101 = return ()
fa fb n = print n >> fb (n + 1)

499デフォルトの名無しさん2019/06/21(金) 17:40:30.13ID:8+ftJ9Cm
>>492
姑息な!(褒め

500デフォルトの名無しさん2019/06/21(金) 17:56:02.69ID:VCA9CZc/
>>498
何にしてもインクリメントしてる時点でループ的な繰り返しを期待しているわけだから
まあ負けだよね(負けでも面白くはできる。為念)

501デフォルトの名無しさん2019/06/21(金) 18:33:41.38ID:edwbENE2
>>500 兄ちゃん、それ言っちゃ終しめーよ。

502デフォルトの名無しさん2019/06/21(金) 19:58:05.85ID:RHusABfj
>>500

>>417のネタバレ見ても6個中5個はインクリメントかデクリメント使ってるんだが。。。

・再帰は使ってない

・関数faも、fa (print.even) 1とすると

1
True(2は偶数なのでTrue)

と表示して終わるだけなので、それ単体ではmapの様なループの代わりの関数では無い

・ループ命令はHaskellにそもそも無い

十分条件は充してる。

503デフォルトの名無しさん2019/06/21(金) 21:26:57.88ID:uBc0RisT
必死だなでも負けは負けだそして何より面白さが皆無なのが致命的

厳密には再帰ではないが実質再帰と同じ効果を狙ってんだろ
それ以前に自身も屁理屈だといっちゃってる時点で、語るに落ちてるよ

504デフォルトの名無しさん2019/06/22(土) 01:32:31.17ID:zj+KJbMh
ここでは何か戦いが行われていたのか?

505デフォルトの名無しさん2019/06/22(土) 01:36:06.87ID:oaC3C1vm
日本語が読めない人との戦いが長らく続いてる

506デフォルトの名無しさん2019/06/22(土) 04:13:24.85ID:zj+KJbMh
>>417

#!/bin/sh

echo '1から100まで'

507デフォルトの名無しさん2019/06/22(土) 05:24:28.98ID:lmjByctT
>>506 正解

508デフォルトの名無しさん2019/06/22(土) 06:01:52.56ID:YIP5CpHg
やられた

509デフォルトの名無しさん2019/06/22(土) 10:21:10.77ID:lgEn1aKj
くだらない

510デフォルトの名無しさん2019/06/22(土) 11:45:18.46ID:jiW7+Eee
くだらない

511デフォルトの名無しさん2019/06/22(土) 12:11:38.82ID:lmjByctT
出題からしてくだらない

512デフォルトの名無しさん2019/06/22(土) 12:27:47.34ID:Tw+E6LX+
お題:プログラミングのお題が与えられるので、それに対する解答を回答するプログラ厶を作りなさい。

513デフォルトの名無しさん2019/06/22(土) 12:42:30.81ID:jGjp1K63
>>512 Perl5

%h = ('プログラミングのお題' => 'それに対する解答');
while (<>) {
 chomp;
 $a = $h{$_};
 print $a ? "$a\n" : "しらんがな…(´・ω・`)ショボーン\n";
}


実行例
$ echo プログラミングのお題 | perl 14_512.pl
それに対する解答
~ $ echo たわけ | perl 14_512.pl
しらんがな…(´・ω・`)ショボーン
~ $ echo たいがいにせいよ | perl 14_512.pl
しらんがな…(´・ω・`)ショボーン
~ $

514デフォルトの名無しさん2019/06/22(土) 13:03:59.60ID:7MEAdJNr
(出題者側、回答者側のいずれに問題があるにせよ)
題意が汲み取れずくだらないお題だと思うのなら
回答せずにスルーすればいいやんというのがここのルール

回答した以上は特に題意を汲み取っていない的外れな回答の場合、
相応の批判にさらされることはある程度覚悟しないと

515デフォルトの名無しさん2019/06/22(土) 13:06:05.30ID:YIP5CpHg
しらんがな…(´・ω・`)ショボーン

516蟻人間 ◆T6xkBnTXz7B0 2019/06/22(土) 13:23:12.78ID:+T90VYrY
お題: パソコンの中で猫をひげダンスさせよ。

517デフォルトの名無しさん2019/06/22(土) 14:37:40.61ID:Kdr0peZW
>>514 出題者が質問に答えずに、出題の意味も説明できずに罵声を浴びせるだけと言う態度は問題だと思うけどな。

518デフォルトの名無しさん2019/06/22(土) 15:24:12.28ID:vPRUCWwQ
出題者かどうかわからんのが問題だしトリでもつけとけばいいんちゃう

519デフォルトの名無しさん2019/06/22(土) 16:06:50.97ID:zj+KJbMh
>>516
「ひげダンス」と聞いて調べずすぐにわかる人がここに何人いるかなあ・・・

520デフォルトの名無しさん2019/06/22(土) 16:19:18.36ID:zj+KJbMh
>>507>>508
「このはし渡るべからず」を見た時の一休さんの気持ちが少しわかった。

521◆QZaw55cn4c 2019/06/22(土) 16:47:52.80ID:ICCmixle
お題と回答
>>5 : 6 10 32 36 44
>>9 : 15 34 35 79
>>11 : 48 (78) 138-139 (140) 142 146 151 154
>>19 :
>>50, http://2chb.net/r/tech/1549160513/920 : 4 85 89
http://2chb.net/r/tech/1549160513/988 == >>164 : 59 61 167 169 189 192 201 202
>>90 : 95 96
>>99 :
>>200 : 214 219
>>215 : 227
>>220 : 232 240 248 256 268
>>235 : 236 237 238 239 247 249 259 342 353
>>320 : 321 323 327 330 340
>>322 : 325 328 329 331 332 339 341 358 359
>>362 : 367 369 370 371 374 379 380 382 414

522◆QZaw55cn4c 2019/06/22(土) 16:48:10.29ID:ICCmixle
>>368 : 390
>>388 : 487 (488)
>>400 : 401
>>408 :
>>417 : 418 419 421 426 432 433 436 438 442 446 451 452 456 471 474 480 482 489 492 495 498
>>479 :

523デフォルトの名無しさん2019/06/22(土) 22:52:07.59ID:tXrMFQcm
>>417
#pragma INTERRUPT int00

static int i = 0;
void int00(void)
{
if( i <= 100 ){

printf("%d\n", i++ );

}

}

あとは割り込みのテーブルに登録するだけ

524デフォルトの名無しさん2019/06/23(日) 01:15:49.60ID:udYctx9F
>>514
> 回答せずにスルーすればいいやんというのがここのルール

勝手にルールを作るな。

525デフォルトの名無しさん2019/06/23(日) 01:37:51.82ID:owW1jJs8
>>524
別にいいやんか

526デフォルトの名無しさん2019/06/23(日) 03:01:37.82ID:okSgJcER
>>524
基本的なルールも知らん新参者はしばらくロムってろとw

527デフォルトの名無しさん2019/06/23(日) 05:03:48.13ID:kLh2Gk3t
part6くらいからこのスレ見てるけどそんな不文律知らんぞ

528デフォルトの名無しさん2019/06/23(日) 07:40:02.44ID:b081fL0l
>>417
数値に(+1)の代わりに次の値を求めるsuccに変えるだけじゃインクリメントと同じになるので、
文字列でインクリメント相当の処理を実現してみた。
(succ 1 = 2, succ 'a' = 'b', succ False = True)

リストが全部'9'か見るのにand関数使った方が行数減らせるが、
and関数も再帰と見做せるので使わなかった。
('9'と同じ数だけ'0'を用意する処理も、リスト内包表記やlength関数が再帰やループに当たる)

Haskell

main = f "1"

f = fa f
― f n = fa f n を部分適用で見掛け上の変数を減らした

fa _ "101" = return ()
fa fb "9" = putStrLn "9" >> fb "10"
fa fb "99" = putStrLn "99" >> fb "100"
fa fb "100" = putStrLn "100" >> fb "101"
fa fb [x,'9'] = putStrLn [x,'9'] >> fb [succ x,'0']
fa fb [x,y] = putStrLn [x,y] >> fb [x,succ y]
fa fb [y] = putStrLn [y] >> fb [succ y]

529デフォルトの名無しさん2019/06/23(日) 09:44:39.54ID:Zok1rHX2
>>527
でまかせ

530デフォルトの名無しさん2019/06/23(日) 09:54:46.04ID:YCKftoca
>>417
bb=1;echo $bb >/tmp/gg; watch -n 0.5 "bb=\`cat /tmp/gg\`; echo \$bb; if [ \$bb -eq 100 ]; then exit; fi; bb=\$((bb+1)); echo \$bb >/tmp/gg; "

531デフォルトの名無しさん2019/06/23(日) 11:21:05.15ID:PuD19qMM
>>527
では君はいままで自分がわからない問題が出題されたときは
問題にケチをつけてたのかね? そういうのやめてくれないかね
ちなみに僕はPart0のころからいるいわばこのスレの主だ

532デフォルトの名無しさん2019/06/23(日) 11:52:06.27ID:HeOsQws8
>>531 自分で無視しろと言っておいて人の投稿に難癖つけるのも同じだろ。 無視してろよ。

533デフォルトの名無しさん2019/06/23(日) 11:53:42.86ID:PuD19qMM
>>532
同じじゃないよ
何でもかんでも一緒にするんじゃない
ケツを出せお尻ペンペンだ!

534デフォルトの名無しさん2019/06/23(日) 11:59:27.35ID:PuD19qMM
議論を整理しよう

主の意見
・問題がわからなかったら問題が悪いと言うんじゃなくて無視しよう

木偶の坊の回答者の意見
・問題がわからなかったら問題に文句言うんだ <= これがダメ

535デフォルトの名無しさん2019/06/23(日) 12:00:12.53ID:xc930vdW
>>530
ループやな

536デフォルトの名無しさん2019/06/23(日) 12:03:05.58ID:CwGow/FI
>>531
桃白白改めミスターポポ改めピラフ改めピッコロさん、いい加減にしろ

537デフォルトの名無しさん2019/06/23(日) 12:03:58.87ID:PuD19qMM
>>535
あからさまではないからええんやで

538デフォルトの名無しさん2019/06/23(日) 12:05:40.43ID:xc930vdW
いいや、あからさまや

539デフォルトの名無しさん2019/06/23(日) 12:07:42.20ID:HeOsQws8
>>534 問題が解らなければ出題者に聞くのがまず第一だろ。 そして出題者は質問に答える義務がある。

540デフォルトの名無しさん2019/06/23(日) 12:25:37.87ID:xc930vdW
>>537
じゃあこれはあからさま?
var n=1,t=setInterval(()=>{if(n<=100){console.log(n);n++;}else{clearInterval(t);}},0);

541デフォルトの名無しさん2019/06/23(日) 12:31:57.22ID:HeOsQws8
>>540 どうでもいいんじゃない? 自分がこれで良いと思えば良いんだよ。

誰にもあからさまと言う基準は作れない。 プログラムの中のループと言えばそうなるけどな。
ただ、サンプルの中でもイベントを使う方法は載ってたからOK なんじゃないのかな。

もうどうでも良いよ。

542デフォルトの名無しさん2019/06/23(日) 12:41:42.98ID:PuD19qMM
>>538
あからさまではないんや!!

>>540
それもあからさまにループしてない良いコードと言えます

543デフォルトの名無しさん2019/06/23(日) 12:42:42.10ID:PuD19qMM
>>539
義務なんてない
会話の裁量はケースバイケースや

544デフォルトの名無しさん2019/06/23(日) 12:46:10.20ID:HeOsQws8
>>542 何で出題者でもないお前が仕切ってるんだよ。
それともお前が出題者?

545デフォルトの名無しさん2019/06/23(日) 12:49:22.24ID:PuD19qMM
>>544
我スレの神なり

546デフォルトの名無しさん2019/06/23(日) 12:50:21.23ID:PuD19qMM
議長として議論を執行する

547デフォルトの名無しさん2019/06/23(日) 12:53:58.33ID:uxmsHz5m
>>540
あらかさまじゃねーけど>>523の二番煎じはつまらない

548デフォルトの名無しさん2019/06/23(日) 13:07:52.17ID:xc930vdW
>>547
>>540>>480を書き換えたコード、オリジナルは>>451>>523の方が後なんだけど

549デフォルトの名無しさん2019/06/23(日) 13:37:18.23ID:CFRhe1LU
全部のコードをいちいち見てないし、二番煎じということを指摘するには十分だろ

550デフォルトの名無しさん2019/06/23(日) 13:40:05.34ID:MlHMJpT5
>>545
桃白白改めミスターポポ改めピラフ改めピッコロさん、いい加減にしろ

551デフォルトの名無しさん2019/06/23(日) 14:01:14.90ID:0sdWkE2M
ID:PuD19qMM は多分クソみたいな出題してボロカスに叩かれたことがあるんでしょ
叩かれたこと無いって多分レスすると思うけど、きっとあるんでしょ

552デフォルトの名無しさん2019/06/23(日) 14:06:35.85ID:kLh2Gk3t
はい、この議論今日まで〜

553◆QZaw55cn4c 2019/06/23(日) 16:57:08.99ID:DC/NnmXU
>>388,397,409
http://2chb.net/r/tech/1434079972/59
出題者想定の試算プログラムを公開します。

>>487
とっても早いですね…

554デフォルトの名無しさん2019/06/23(日) 17:32:48.34ID:JIIa3Mhw
>>531

> ちなみに僕はPart0のころからいるいわばこのスレの主だ

明記しとけ
つかスレの主ちがうじゃん

555蟻人間 ◆T6xkBnTXz7B0 2019/06/23(日) 17:37:50.61ID:/bRV2XXv
お題: サインカーブを描画せよ。

556デフォルトの名無しさん2019/06/23(日) 20:48:49.59ID:lpZCfMkq

557◆QZaw55cn4c 2019/06/23(日) 21:25:20.51ID:DC/NnmXU
お題
1) √2 を小数点以下 1000 桁算出せよ
2) n ∈Z, 1 <= n <= 100 を与えたとき√n を小数点以下1000 桁算出せよ

558デフォルトの名無しさん2019/06/23(日) 21:28:12.22ID:+RY3MuQ7
>>555 Squeak Smalltalk

(PolygonMorph
shapeFromPen: [:pen |
| factor |
factor := Float pi / 100.
pen place: 0@0.
0 to: 200 do: [:x | pen goto: x @ ((x * factor) sin / factor)]]
color: Color transparent
borderWidth: 2
borderColor: Color red) makeOpen; position: Display center; openInWorld

5594872019/06/23(日) 22:07:30.94ID:K2cXmmzo
>>388 Java
https://ideone.com/9d18x4

>>553
分割荒くしたらもっと早くなったよ
x=13194120658951(=2097151^3-2097150^3)以下に6通り見つからなかったが

560デフォルトの名無しさん2019/06/23(日) 22:46:35.00ID:+RY3MuQ7
>>557 Pharo/Squeak Smalltalk

| sqrt |
sqrt := [:n :m |
| a b nDigits intDigits str |
a := 5 * n. b := 5.
nDigits := m + (intDigits := (n sqrt log + 1) asInteger )+ 1.
[:exit | [
a >= b ifTrue: [a := a - b. b := b + 10] ifFalse: [
b log > nDigits ifTrue: [exit value] ifFalse: [
a := a * 100. b := b // 10 * 100 + (b \\ 10)
]
]
] repeat] valueWithExit.
((str := b asString) first: intDigits), '.', ((str allButFirst: intDigits) first: m)
].

((1 to: 100) collect: [:n | n -> ((sqrt value: n value: 1000) contractTo: 30)]) asStringWithCr

"=> 1->'1.000000000000...0000000000000'
2->'1.414213562373...8229518488472'
3->'1.732050807568...8363954959381'
4->'2.000000000000...0000000000000'
5->'2.236067977499...0407072278724'
6->'2.449489742783...7009535324726'
7->'2.645751311064...4698120004300'
<snip>
97->'9.848857801796...5854929396030'
98->'9.899494936611...7606629419304'
99->'9.949874371066...6373124778344'
100->'10.00000000000...0000000000000' "

561デフォルトの名無しさん2019/06/24(月) 01:26:06.66ID:oP64UM4n
>>553 あのさ、何か言いたいのはわかるけど、リンクくらいまともに貼ろうよ、
カンマで区切られたスレなんて俺のブラウザでは辿れないし、リンク先のページもどれがなんなのかわからないし、自分が勝手に思ってても人には伝わらないよ。
よくそんなのでプログラムの世界で生きてるね。 クビにならないことを祈るよ。

562デフォルトの名無しさん2019/06/24(月) 01:56:20.12ID:JSF3ka2M
>>557
bc

scale=1000
sqrt(2)
for (n = 1; n <= 100; n++) sqrt(n)

563デフォルトの名無しさん2019/06/24(月) 06:28:51.10ID:PKUWjPMB
>>555 Lua
prrint("∿")

564デフォルトの名無しさん2019/06/24(月) 14:09:18.13ID:BXNZhLwW
>>555 Python sympy

from sympy import Symbol, sin , plot

x = Symbol('x')
plot(sin(x),(x,0,10))

565デフォルトの名無しさん2019/06/24(月) 14:11:03.35ID:BXNZhLwW
>>555 Python numpy , matplotlib

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)

566デフォルトの名無しさん2019/06/24(月) 16:09:05.86ID:BXNZhLwW

567デフォルトの名無しさん2019/06/24(月) 16:10:01.37ID:BXNZhLwW
こっちの方が良いね
プログラミングのお題スレ Part14 	->画像>47枚

568デフォルトの名無しさん2019/06/24(月) 17:22:50.00ID:y3nBEW/D
プログラミングのお題スレ Part14 	->画像>47枚
>>555
C++で書いてみたよ。
画像生成は自作コード。
面クラス作ってwindows bitmap 用に書き込みした。
趣味で色キチにしてある。

569デフォルトの名無しさん2019/06/24(月) 17:48:28.72ID:DDT4XoH6
>>555
ChromeのURLバーに叩き込む
javascript:document.innerHTML='<svg><path d="M0 50 C 40 10 60 10 100 50 C 140 90 160 90 200 50 Z">'

スクショ
プログラミングのお題スレ Part14 	->画像>47枚

570蟻人間 ◆T6xkBnTXz7B0 2019/06/24(月) 17:52:22.52ID:eqHVB1zL
だんだん難しくなるよ。

お題: 8の字曲線を描画せよ。

571デフォルトの名無しさん2019/06/24(月) 18:22:01.03ID:lp2pR5Nh
>>570 そんな似たような問題飽きるよ。

572デフォルトの名無しさん2019/06/24(月) 18:24:31.37ID:DDT4XoH6
console.log('8')

573蟻人間 ◆T6xkBnTXz7B0 2019/06/24(月) 18:33:31.05ID:oK/rIQPy
お題: ベルトコンベヤで左から右へチーズケーキが不定期に断続的に供給される。Aさん、Bさん、Cさんは右から順番にチーズケーキを食べる。
ただし、AさんはBさんより食べる速度が早い。BさんはCさんより食べる速度が早い。お腹一杯になるとしばらく食べられない。
これをマルチスレッドで再現せよ。

574デフォルトの名無しさん2019/06/24(月) 18:40:26.97ID:7jtxfSjt
>>570 Squeak Smalltalk

(PolygonMorph
shapeFromPen: [:pen |
| lemniscate factor |
lemniscate := [:θ | θ cos / (1 + θ sin squared) @ (θ sin * θ cos / (1 + θ sin squared))].
factor := 100.
pen up.
0 to: 360 do: [:deg | pen goto: (lemniscate value: deg degreesToRadians) * factor; down]]
color: Color transparent
borderWidth: 2
borderColor: Color red) position: Display center; openInWorld

"=> プログラミングのお題スレ Part14 	->画像>47枚 "

575蟻人間 ◆T6xkBnTXz7B0 2019/06/24(月) 19:18:23.37ID:oK/rIQPy
お題: あなたは宇宙時代の靴屋さんだ。宇宙人の足底の形状データが二次元多角形ベクトルデータとして与えられる。多角形が円に収まるように円形の靴の底を設計せよ。

576◆QZaw55cn4c 2019/06/24(月) 19:34:41.44ID:SbfV+wvC
>>561
>自分が勝手に思ってても人には伝わらないよ。

ほう、私の記述が不十分というわけですか?
しかし、

>カンマで区切られたスレなんて俺のブラウザでは辿れないし

これは特に「アンカー」というのですよ。「アンカー」、この単語をご存知なかったのですか?

>カンマで区切られたスレなんて俺のブラウザでは辿れないし

私の専用ブラウザでは十分にたどれますよ、おま環でしょう、おま環、おま環(爆笑)

>リンク先のページもどれがなんなのかわからないし、

QZ 専用スレのことですか
そもそも専用スレを持っているということ自体が特筆に値するでしょう
あなたも専用スレを作ってみたらいい、一発で削除されますよ

それに、そこでは私は、私が何を目的に何を書いたのか一目瞭然ですね
必要にして十分とはまさにこのことでしょう
過去ログはお布施をすれば自由に取り込めます、おま環、おま環(爆笑)

>よくそんなのでプログラムの世界で生きてるね。 クビにならないことを祈るよ。

あなたが5ch で不自由な制約のもとにあるのはよくわかりました、ひとことでいってお布施が足りない、まずはお布施をすることですね
私は職業プログラマでないので、すでにプログラムの世界ではクビになっています、ついでに現在の職業もクビになりそうです…いや、ラプラス変換の部分分数展開の計算が合わなくて苦労しているのですよ
部分分数展開については、近いうちにこのスレのお題にしますよ、乞うご期待!

577デフォルトの名無しさん2019/06/24(月) 19:35:12.92ID:XuRZTEew
>>570 Python sympy

from sympy import symbols , sin
from sympy.plotting import plot_parametric

t = symbols('t')
x=sin(t); y=sin(2*t)

p = plot_parametric(x, y, autoscale=True, title='8 Graph', show=False)
p.show()

プログラミングのお題スレ Part14 	->画像>47枚

578蟻人間 ◆T6xkBnTXz7B0 2019/06/24(月) 19:35:53.46ID:oK/rIQPy
ヒント: まずはど真ん中を求めよう。

579蟻人間 ◆T6xkBnTXz7B0 2019/06/24(月) 19:53:04.45ID:oK/rIQPy
お題: 辞書のように頭文字を何文字か入力すると該当する単語の意味を調べられるようなシステムのことを「辞書型エキスパートシステム」と言います。
あなたの得意分野に関する辞書型エキスパートシステムを作りなさい。
例) HTML辞書システム

580デフォルトの名無しさん2019/06/24(月) 19:55:50.31ID:y3nBEW/D
し、式がわからねー。算数の限界。。。 グフッ。

581デフォルトの名無しさん2019/06/24(月) 20:04:50.44ID:rEOVCAEx
>>577
お?リサージュ使ったのか、やるなお主。

582蟻人間 ◆T6xkBnTXz7B0 2019/06/24(月) 20:10:50.04ID:eqHVB1zL
面白いシューティングゲーム作るなら、数式とグラフの知識は必須だからな。
x→yという対応によるx-yグラフがあれば、
時刻t→(x, y)という対応によるグラフもある。多分高校で習うから安心しろ。

583デフォルトの名無しさん2019/06/24(月) 20:13:33.00ID:BXNZhLwW
>>576 やはり思った通りの人物像だったな。 自分の勝手な思い込みで人に伝わると思ってる。
そりゃどんな所に勤めても長続きしないだろうな。 相手の事を思いながら会話しないとダメなんだよ。

自分は何も悪くない、悪いのは相手だと言うのが最大の欠点。 多分病気だと思うから一度病院に行ってみたら?

ラプラス変換なんて持ち出せば相手は黙るだろうとか思ってる馬鹿さ加減。
あんな簡単な物で躓いてるのは多分高校の数学で落ちこぼれてたんだろうな。 いや中学の算数が解っていないのかも。
計算を楽にするためにラプラス変換があるのに。

584デフォルトの名無しさん2019/06/24(月) 20:19:29.47ID:fImqzI0I
トリップ付けてる人にまともな人なんているわけがないじゃないか

585◆QZaw55cn4c 2019/06/24(月) 20:37:30.25ID:SbfV+wvC
>>583
>多分病気だと思うから一度病院に行ってみたら?
すでにして飲んでるお薬は
プログラミングのお題スレ Part14 	->画像>47枚

>計算を楽にするためにラプラス変換があるのに。

浅はかな理解ですね、計算のためにラプラス変換?
馬鹿もここまでくると気の毒に思えてきます
そんな人のために次のページが構築されつつあります、誰が書いてるのかは私はしらないけど
https://ja.wikibooks.org/wiki/%E5%88%B6%E5%BE%A1%E3%81%A8%E6%8C%AF%E5%8B%95%E3%81%AE%E6%95%B0%E5%AD%A6/%E7%AC%AC%E4%B8%80%E9%A1%9E

586デフォルトの名無しさん2019/06/24(月) 20:40:31.12ID:y3nBEW/D
プログラミングのお題スレ Part14 	->画像>47枚
ギリギリ8?これ、屁理屈だわー。

587蟻人間 ◆T6xkBnTXz7B0 2019/06/24(月) 20:43:09.60ID:eqHVB1zL
>>586
創意工夫はあってよし。一応合格。

588デフォルトの名無しさん2019/06/24(月) 20:55:10.85ID:y3nBEW/D
うえーい。

589デフォルトの名無しさん2019/06/24(月) 21:01:05.67ID:y3nBEW/D
あ、どっとうp死んだ。。。

590デフォルトの名無しさん2019/06/24(月) 21:57:47.94ID:BXNZhLwW
>>585 悪かった、本物とはさすがに思わなかった。 お大事に。
むしろこんな所にも出入りしない方が良いと思うけどな。

所で今 5ch サーバーがおかしいね。

591◆QZaw55cn4c 2019/06/24(月) 22:04:21.59ID:SbfV+wvC
>>590
浅はかな理解ですね、そもそもここに出入りしている時点で重大な問題を孕んでいることに気がつかないとでもいうのですか?

592デフォルトの名無しさん2019/06/24(月) 22:30:59.92ID:xRw0rPof
あーQZはまともに相手しないで放置すればいいよ
こいつ複素解析も知らない癖に留数定理がどうのこうのとか騙ってて
突っ込まれると「全然知りません」と開き直るような奴だからな
それに日本人じゃないらしい

593デフォルトの名無しさん2019/06/24(月) 22:32:09.63ID:xRw0rPof
おそらくこいつはラプラス変換も知らない馬鹿だ

594デフォルトの名無しさん2019/06/24(月) 22:53:08.06ID:gDOJvwaR
>>592
懐かしいな
以前、複素数にまで拡張された指数関数が一般に多価関数になるということが解らなくて
わざわざ他の板まで行って醜態を晒してたなこいつ

595◆QZaw55cn4c 2019/06/24(月) 23:24:54.85ID:SbfV+wvC
>>592
それは記憶違いでは?
当時「計算練習として複素関数論をやればいいのでは?」という意見に対して「留数定理は忘れた」と発言しただけですよ、実際もう忘れましたし、それにしても昔のことをよく覚えていますよね、この執念はいったいなんなんでしょうか?

>>594
このスレのお題「e^z = -1 たる z ∈C を求めよ」にてずいぶんと勉強させていただきましたが、それもこのスレだけの話で、わざわざ他のスレや他の板に行った覚えはありませんね、証拠を出せますか?

>>593
ラプラス変換の教科書に当時メモ書きした式変形ですら、もう自分でも理解できなくなっているのは認めましょう…

596デフォルトの名無しさん2019/06/24(月) 23:29:01.25ID:gDOJvwaR
>>595
確か数学板で聞いてただろお前
そのリンクをこのスレに貼ってたはずだから気になるなら自分で調べろ

597◆QZaw55cn4c 2019/06/24(月) 23:46:51.79ID:SbfV+wvC
>>596
数学板でまともに質問したのは「頂を踏む」の一節
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13170327928
だけですよ、数学板に書かないわけではありませんけれどもね

598デフォルトの名無しさん2019/06/24(月) 23:54:27.14ID:gDOJvwaR
知恵袋やってて草
後で通報しとくわ

599デフォルトの名無しさん2019/06/25(火) 00:17:49.29ID:q9Zf4joS
>>555
echo '〜'

600デフォルトの名無しさん2019/06/25(火) 12:16:33.88ID:/8kFlQVi
お題
7月中の、3人の空いている日のリストがあります。
3人の内、2人以上が空いている日と、名前を求めよ

A
2019/07/05
2019/07/10
2019/07/15
2019/07/20

B
2019/07/08
2019/07/10
2019/07/20

C
2019/07/15
2019/07/20
2019/07/25

601デフォルトの名無しさん2019/06/25(火) 12:21:21.76ID:cOq4SW0C
日付と名前の区別ってどうすんの?

6026002019/06/25(火) 13:41:11.08ID:/8kFlQVi
書式は、どうでも良い。
こんな感じで

2019/07/10 A B
2019/07/10, A, B

603デフォルトの名無しさん2019/06/25(火) 15:28:07.62ID:AwR7wU0d
Hash使うとすごく簡単にできると思うが、Hashへの値のセットをプログラム中に書こうとすると、それがそのまま答えになってしまいそうな予感w

604デフォルトの名無しさん2019/06/25(火) 16:12:29.73ID:i92jGjxO
>>573 Python3.6 ideonのpython は3.5で動かないが、下の方に出力サンプルを張り付けてあるからそれを見てください。
https://ideone.com/JqcYMA

出力サンプルを少しだけここに張り付け
開店時間= 0.0
Aの取皿開始  speed=0.7 kosu=0 時刻は 0.0
Bの取皿開始  speed=1.0 kosu=0 時刻は 0.01
Cの取皿開始  speed=1.4 kosu=0 時刻は 0.02
★★マグロ が出来た時刻=0.03 作成間隔 t=0.30
Cがマグロを食った 作成時刻=0.03
★★カッパ が出来た時刻=0.33 作成間隔 t=0.10
Aがカッパを食った 作成時刻=0.33
★★ウニ が出来た時刻=0.43 作成間隔 t=0.10
★★上トロ が出来た時刻=0.53 作成間隔 t=0.10
Cがウニを食った 作成時刻=0.43
Cが満腹 休むよ 時刻=0.63
Aが上トロを食った 作成時刻=0.53
★★エンガワ が出来た時刻=0.64 作成間隔 t=0.10
★★マグロ が出来た時刻=0.74 作成間隔 t=0.10
Bがエンガワを食った 作成時刻=0.64
Bがマグロを食った 作成時刻=0.74
★★マグロ が出来た時刻=0.74 作成間隔 t=0.10
Bがエンガワを食った 作成時刻=0.64Bがマグロを食った 作成時刻=0.74
★★カッパ が出来た時刻=0.84 作成間隔 t=0.10
★★ウニ が出来た時刻=0.94 作成間隔 t=0.10
★★上トロ が出来た時刻=1.04 作成間隔 t=0.10
Aの取皿開始  speed=0.7 kosu=1 時刻は 1.11
Aがカッパを食った 作成時刻=0.84

★★エンガワ

605デフォルトの名無しさん2019/06/25(火) 16:57:19.63ID:/YrhpcLJ
>>600 Pharo/Squeak Smalltalk

| data dic |

data := {
#A -> #('2019/07/05' '2019/07/10' '2019/07/15' '2019/07/20').
#B -> #('2019/07/08' '2019/07/10' '2019/07/20').
#C -> #('2019/07/15' '2019/07/20' '2019/07/25')
}.

dic := Dictionary new.
data do: [:assoc |
assoc value do: [:date | (dic at: date ifAbsentPut: [OrderedCollection new]) add: assoc key].
].
dic associations sort
select: [:assoc | assoc value size >= 2]
thenCollect: [:assoc | assoc value: assoc value asArray]


"=> {'2019/07/10'->#(#A #B) . '2019/07/15'->#(#A #C) . '2019/07/20'->#(#A #B #C)} "

606蟻人間 ◆T6xkBnTXz7B0 2019/06/25(火) 17:04:02.93ID:CrMrKXln
>>575
テストデータ(各自で用意すること): 長方形、星形、ハート形

607デフォルトの名無しさん2019/06/25(火) 17:27:11.68ID:Y04/VZ6Y
#!/usr/bin/env perl
use List::MoreUtils;
@A = qw( 2019/07/05 2019/07/10 2019/07/15 2019/07/20);
%A = map {$_, 1} @A;

@B = qw( 2019/07/08 2019/07/10 2019/07/20);
%B = map {$_, 1} @B;

@C = qw( 2019/07/15 2019/07/20 2019/07/25);
%C = map {$_, 1} @C;

SEARCH:
for ( List::MoreUtils::uniq (@A, @B, @C) ){
if ($A{$_} && $B{$_} && $C{$_}){
print "everyone is free at $_\n";
next SEARCH;
}
if ($A{$_} && $B{$_} ){
print "A and B is free at $_\n";
}
if ($B{$_} && $C{$_}){
print "B and C is free at $_\n";
}
if ($A{$_} && $C{$_}){
print "A and C is free at $_\n";
}
}

608デフォルトの名無しさん2019/06/25(火) 17:29:23.86ID:Y04/VZ6Y
>>605
やはり辞書型がくみこまれてる言語は綺麗だね
数が増えたときでも問題ないかんじ

609デフォルトの名無しさん2019/06/25(火) 17:30:16.52ID:cOq4SW0C
ハート型って多角形だったのかー
こらノーベル賞ものの発見だな!

610デフォルトの名無しさん2019/06/25(火) 17:30:27.94ID:Y04/VZ6Y
タイポ
辞書型ではなく 集合型だ

611デフォルトの名無しさん2019/06/25(火) 18:13:23.94ID:Y04/VZ6Y
>>600
>607はあまりにも酷かったので、修正
#!/usr/bin/env perl
use List::MoreUtils;
@A = qw( 2019/07/05 2019/07/10 2019/07/15 2019/07/20 );
%A = map {$_, A} @A;

@B = qw( 2019/07/08 2019/07/10 2019/07/20 );
%B = map {$_, B} @B;

@C = qw( 2019/07/15 2019/07/20 2019/07/25 );
%C = map {$_, C} @C;

for $date ( List::MoreUtils::uniq (@A, @B, @C) ){
for $someone_is_free_at (\%A, \%B, \%C){
push(@free_men, $$someone_is_free_at{$date}) if $$someone_is_free_at{$date};
}
print "@free_men are free at $date\n" if (@free_men > 1);
@free_men = ();
}


出力
A B are free at 2019/07/10
A C are free at 2019/07/15
A B C are free at 2019/07/20

612蟻人間 ◆T6xkBnTXz7B0 2019/06/25(火) 18:43:25.69ID:CrMrKXln
ユーチューブのおかげで誰でも動画を投稿してお金を稼げる時代になった。
自分のアイデアをvisualizeし、面白い動画にして投稿すれば、収益化できる。
プログラミングをマルチメディアやGUIに対応させることは当たり前。
あなたもテック系ユーチューバーになろう。

動画は変化する静止画の連続であり、スクリーンショットで一枚一枚画像を撮ってテキトーなツールでつなげれば動画に出来る。

613デフォルトの名無しさん2019/06/25(火) 18:48:37.74ID:UDO8hU+H
>>600
https://ideone.com/wTvm0s
C++。オレ、あほになってるなぁ。それとDataTime欲しい。

614デフォルトの名無しさん2019/06/25(火) 18:50:16.61ID:UDO8hU+H
>>612
手頃で簡単な動画コンテナ知らない?
AVIのフォーマット調べたらRIFF吐かないといけなくて、そこからかよ!って感じだった。

615蟻人間 ◆T6xkBnTXz7B0 2019/06/25(火) 18:52:08.76ID:CrMrKXln
お題: あみだくじを解け。n本の縦線を上下に平行に引き、上から順番に二つの縦線を結ぶ形でいくつかm本の横線を引く。下側の縦線の端の一つにゴールを設定するとき、あみだくじの
ルールに従ってゴールに到達する縦線の端のスタート地点を求めよ。

616蟻人間 ◆T6xkBnTXz7B0 2019/06/25(火) 18:58:25.64ID:CrMrKXln
>>614
連番でビットマップ吐けばフリーソフトでつなげられるだろよ。

617デフォルトの名無しさん2019/06/25(火) 19:02:19.01ID:UDO8hU+H
>>616
そうなるか。ふむふむ。

618デフォルトの名無しさん2019/06/25(火) 19:17:59.99ID:4Msitu63
>>616 おいこら、出題ペースが早すぎるぞ。解答もほとんど出ていない状態で次のなんて出すなよ。

619デフォルトの名無しさん2019/06/25(火) 19:51:46.12ID:/33lsov2
>>611
日付に対する前置詞はonだぞ

620デフォルトの名無しさん2019/06/25(火) 19:56:07.32ID:Y04/VZ6Y
>>619
thanks

621蟻人間 ◆T6xkBnTXz7B0 2019/06/25(火) 20:43:10.45ID:ayyd1Kg3
面白い動画たーくさん作って早く労働者階級を卒業しよっぜ。

622デフォルトの名無しさん2019/06/25(火) 23:32:34.03ID:hlLFLgMF

623蟻人間 ◆T6xkBnTXz7B0 2019/06/25(火) 23:47:01.47ID:ayyd1Kg3
多角形の問題は、最小包含円問題というらしい。

624デフォルトの名無しさん2019/06/26(水) 01:05:18.27ID:fhfivptN
>>575 >>623 それって、>>11 の入口問題だな。 俺も>>11 関連で知ったが、最小包含円って言葉は、このスレで何度か出てきてるぞ、
具体的な宇宙人の足跡データが、>>11 として最小包含円を求めよとした方がより具体的だな。 いくつか答えが出てるけど。

具体的なデーターを示さないと答えがバラバラになるぞ。 蟻人間の問題ってあやふやなのが多いな。

625デフォルトの名無しさん2019/06/26(水) 01:11:38.67ID:QUl0UMlC
>>600 Perl5

@a = map{sprintf"2019/07/%02d",$_} 1..31;
$h{$_}{A}=1 for qw{2019/07/05 2019/07/10 2019/07/15 2019/07/20};
$h{$_}{B}=1 for qw{2019/07/08 2019/07/10 2019/07/20};
$h{$_}{C}=1 for qw{2019/07/15 2019/07/20 2019/07/25};
@b = grep{1<keys %{$h{$_}}} @a;
print "$_ @{[keys %h{$_}]}\n" for @b;


実行結果
~ $ perl 14_600.pl
keys on reference is experimental at 14_600.pl line 6.
2019/07/10 B A
2019/07/15 C A
2019/07/20 B A C

626蟻人間 ◆T6xkBnTXz7B0 2019/06/26(水) 01:12:45.72ID:FZmH/DTQ
>>615
n=3
m=5
として横線は
(0, 1)
(1, 2)
(1, 2)
(0, 1)
(1, 2)
としよう。

627デフォルトの名無しさん2019/06/26(水) 01:16:52.13ID:QUl0UMlC
>>625 スマソ「keys on reference is experimental at 14_600.pl line 6.」が出ちゃってた…orz

>>600 Perl5 チョット修正
@a = map{sprintf"2019/07/%02d",$_} 1..31;
$h{$_}{A}=1 for qw{2019/07/05 2019/07/10 2019/07/15 2019/07/20};
$h{$_}{B}=1 for qw{2019/07/08 2019/07/10 2019/07/20};
$h{$_}{C}=1 for qw{2019/07/15 2019/07/20 2019/07/25};
@b = grep{1<keys %{$h{$_}}} @a;
print "$_ @{[keys %{$h{$_}}]}\n" for @b;

実行結果
~ $ perl 14_600.pl
2019/07/10 B A
2019/07/15 A C
2019/07/20 B C A

628蟻人間 ◆T6xkBnTXz7B0 2019/06/26(水) 04:24:04.79ID:FZmH/DTQ
日本とゐう国は労使から朽ちていつたんだなあ。

629デフォルトの名無しさん2019/06/26(水) 04:36:53.79ID:wPd2Gy/W
>>628
旧仮名なら「日本と云(い)ふ」だろボケカス

630デフォルトの名無しさん2019/06/26(水) 08:13:01.09ID:Qt7BED0r
>>555 Lua
prrint("ん")

631デフォルトの名無しさん2019/06/26(水) 09:27:43.17ID:4ftm39hn
>>555
さて、そろそろわしの出番のようぢゃな。


#!/bin/sh

echo 'サインカーブ'

632デフォルトの名無しさん2019/06/26(水) 10:05:25.43ID:I0iq5RkX
整数が複数与えられて、そのうちの5つの積が最大になるものってどうやって選べばいいの?
絶対数でソートしても、負数が奇数個だとマイナスだし頭がこんがらがる

633デフォルトの名無しさん2019/06/26(水) 10:27:17.99ID:qQlb55ju
正数の大きい方から5個
正数の大きい方から3個と負数の絶対数の大きい方から2個
正数の大きい方から1個と負数の絶対数の大きい方から4個
で比較すれば?

634デフォルトの名無しさん2019/06/26(水) 10:35:24.88ID:qQlb55ju
別に正数とか負数とか気にしないでも良いか
ソートして、上から5個 上から3個と下から2個 上から1個と下から4個 の中で最大のものを選べば

635デフォルトの名無しさん2019/06/26(水) 12:11:39.42ID:4ftm39hn
>>634
全て負の値の場合は?
それと気になるのが0。

636デフォルトの名無しさん2019/06/26(水) 12:18:02.87ID:Hr9hv0Xe
古典的スタートレックゲーム
言語はなんでもよし

637デフォルトの名無しさん2019/06/26(水) 12:52:21.84ID:4t4MRNDi
>>632
思考停止して全パターン出して最大値を取る。
あえて5個以下だとエラー。
対策するなら関数fで長さが5個以下か判定すれば良い。

昔、似た様な問題でリスト内包表記と再帰を組み合わせて、
スマートな方法を誰か書いてたの見たけど忘れた。

Haskell

main = f [(-1),4,(-2),1,3,2]

f xs = maximum [product [a,b,c,d,e]|
a <- xs, b <- xs, c <- xs, d <- xs, e <- xs,
a /= b, a /= c, a /= d, a /= e, b /= c, b/= d, b /= e, c /= d, c /= e, d /= e]

638デフォルトの名無しさん2019/06/26(水) 15:36:37.02ID:GwE3QISY
>>637 おいおい、いくつの中から5個取り出すかわからないんだぞ。 100000個の中から5個取り出すと結構な時間がかかるだろ。
どんだけの組み合わせになるんだよ。

639デフォルトの名無しさん2019/06/26(水) 15:53:36.43ID:4t4MRNDi
>>638
だから思考停止っって書いてるんよ^^;

640デフォルトの名無しさん2019/06/26(水) 16:01:02.80ID:4t4MRNDi
>>632

Listモジュールに関数あった。。。

Haskell

import Data.List

main = print $ f [(-1),4,(-2),1,3,2]

f = maximum.map product.permutations

641デフォルトの名無しさん2019/06/26(水) 18:21:48.58ID:D6IEM3tk
全部負なら、必ず答えも負になるんだから選ぶのは上から5個で良くないか
つまり634で合ってると思う
0も問題無いな、どこにあっても網羅されてる

642デフォルトの名無しさん2019/06/27(木) 01:55:36.37ID:sxRhjDp7
>>600
perl5 ワンライナー

perl -ne 'if(/^(.*?),(.*)$/){$d{$2}{$1}=1}END{for(sort keys%d){if(keys%{$d{$_}}>=2){print"$_ ".join(",",sort keys%{$d{$_}})."\n"}}}'

入力

A,2019/07/05
A,2019/07/10
A,2019/07/15
A,2019/07/20
B,2019/07/08
B,2019/07/10
B,2019/07/20
C,2019/07/15
C,2019/07/20
C,2019/07/25

出力

2019/07/10 A,B
2019/07/15 A,C
2019/07/20 A,B,C

643デフォルトの名無しさん2019/06/27(木) 07:16:25.32ID:ken8tLFo
>>635
oh...全て負の場合は数値が大きい方(絶対値が小さい方)から5個だな

644デフォルトの名無しさん2019/06/27(木) 07:17:36.65ID:ken8tLFo
と、それは上から5個か…寝起き死んでるww

645デフォルトの名無しさん2019/06/27(木) 10:12:29.88ID:kVdr/MgG
>>637
試した限りじゃ上手く動いてる。
もっとスマートな書き方出来ないものか。。。

Haskell

import Data.List

main = (print.f) [9,(-5),3,2,1,8,(-4)]

f xs |(odd.length) b && (length.filter (<0)) xs > 1 =
promax
((map snd.f') a ++ (map snd.take (5 - (length.f') a)) b')
((map snd.take 5.abslst) xs)
where
a = (filter ((>=0).snd).take 5.abslst) xs
a' = (filter ((>=0).snd).abslst) xs
b = (filter ((< 0).snd).take 5.abslst) xs
b' = (filter ((< 0).snd).abslst) xs

f' xs |length a > length b = init xs
f' _ = (take (5 - (length.init) b)) a'
f xs = promax ((take 5.reverse.sort) xs) ((map snd.take 5.abslst) xs)

promax xs ys |product xs > product ys = xs
promax _ ys = ys

abslst xs = reverse.sort $ zip (map abs xs) xs

646デフォルトの名無しさん2019/06/27(木) 10:13:36.13ID:kVdr/MgG
promax xs ys |product xs > product ys = xs
promax _ ys = ys

abslst xs = reverse.sort $ zip (map abs xs) xs

647蟻人間 ◆T6xkBnTXz7B0 2019/06/27(木) 16:22:58.68ID:nAZ+iPIM
だれかあみだくじ解けない?

648デフォルトの名無しさん2019/06/27(木) 16:37:32.78ID:cEwto4HN
I can, but I won't.

649デフォルトの名無しさん2019/06/27(木) 17:17:24.80ID:fA/gCr42
>>632 Sqeueak Smalltalk

| data stream selection set numNegs |
data := #(9 -5 -3 2 1 8 -4).
stream := ((data copyWithout: 0) sortBy: #abs descending) readStream.
set := Set with: (selection := (stream next: 5) asArray).
numNegs := selection count: #negative.
(numNegs > 0 and: [numNegs odd]) ifTrue: [
| nextNeg nextPos lastPosIdx lastNegIdx |
nextNeg := nextPos := nil.
lastPosIdx := selection findLast: #positive.
lastNegIdx := selection findLast: #negative.
[(nextNeg isNil or: [nextPos isNil]) and: [stream atEnd not]] whileTrue: [
| next |
next := stream next.
(lastPosIdx > 0 and: [nextNeg isNil] and: [next negative])
ifTrue: [set add: (selection copyWithoutIndex: lastPosIdx), {nextNeg := next}].
(lastNegIdx > 0 and: [nextPos isNil] and: [next positive])
ifTrue: [set add: (selection copyWithoutIndex: lastNegIdx), {nextPos :=next}]
].
].
set detectMax: [:xs | xs reduce: #*]

"=> #(9 8 -5 -4 2) "


Pharo Smalltalk版 → http://ws.stfx.eu/OK6PHG96QEY8

650デフォルトの名無しさん2019/06/28(金) 01:49:16.31ID:Vk0oU0Nl
>>632 haskell
import Data.List
f xs = if length xs < 5 then undefined else (maximumBy(\ x y ->compare(product x)(product y))$zipWith(++)(reverse.inits.(take 5).reverse.sort$xs)(inits.(take 5).sort$xs))

f [9,-5,-3,2,1,8,-4]
-- > [9,8,2,-5,-4]

651デフォルトの名無しさん2019/06/29(土) 05:03:25.69ID:BpIUWIWl
お題: Hello, World!が入力されるのでHelloとWorldを入れ替えて表示せよ

652デフォルトの名無しさん2019/06/29(土) 07:48:16.22ID:FqBWYLWj
あまりにも簡単すぎる問題は控えて欲しいな、たまになら休憩として良いけど。

653デフォルトの名無しさん2019/06/29(土) 11:18:10.70ID:HRfvRfYw
printed("World, Hello!");

654デフォルトの名無しさん2019/06/29(土) 11:36:54.32ID:t9YicpKG
>>651 Perl5 簡単だけれども、解いてみた

<>=~/(\w+)(\W+)(\w+)(\W+)/;
print "$3$2$1$4\n";

実行結果
~ $ echo 'Hello, World!' | perl 14_651.pl
World, Hello!

※英単語部は任意です

655デフォルトの名無しさん2019/06/29(土) 13:00:42.80ID:Rvf+oTMW
お題:全単射を満足する最小桁数を求める
任意の整数域(-10000..10000とか)を引数とする単調増加/減少関数f(x)に対して、
その計算結果を有効数字n桁で丸めたものをy=round(f(x), n)とする。
xとyの関係が全単射になる(異なるxに対して、同じyにならない事)
最小のnを求めよ。
http://ja.wikipedia.org/wiki/%E5%85%A8%E5%8D%98%E5%B0%84

xの値域及びf(x)は回答者が適切と思われるものでよい。

656デフォルトの名無しさん2019/06/29(土) 13:27:37.67ID:HRfvRfYw
fは2^N → Rでいいの?
2^Nは自然数の冪集合ね
てか括弧内で全射が無視されてんのが謎

657デフォルトの名無しさん2019/06/29(土) 14:03:41.17ID:YzN8MsSb
echo Hello, World! | perl -pe 's/ (\w+) , \N{SPACE} (\w+) ! /$2, $1!/x'
World, Hello!

658デフォルトの名無しさん2019/06/29(土) 14:38:46.06ID:LAXJlpSi
イプシロン間際。

6596552019/06/29(土) 14:50:05.50ID:Rvf+oTMW
>>656
f(x)=x/1e4+42 但し xは整数で x∈[-10000, 10000]
とかの、もっと単純なヤツです(この例だとn=6)。

f(x)=10^x
とかだと、n=1なのは自明だし、
f(x)=c 但し cは任意の実定数
とかだと解は存在しないので、これらは除外して下さい。

660デフォルトの名無しさん2019/06/29(土) 14:51:20.55ID:HRfvRfYw
>>659
任意の整数域を定義域とする関数に、なんで整数渡してんの?

661デフォルトの名無しさん2019/06/29(土) 15:37:47.69ID:mF/+Te8R
お題
与えられた画像ファイルを
適当なサイズに縮小・拡大
しモノクローム画像に変換
しアスキーアートに変換す

662デフォルトの名無しさん2019/06/29(土) 16:00:34.20ID:S1v50lfX
ss = "Hello, World!".split(', ')
print( f'{ss[1]}, {ss[0]}' )

# World!, Hello

663デフォルトの名無しさん2019/06/29(土) 16:06:20.54ID:YzN8MsSb
split のたぐいだと ! の位置がおかしなことになるんだよな

664デフォルトの名無しさん2019/06/29(土) 16:25:44.25ID:S1v50lfX
>>663 おかしいかどうか知らんよ。 問題が細かな事を言っていないんだから。

665デフォルトの名無しさん2019/06/29(土) 16:30:35.89ID:S1v50lfX
>>664 悪い悪い、問題を読み直したら、単語の入れ替えだけで記号の位置はそのままというような感じだな。

666デフォルトの名無しさん2019/06/29(土) 16:31:18.75ID:/qzOxQgj
>>664
はあ?
> HelloとWorldを入れ替えて表示せよ
余計なことしちゃだめだろ

667◆QZaw55cn4c 2019/06/29(土) 16:36:26.20ID:+oJyIv4Z
お題と回答
>>5 : 6 10 32 36 44
>>9 : 15 34 35 79
>>11=>>575 : 48 (78) 138-139 (140) 142 146 151 154
>>19 :
>>50, http://2chb.net/r/tech/1549160513/920 : 4 85 89
http://2chb.net/r/tech/1549160513/988 == >>164 : 59 61 167 169 189 192 201 202
>>90 : 95 96
>>99 :
>>200 : 214 219
>>215 : 227
>>220 : 232 240 248 256 268
>>235 : 236 237 238 239 247 249 259 342 353
>>320 : 321 323 327 330 340
>>322 : 325 328 329 331 332 339 341 358 359

668◆QZaw55cn4c 2019/06/29(土) 16:36:41.68ID:+oJyIv4Z
>>362 : 367 369 370 371 374 379 380 382 414
>>368 : 390
>>388 : 487 (488) 553 559
>>400 : 401
>>408 :
>>417 : 418 419 421 426 432 433 436 438 442 446 451 452 456 471 474 480 482 489 492 495 498 528 530 540
>>479 :
>>555 : 556 558 564 565
>>557 : 560 562 568 569
>>570 : 574 577
>>573 : 604 622
>>600 : 605 607 611 613 627
>>615,626 :
>>632 : 637 640 645 649 650

669◆QZaw55cn4c 2019/06/29(土) 16:36:57.16ID:+oJyIv4Z
>>651 : 654 657 662
>>656 :
>>661 :

670デフォルトの名無しさん2019/06/29(土) 16:41:45.64ID:dLka8n6Z
>>669
ごめん迷惑だからそれやめて

671デフォルトの名無しさん2019/06/29(土) 16:59:14.03ID:S1v50lfX
>>669 安静にしてた方が良いと思うよ。 反発のない世界で触れ合うのは良いと思うけど、2ch/5ch みたいなところに出てくると、傷つくのは目に見えてる。

みるのが楽しければ、みるだけにとどめるとか。

672デフォルトの名無しさん2019/06/29(土) 20:21:36.23ID:YzN8MsSb
w3m http://2chb.net/r/tech/1558168409/ \
|perl -ne 'if (/^1/m){++$body};if (/^ ? \d+コメント$/m){$body=0} ; print if ($body)'\
| ./select_word_and_ancher.pl お題 \
| less

perl はこれ
https://paste.fedoraproject.org/paste/6R~aAhHAd3dYBSH0R8Dfhw

出力はこんなかんじだ
お題のレスが見れて、それにアンカしたレスが続くのを1フィールドとして
全部のお題に大してループする
プログラミングのお題スレ Part14 	->画像>47枚

673デフォルトの名無しさん2019/06/29(土) 20:24:28.47ID:YzN8MsSb
1 のテンプレを順守してればこのコードの漏れはなくなる

674デフォルトの名無しさん2019/06/29(土) 22:27:44.56ID:SeYudeXv
>>667
お前個人の備忘録なんてホントにチラシの裏にでも書いとけよ

675デフォルトの名無しさん2019/06/29(土) 22:43:35.91ID:XRcaFM4Y
>>651のお題は
> お題: Hello, World!が入力されるのでHelloとWorldを入れ替えて表示せよ
なので、Hello, World!以外が入力されたら無視するかエラーを出すのが正しいのでは?w

676◆QZaw55cn4c 2019/06/29(土) 22:50:01.35ID:+oJyIv4Z
>>675
それは過剰な設計では?
Hello, World! 以外が入力されたときにどう振舞うべきかについて >>651 には何らの記載がないので、何ら拘束されることがない
言い換えると、入力が Hello, World! 以外の場合には「どうふるまってもいい」と解釈するのが、論理学的に妥当…@だと思います
@:論理式「偽→真」=真、「偽→偽」=真からの類推です

677デフォルトの名無しさん2019/06/29(土) 22:56:34.59ID:SeYudeXv
>>675
>>651>>653で答えが出ちゃったね

678デフォルトの名無しさん2019/06/29(土) 23:05:06.71ID:/qzOxQgj
>>677
> お題: Hello, World!が入力されるので
とあるから入力されるまで待つ処理がない>>653は失格

679デフォルトの名無しさん2019/06/30(日) 01:26:45.54ID:V7r21EI6
>>677 Lua
a,b,c,d=io.read(5,2,5,1)
print (c..b..a..d)

680デフォルトの名無しさん2019/06/30(日) 01:41:37.13ID:V7r21EI6
>>679
アンカー間違えました
>>651 Lua
でした

681デフォルトの名無しさん2019/06/30(日) 01:59:36.72ID:3kywsUGB
>>678
アホかお前
勝手にオリジナルルール作るなよ

682デフォルトの名無しさん2019/06/30(日) 02:25:30.30ID:8mJPxIjl

683デフォルトの名無しさん2019/06/30(日) 08:04:20.61ID:uuDJgtvu
お題
#1234→◆gdyb21LQTc
#abcd→◆4vxxTEcn7p
#あいうえお→◆rXz1zlMT-L

左のトリップキーから右のトリップを返すアルゴリズムを探せ

684デフォルトの名無しさん2019/06/30(日) 08:39:27.77ID:XM+o4kuM
>>683
$ head text hash.sedscr
==> text <==
#1234→◆gdyb21LQTc
#abcd→◆4vxxTEcn7p
#あいうえお→◆rXz1zlMT-L

左のトリップキーから右のトリップを返すアルゴリズムを探せ

==> hash.sedscr <==
s/#1234/◆gdyb21LQTc/
s/#abcd/◆4vxxTEcn7p/
s/#あいうえお/◆rXz1zlMT-L/

$ cat text | sed -f hash.sedscr
◆gdyb21LQTc→◆gdyb21LQTc
◆4vxxTEcn7p→◆4vxxTEcn7p
◆rXz1zlMT-L→◆rXz1zlMT-L

左のトリップキーから右のトリップを返すアルゴリズムを探せ

685デフォルトの名無しさん2019/06/30(日) 09:03:57.63ID:AuhBLaKB
>>683 Java
https://ideone.com/ulBeVb

digestは一回、charsetは二回目で当たった

686デフォルトの名無しさん2019/06/30(日) 09:33:15.89ID:uuDJgtvu
>>685
Magnificent !!

687デフォルトの名無しさん2019/06/30(日) 18:48:21.28ID:TQbu+/Q+
>>678 Perl5(組合せ計算のモジュールはCPANにあるが言語処理系に標準で含まれるCOREモジュールではないので使わずに実装した)

@a=sort{$b<=>$a} qw{9 -5 -3 2 1 8 0 -4 -1 4 -2 1 3 2};
@b=splice @a,0,5;
splice @a,0,-4;
@c=(@b, @a); # 大きい方から5個と小さい方から4個,計最長9個
sub combi { # 組合せ
 my @s;
 if (my $n = shift) {
  while ($n <= @_) {
   my $t = shift;
   push @s, map{[$t, @$_]} combi($n - 1, @_);
  }
 } else {
  @s = ([]);
 }
 @s
}
@d = combi(5, @c); # 126個
use List::Util 'product';
@e = sort{$$b[0]<=>$$a[0]} map{[product(@$_), $_]} @d;
print "@{$e[0][1]} => $e[0][0]\n";

実行結果
~ $ perl 14_632.pl
9 8 4 -4 -5 => 5760

688デフォルトの名無しさん2019/06/30(日) 18:49:06.96ID:TQbu+/Q+
>>684
アンカー間違えた >>632 宛だった…Orz

689デフォルトの名無しさん2019/07/01(月) 01:03:55.45ID:2xJWXsNl
>>632 Perl5 (CPANのMath::Combinatoricsモジュール使用)

use Math::Combinatorics;
use List::Util 'product';
@a=sort{$b<=>$a} qw{9 -5 -3 2 1 8 0 -4 -1 4 -2 1 3 2};
@b=splice @a,0,5;
splice @a,0,-4;
@c=(@b, @a);
@d=combine 5, @c;
@e=sort{$$b[0]<=>$$a[0]} map{[product(@$_), $_]} @d;

実行結果
~ $ perl 14_632_2.pl
9 4 8 -5 -4 => 5760

690デフォルトの名無しさん2019/07/01(月) 01:17:22.86ID:2xJWXsNl
>>689
最後のstatement
print "@{$e[0][1]} => $e[0][0]\n";
が抜けてた…Orz

6916002019/07/01(月) 12:51:23.31ID:O1pDJEnN
>>600
Ruby で、
require 'date'

ary_A = %w(2019/07/05 2019/07/10 2019/07/15 2019/07/20)
ary_B = %w(2019/07/08 2019/07/10 2019/07/20)
ary_C = %w(2019/07/15 2019/07/20 2019/07/25)

# 文字列の配列から、ハッシュを作る。Date#jd は、ユリウス日。整数型
def make_hash( ary, name )
ary.each_with_object( { } ) {
| str, h | h[ Date.parse( str ).jd ] = [ str, name ] }
end

# ハッシュをマージする。h_1 を上書きする。slice で、位置1 から、1つだけ
def merge_hash( h_1, h_2 )
h_1.merge!( h_2 ) { |key, v_1, v_2| v_1 + v_2.slice( 1, 1 ) }
end

hash_A = make_hash( ary_A, "A" )
hash_B = make_hash( ary_B, "B" )
hash_C = make_hash( ary_C, "C" )

merge_hash( hash_A, hash_B )
merge_hash( hash_A, hash_C )

hash_A.select { |k, v| v.length >= 3 }.sort.each { |elem|
puts elem.last.join( ", " ) }

692デフォルトの名無しさん2019/07/02(火) 00:55:09.45ID:l8Ho6rg6

693デフォルトの名無しさん2019/07/03(水) 05:29:13.40ID:/Fyb2XSg
>>570 Lua
prrint("(X)")

694デフォルトの名無しさん2019/07/03(水) 13:00:21.17ID:0rGzsSa9
>>570
exho 八

695デフォルトの名無しさん2019/07/03(水) 23:21:16.00ID:S/aBv8fE
お題
直線状の(配列を使った)ライフゲームがある。ルールは、

1. 両隣が生きていれば、暑苦しいので死ぬ
2. 両隣が死んでいれば、寂しいので死ぬ
3. 両隣の内、片方だけが生きていれば、生きる

4. 両端の2つについては、隣が生きていれば生きるし、隣が死んでいれば死ぬ
5. すべてのマスの状態の変更は、同時にすること

下の初期値(1 ターン目)から初めて、状態が変わらなくなるのは、何ターン目か?
nターン目と、( n + 1 )ターン目が同じなら、nターン目を答える

ただし、漏れは検証していないので、100ターンを超えたら、終了してくださいw
* は生、. は死を表す

.*...**.*.***..

696デフォルトの名無しさん2019/07/04(木) 00:54:11.99ID:j53oJnyj
>>695 Pharo/Squeak Smalltalk

| map next turn |
map := '.*...**.*.***..' asArray collect: [:x | (x = $*) asBit].
next := [map allButFirst, {0} + ({0}, map allButLast) collect: [:x | (x = 1) asBit]].
turn := 1.
[map = (map := next value) or: [(turn := turn + 1) >= 100]] whileFalse.
^turn "=> 13 "

697デフォルトの名無しさん2019/07/04(木) 01:48:41.98ID:3GgPlSpw
>>695
https://ideone.com/Rj3O0W
C++。即死したんだけど、まちがてる?

698デフォルトの名無しさん2019/07/04(木) 02:56:15.33ID:GH7xphp0
プログラムしてないけど、そういう結果になると思う。

699デフォルトの名無しさん2019/07/04(木) 07:37:27.36ID:Ic4+qAXv
増える条件ナインかこれ

700デフォルトの名無しさん2019/07/04(木) 08:19:44.93ID:k4YTb8Ao
LifeGameなら生まれる条件つけないと。

701デフォルトの名無しさん2019/07/04(木) 08:35:23.83ID:11vlC8ZO
>>695 ruby 13ターンで全滅
life = ' .*...**.*.***.. '
puts "%4d %s" % [1, life]
100.times{|gene|
life2 = ' ' * life.size
(life.size-2).times{|i| life2[i+1] = ((life[i] == '*') ^ (life[i+2] == '*'))? '*' : '.' } # rule 1, 2, 3, 4
break if life == life2
puts "%4d %s" % [gene+2, life2]
life = life2 # rule 5
}

702デフォルトの名無しさん2019/07/04(木) 09:15:04.08ID:49DxGPOe
プログラム組むまでもなく3ターンで終わりなんだけど解釈間違ってんのかな

703デフォルトの名無しさん2019/07/04(木) 11:47:20.51ID:oZa6FYcv
>>695 Java
https://ideone.com/8cforf

生きるってのが誕生も含める場合13ターン >>696 >>701
生きるってのが生存のみの場合3ターン >>697
ってことだな

7046952019/07/04(木) 16:13:36.89ID:vGw4d28b
生きるとは、新たに誕生する場合も、含めてください!

705デフォルトの名無しさん2019/07/04(木) 16:51:48.26ID:NOiQUdad
ジョジョくさいセリフ

706デフォルトの名無しさん2019/07/04(木) 17:41:32.68ID:UVclwvu+
居ないときは両隣が生きていれば生まれる
(生きているときは 1. に従い死ぬ)
とかの方がいいんじゃない?

707デフォルトの名無しさん2019/07/04(木) 17:59:22.42ID:oZa6FYcv
>>695,704
つまりルール90の1次元セルオートマトンってことでいいのかの? (誕生無しの場合ルール18になる)

セル・オートマトン#1次元セル・オートマトン
https://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3#1%E6%AC%A1%E5%85%83%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3

708デフォルトの名無しさん2019/07/04(木) 22:15:57.84ID:Otr1Y9/T
お題: コマンド「stack」を実装しなさい

stackの仕様

$ stack push hoge

で文字列hogeをスタックにプッシュする

$ stack pop
hoge

でスタックに積んだ文字列をポップする
スタックが空の場合は何も表示しない

709デフォルトの名無しさん2019/07/04(木) 23:07:41.19ID:3GgPlSpw
ライフゲームだけど、生まれる話は聞いてないなぁ。
主が生まれる条件書いてねー気がする。

710デフォルトの名無しさん2019/07/05(金) 00:22:45.10ID:cLn1h7ts
>>702
手計算したら同じく3手だった

711デフォルトの名無しさん2019/07/05(金) 00:31:50.12ID:4z1quspY
>>695,704 Perl5

sub f {
 @a = map{'*' eq $_} split '', '.*...**.*.***..';
 for ($t = 2; $t <= 100; $t++) {
  @b = $_[0]->();
  $t--, last if "@b" eq "@a";
  @a = @b;
 }
 @a = map{$_ ? '*' : '.'} @b;
}
f(sub{$a[1], (map{$a[$_] and ($a[$_-1] xor $a[$_+1])} 1..$#a-1), $a[$#a-1]});
print "生存のみ $t: ", @a, "\n";
f(sub{$a[1], (map{$a[$_-1] xor $a[$_+1]} 1..$#a-1), $a[$#a-1]});
print "誕生あり $t: ", @a, "\n";

実行結果
~ $ perl 14_695.pl
生存のみ 3: .....**........
誕生含む 13: ...............

712デフォルトの名無しさん2019/07/05(金) 00:33:12.20ID:4z1quspY
>>711 ゴメン実行結果貼り間違えた
~ $ perl 14_695.pl
生存のみ 3: .....**........
誕生あり 13: ...............

713デフォルトの名無しさん2019/07/05(金) 00:41:15.13ID:4z1quspY
>>711 たびたびゴメン、微妙に間違えていた、この入力の場合答えは変わらないけど
sub f {
 @a = map{'*' eq $_} split '', '.*...**.*.***..';
 for ($t = 2; $t <= 100; $t++) {
  @b = $_[0]->();
  $t--, last if "@b" eq "@a";
  @a = @b;
 }
 @a = map{$_ ? '*' : '.'} @b;
}
f(sub{map{$a[$_] and ($a[$_-1] xor $a[$_+1])} 0..$#a});
print "生存のみ $t: ", @a, "\n";
f(sub{$a[1], (map{$a[$_-1] xor $a[$_+1]} 1..$#a-1), $a[$#a-1]});
print "誕生あり $t: ", @a, "\n";


~ $ perl 14_695.pl
生存のみ 3: .....**........
誕生あり 13: ...............

714デフォルトの名無しさん2019/07/05(金) 07:06:17.78ID:8ZiX2Qqp
公式サイトが死んで1ヶ月ぐらい立ったけどUWSC
>>695 http://codepad.org/C46guycm
>>708 http://codepad.org/QU38TKOo

7157012019/07/05(金) 07:27:15.34ID:FwZHoBTZ
>>695 ruby 13ターンで全滅 (>>701 bit演算化)
life = '.*...**.*.***..'
bord = life.tr('.*','01').to_i(2)
mask = 2 ** life.size - 1
fmt = "%%0%db" % life.size
100.times{|gene|
puts "%5d %s" % [gene+1, (fmt % bord).tr('01','.*')]
bord2 = ((bord<<1)^(bord>>1)) & mask # rule 1, 2, 3, 4
break if bord == bord2
bord = bord2
}

7166952019/07/05(金) 12:37:23.14ID:imex3OYJ
>>706
>1. 両隣が生きていれば、暑苦しいので死ぬ
これを変形して、

1a. 自マスが生きている場合、両隣が生きていれば、暑苦しいので死ぬ
1b. 自マスが死んでいる場合、両隣が生きていれば、生きる(新たに誕生する)

1c. ただし、両端の2つのマスについては、1a, 1b を適用せず、ルール4 で良い。
4. 両端の2つについては、隣が生きていれば生きるし、隣が死んでいれば死ぬ

つまり、両端の2つについては、そのマスの両隣の内、
存在しないマスを死んでいるものとして扱うと、常に、1a, 1bには該当しない

興味があれば、この変形ルールでも、やってみてください!
ただし、漏れは、どうなるのか知りませんがw

>>707
確かに、ルール90 と同じです

717デフォルトの名無しさん2019/07/05(金) 15:42:56.85ID:RqW7c8ei
【7ピンN枚の河内塔の最短手順問題】

初期状態では帽子はピン0
にあり、ピン6にすべて移す
までの最小手順の回数を求める

例:
N=3 5回
0->4
0->5
0->6
5->6
4->6

718デフォルトの名無しさん2019/07/05(金) 16:33:02.65ID:FwZHoBTZ
>>716 ruby 63ターン以降2周期ループ(62,63,62,63,,,)
life = '.*...**.*.***..'
bord = life.tr('.*','01').to_i(2)
mask = 2 ** life.size - 1
fmt = "%%0%db" % life.size
bords = {bord=>true}
100.times{|gene|
puts "%5d %s" % [gene+1, (fmt % bord).tr('01','.*')]
bord2 = (bord<<1 ^ bord>>1 | bord<<1 & bord>>1 & ~bord) & mask # rule >>706, >>716
break if bords[bord2]
bord = bord2
bords[bord] = true
}

7196952019/07/05(金) 17:47:06.08ID:imex3OYJ
>>718
循環しましたか?

循環を発見するには、すべてのターンを記録して照合しないといけないから、大変!

720デフォルトの名無しさん2019/07/05(金) 18:27:24.81ID:XEA++p8t
>>716
3a、3b は?

7216952019/07/05(金) 19:42:34.54ID:imex3OYJ
>>720
3. 両隣の内、片方だけが生きていれば、生きる

元々、生きるには、誕生する事も含むから、3a, 3b は、必要ない

ただ、
>>706
の提案で、1a, 1b の所だけを変えてみたのが、
>>716

722デフォルトの名無しさん2019/07/05(金) 22:52:47.49ID:aEAVP96+
https://ideone.com/VOwT7u
C++版改。5ターンで止まった。
ライフゲームは、ダブルバッファリング以外で作れる気がしない。

723デフォルトの名無しさん2019/07/05(金) 23:55:57.51ID:FwZHoBTZ
#>>716 ruby # Rule を配列化。 (L C R) 3bit 0..7 の状態 >>659なら [0,1,0,1,1,0,1,0]
Rule = [0,1,0,1,1,1,1,0] # rule >>706, >>716
life = '.*...**.*.***..'
lifeBit = life.size
bord = life.tr('.*','01').to_i(2)
fmt = "%%0%db" % lifeBit
bords = {bord=>true}
100.times{|gene|
puts "%5d %s" % [gene+1, (fmt % bord).tr('01','.*')]
bord <<= 1
bord2 = 0
lifeBit.times{|bit|
bord2 |= Rule[bord & 7] << bit
bord >>= 1
}
bord = bord2
break if bords[bord]
bords[bord] = true
}

724デフォルトの名無しさん2019/07/05(金) 23:56:51.12ID:aY14jca4
>>716 Pharo/Squeak Smalltalk

| map next seq start |
map := '.*...**.*.***..' asArray collect: [:x | (x = $*) asBit].
seq := OrderedCollection with: map.
next := [ | acc |
acc := map + (map allButFirst, {0}) + ({0}, map allButLast).
((#(1 2) collect: [:x | acc collect: [:elem | (elem = x) asBit]]) * {map negated + 1. 1}) sum
].
[(start := seq indexOf: (map := next value)) > 0 or: [seq size >= 100]] whileFalse: [seq add: map].
(start = 0 or: [start = seq size]) ifTrue: [seq size] ifFalse: [start to: seq size]

"=> (62 to: 63) "

725デフォルトの名無しさん2019/07/05(金) 23:58:19.78ID:FwZHoBTZ
>>723
s/>>659なら/>>695なら/

726デフォルトの名無しさん2019/07/06(土) 15:06:03.47ID:LdZDcwTE
>>722だけど間違ってたら、教えて。
今みんな何やってるのか把握してない。

727デフォルトの名無しさん2019/07/06(土) 15:56:23.82ID:xBT7e3zK
>>716 Perl5、5で止まる。>>720>>721の解釈違い?それともオレのBug?

%s = qw(. 0 * 1);
@a = map{$s{$_}} split '', '.*...**.*.***..';
$t = 1;
%h = ("@a" => $t);
printf "%2d: @a\n", $t;
for ($t = 2; $t <= 100; $t++) {
 @b=($a[1] ? $a[0] : 0,
   (map{
    ($a[$_-1] xor $a[$_+1]) ? $a[$_] :
     (($a[$_-1] and $a[$_+1]) ? ($a[$_]?0:1) : 0)
   } 1..$#a-1),
   $a[-2] ? $a[-1] : 0
   );
 printf "%2d: @b\n", $t;
 @a = @b;
 $t--, last if exists $h{"@a"};
 $h{"@a"} = $t;
}
@c = map{$_ ? '*' : '.'} @a;
printf "%d => @c\n", $t;

実行結果
~ $ perl 14_716.pl
1: 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0
2: 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0
3: 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0
4: 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0
5: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0
6: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0
5 => . . . . . . * * . . . . . . .

728デフォルトの名無しさん2019/07/06(土) 16:00:21.54ID:LdZDcwTE
>>727
おぉ、同志。(一方通行

729デフォルトの名無しさん2019/07/06(土) 16:25:41.58ID:ZIRVHkTq
>>717
問題がわからない。
河内塔って何?

730デフォルトの名無しさん2019/07/06(土) 16:28:50.79ID:GxnR+B/l
もしかしてハノイの塔かな

731デフォルトの名無しさん2019/07/06(土) 16:38:33.50ID:Qorx3cLN
(- (expt 2 n) 1) ぐらいの手数増加がやばいやつか
たった64枚で移し終えると世界が滅びるらしいぞw

732デフォルトの名無しさん2019/07/06(土) 16:51:49.60ID:ZIRVHkTq
>>730
色々ググっている内に中国語で書かれたサイトで「河内塔」が見つかった。
中国語がよくわからないので何とも言えないがどうやらハノイの塔のようだ。
「河内塔(Tower of Hanoi)」と書いてある個所があり下の方にある画像は正にその説明になっている。
https://blog.csdn.net/jon_me/article/details/41986461

733デフォルトの名無しさん2019/07/06(土) 17:04:45.14ID:Zeej7B2I
>>726-727
>>695の3.が適用されてないんじゃ?

>>726はこんな感じ? https://ideone.com/1VOW38

734デフォルトの名無しさん2019/07/06(土) 17:10:17.77ID:ZIRVHkTq
ベトナム語で「河内」って書いて「ハノイ」と読むんだな。ベトナムでは今は漢字使ってないけど。
https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%8E%E3%82%A4

735デフォルトの名無しさん2019/07/06(土) 17:31:45.90ID:LdZDcwTE
>>733
えーっと、そのこーどだけど、死んでるセルの隣に生きてるセルがいたら生まれてるんだけどあってる?

736デフォルトの名無しさん2019/07/06(土) 17:52:15.78ID:LdZDcwTE
>>733
示唆してくれてありがとう。言い忘れてた。

737デフォルトの名無しさん2019/07/06(土) 18:01:01.33ID:8vjCWSQ+
>>727

>>716
>確かに、ルール90 と同じです
wikipediaのルール90 を確認してみて

738デフォルトの名無しさん2019/07/06(土) 18:16:30.66ID:LdZDcwTE
うん。リンクあったら一発で書けないこともなかった。というわがまま言ってみる。
まぁ、>>733に書いてあるから、俺のタスクはないなぁ。

https://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3#ルール90

739デフォルトの名無しさん2019/07/06(土) 18:21:51.90ID:xBT7e3zK
>>733 ご指摘ありがとう。 >>721

> 3. 両隣の内、片方だけが生きていれば、生きる
> 元々、生きるには、誕生する事も含むから、3a, 3b は、必要ない

を、「3.自マスが死んでいる場合、両隣の何れかでも生きていれば、生まれる。」
と言う意味と捕らえなおして、>>713を書き換えたら、63でloopしたよ。

>>716

>1b. 自マスが死んでいる場合、両隣が生きていれば、生きる(新たに誕生する)

と誕生条件が書いてあったので、3の条件は「生まれる」条件も含むとは考えず、

「3.両隣の内、片方だけが生きていれば、自マスが生きていれば生きる(し、死んでいれば死んだまま)。」
と解釈して >>713 を作ったのが63でloopしなかった原因だと分かった。

740デフォルトの名無しさん2019/07/06(土) 18:25:42.01ID:xBT7e3zK
>>716,721 Perl5

%s = qw(. 0 * 1);
@a = @a = map{$s{$_}} split '', '.*...**.*.***..';
$t = 1;
%h = ("@a" => $t);
@h = ("@a");
for ($t = 2; $t <= 100; $t++) {
 @b=($a[1] ? 1 : 0,
   (map{
    ($a[$_-1] xor $a[$_+1]) ? 1 :
     (($a[$_-1] and $a[$_+1]) ? ($a[$_]?0:1) : 0)
   } 1..$#a-1),
   $a[-2] ? 1 : 0
   );
 @a = @b;
 push @h, "@a";
 $t--, last if exists $h{"@a"};
 $h{"@a"} = $t;
}
$i = $h{"@a"};
print $_ - 1, ": $h[$_-1]\n" for $i..@h;

実行結果
~ $ perl 14_716_721.pl
61: 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
62: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
63: 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

741デフォルトの名無しさん2019/07/06(土) 18:44:26.01ID:xBT7e3zK
>>716,721 Perl5、ゴメン、結果は0 1じゃなくて.*のstringで表示すべきだったので修正させていただきます

@a = split '', '.*...**.*.***..';
@h = ("@a");
@a = map{'*' eq $_ ? 1 : 0} @a;
$t = 1;
%h = ("@a" => $t);
for ($t = 2; $t <= 100; $t++) {
 @b=($a[1] ? 1 : 0,
   (map{
    ($a[$_-1] xor $a[$_+1]) ? 1 :
     (($a[$_-1] and $a[$_+1]) ? ($a[$_]?0:1) : 0)
   } 1..$#a-1),
   $a[-2] ? 1 : 0
   );
 push @h, join'',map {$_ ? '*' : '.'} @b;
 @a = @b;
 $t--, last if exists $h{"@a"};
 $h{"@a"} = $t;
}
$i = $h{"@a"};
print $_ - 1, ": $h[$_-1]\n" for $i..@h;

実行結果
~ $ perl 14_716_721.pl
61: *.*.*.*.*.*.*.*
62: .*.*.*.*.*.*.*.
63: *.*.*.*.*.*.*.*

742◆QZaw55cn4c 2019/07/06(土) 19:13:43.46ID:wBQNST8m
お題と回答
>>5 : 6 10 32 36 44
>>9 : 15 34 35 79
>>11=>>575 : 48 (78) 138-139 (140) 142 146 151 154
>>19 :
>>50, http://2chb.net/r/tech/1549160513/920 : 4 85 89
http://2chb.net/r/tech/1549160513/988 == >>164 : 59 61 167 169 189 192 201 202
>>90 : 95 96
>>99 :
>>200 : 214 219
>>215 : 227
>>220 : 232 240 248 256 268
>>235 : 236 237 238 239 247 249 259 342 353
>>320 : 321 323 327 330 340
>>322 : 325 328 329 331 332 339 341 358 359

743◆QZaw55cn4c 2019/07/06(土) 19:14:04.22ID:wBQNST8m
>>362 : 367 369 370 371 374 379 380 382 414
>>368 : 390
>>388 : 487 (488) 553 559
>>400 : 401
>>408 :
>>417 : 418 419 421 426 432 433 436 438 442 446 451 452 456 471 474 480 482 489 492 495 498 528 530 540
>>479 :
>>555 : 556 558 564 565
>>557 : 560 562 568 569
>>570 : 574 577
>>573 : 604 622
>>600 : 605 607 611 613 627 691
>>615,626 :
>>632 : 637 640 645 649 650 687 689-690

744◆QZaw55cn4c 2019/07/06(土) 19:14:20.27ID:wBQNST8m
>>651 : 654 657 662 679 682
>>655 :
>>661 :
>>683 : 685
>>695,704,716,721 : 696 697 701 703 711 713 714 715 718 722 723 724 727 740-741
>>708 : 714
>>717 :

745デフォルトの名無しさん2019/07/06(土) 19:37:09.81ID:HtNG6e5Z
消えろ

746デフォルトの名無しさん2019/07/06(土) 21:17:45.94ID:Qorx3cLN
ログ汚染が酷い

7476952019/07/07(日) 08:03:43.59ID:Ts5uCd7M
だから、誕生という概念を作ると、説明が難しいから、「生死」の状態だけにした。
生死だけなら、前の状態に関係ない、前の状態と切れているから

誕生という概念を使うと、
a. 前の状態が死んでいる時と、
b. 前の状態が生きている時で、

処理が変わってくるから複雑になって、勘違いする人も出てくるから

748デフォルトの名無しさん2019/07/07(日) 12:00:48.06ID:K8IqcFVG
>>747
その「だから」は何につながってるのか読めない。

749デフォルトの名無しさん2019/07/07(日) 17:48:05.53ID:Sb2el8tu
>>747
状態が関係ないと実装の工夫のしどころが失われて面白みが半減すると思うよ

最初の何ターンかを例として示せば済むはなしだし
手元で実装を試していればなおさら何の苦もないことかと

細かい事を言うと、本当に実装を試さずに出題しているのならそれはルール違反なんだよね
(チューリングの泥沼問題回避や宿題の丸投げ防止)

750◆QZaw55cn4c 2019/07/07(日) 19:42:47.11ID:wvjux210
>>749
出題者が実装をひとつは持っておく、というのは努力目標でいいんじゃないかな?お題が面白ければ私は許容しますね
まあ自分のお題は面白くないので実装をひとつくらいは持つようにしていますが…

751デフォルトの名無しさん2019/07/07(日) 19:55:58.86ID:MQV9uu2h
たしかにくだらないクソ問ばかりだね。

752蟻人間 ◆T6xkBnTXz7B0 2019/07/07(日) 21:06:25.36ID:JhpdhjN9
お題: 生徒の氏名、身長、体重の3つからなる複数のレコードが与えられる。氏名とBMIを左揃えのテキストの表にせよ。
単位はMKS単位系、テキストはASCIIおよび等幅フォントが使われると仮定してよい。

Tanaka Naoki 15kg 2m
Inoue Ken 280g 32cm
Akai Ryusei 1mg 3km

753蟻人間 ◆T6xkBnTXz7B0 2019/07/07(日) 21:26:21.37ID:JhpdhjN9
お題: MKS単位系の単位を変換する関数またはクラスを作れ。

1kg:g
→1000g

2m:cm
→200cm

754蟻人間 ◆T6xkBnTXz7B0 2019/07/07(日) 21:28:22.26ID:JhpdhjN9
名前はテキトーに思いついたのを書いただけです。

755デフォルトの名無しさん2019/07/07(日) 21:28:35.00ID:K8IqcFVG
>>753
C++なら、ユーザー定義リテラルで横着できるんだけど、入力解析が嫌な感じだ。

756蟻人間 ◆T6xkBnTXz7B0 2019/07/07(日) 21:44:56.12ID:JhpdhjN9
物理シミュレーションが人間の手から離れて自由自在にならなければ、火星への仮想移住もできない。MKS単位系の計算術は重要だ。

757デフォルトの名無しさん2019/07/07(日) 21:50:29.52ID:ngB3G+2v
トリップ付きは大学の教養課程の知識すらない阿呆しかいないのかね

758蟻人間 ◆T6xkBnTXz7B0 2019/07/07(日) 22:23:37.11ID:0lH1eUtN
常識など切り刻むのみ。

759デフォルトの名無しさん2019/07/07(日) 22:41:27.22ID:+dwSkgWp
死ねや糞コテ

760デフォルトの名無しさん2019/07/07(日) 23:10:54.31ID:K8IqcFVG
https://ideone.com/46Q0vU
物理難しすぎた。
Wikipediaを写経しようと思ったら、わからないことが多すぎる。

761蟻人間 ◆T6xkBnTXz7B0 2019/07/07(日) 23:19:20.77ID:0lH1eUtN
長さの単位、質量の単位、そして時間の単位の3つがある。これにキロ、ミリ、マイクロなどが前に付く。
変換方法は複数あり、何から何への変換方法はデータとして与えられ、それらは追加可能でなければ不便。

762◆QZaw55cn4c 2019/07/07(日) 23:23:22.07ID:wvjux210
先生!質問です!
重さの規準は kg ですか?それとも g ですか?え?kg?おっかしーなー?kg の kって単なる接頭辞 prefix なのでは?

763デフォルトの名無しさん2019/07/07(日) 23:28:12.83ID:6uzWSrE8
全部Jで統一しろハゲ共

764デフォルトの名無しさん2019/07/08(月) 00:24:27.94ID:YBWHLZTU
長さ1センチの鼻毛を鉛直方向に1ニュートンの力で引っ張り、抜いたときに感じる痛みは1ハナゲ

765◆QZaw55cn4c 2019/07/08(月) 00:28:17.48ID:5PNDCGkj
>>763
質量は J に等価交換できても長さや時間は無理なのでは?

766デフォルトの名無しさん2019/07/08(月) 00:58:34.40ID:ktC9cNPU
>>765
natural unitも知らねえのか

767デフォルトの名無しさん2019/07/08(月) 08:05:28.83ID:ATr0dgzt
タブ区切りの文字列の置換リストがあって、そのとおりにテキストファイルファイルを置換したい
そういうソフトありますか?
見つからないので自作しようとおもったけどここへ書いてみた


置換リスト例

ああああ うううう
aaaaa QQQQQ

768デフォルトの名無しさん2019/07/08(月) 08:09:30.46ID:ATr0dgzt
コマンドラインでGREPと置換できるソフトはあるんだけど。
DOSの文字制限と、正規表現の制限で、
置換したい文字の設定がややこしい。あと複数同時にできない。
文字を加工せずできれば便利だなと。

769デフォルトの名無しさん2019/07/08(月) 08:10:59.60ID:cS5GyvAA
>>767
スレ違い

770デフォルトの名無しさん2019/07/08(月) 11:02:56.96ID:tzeJFuHl
>>767
Perlでも使えば?文字列置換楽だよ。

771デフォルトの名無しさん2019/07/08(月) 11:50:01.31ID:8XvlSCIJ
>>767
perl5 が最高だとおもうよ
もともとそういう分野に特化した言語だ

772◆QZaw55cn4c 2019/07/08(月) 18:59:50.46ID:qs7HTSo5
>>766
時間や長さを J で統一することは自然単位系でもできませんね…

773◆QZaw55cn4c 2019/07/08(月) 19:00:41.66ID:qs7HTSo5
>>767
仕様を正確に記述してください

774デフォルトの名無しさん2019/07/08(月) 19:25:39.25ID:uJPizAN5
宿題に餌を与えないでください

775デフォルトの名無しさん2019/07/08(月) 22:57:02.15ID:G1DtFXg8
Ruby では変換表を使って、置換できる

hash = { 'ab' => 'あ', 'xy' => 'ん' }

p re = Regexp.union( hash.keys ) #=> /ab|xy/

p "9xy9ab9xyx".gsub( re, hash )
#=> 9ん9あ9んx

gsub(pattern, hash) -> String
文字列中の pattern にマッチした部分をキーにして、hash を引いた値で置き換える

hash = {'b'=>'B', 'c'=>'C'}
p "abcabc".gsub(/[bc]/){hash[$&]} #=> "aBCaBC"
p "abcabc".gsub(/[bc]/, hash) #=> "aBCaBC"

776デフォルトの名無しさん2019/07/09(火) 00:46:29.33ID:b1/VU+FF
rubyの宣伝とはいえ、宿題に餌やるなら、問われている事柄に応えてやったらどうかと思う。
宣伝意識が前面に出すぎて目的を忘れるなかれ、って感じ。

777デフォルトの名無しさん2019/07/09(火) 00:48:43.11ID:b1/VU+FF
    |                   \
    |  ('A`)           ギシギシ
   / ̄ノ( ヘヘ ̄ ̄        アンアン/

778デフォルトの名無しさん2019/07/09(火) 04:09:17.17ID:0VeokVre
[ 弘前大 ]
和が406 で、最小公倍数が2,660 である、2つの整数を求めよ

答え
14 * 10 = 140
14 * 19 = 266

779デフォルトの名無しさん2019/07/09(火) 08:28:09.19ID:chrBBqpb
整数問題は脳死でこう叩く
(loop for x from 1 to 1000 do (loop for y from 1 to 1000 when (and (eq (+ x y) 406) (eq (lcm x y) 2660)) do (format t "~a ~a~%" x y)))
140 266
266 140

7807782019/07/09(火) 08:48:05.20ID:0VeokVre
和が406 ですよ

1〜405 を確認すれば十分!

781デフォルトの名無しさん2019/07/09(火) 08:52:39.17ID:chrBBqpb
大学の入試問題の大半 8割ぐらいは1000までローラーすればいい
だから経験上1000やっちゃうんだよね
最適化してくなら for y from x
とかも効かすけど
3乗算決めるぐらいまでは問題ない速度が出てる(loop x(loop y(loop z

782デフォルトの名無しさん2019/07/09(火) 09:28:56.09ID:4nn6D6BQ
>>772
完全にアホ

783デフォルトの名無しさん2019/07/09(火) 11:02:44.61ID:lxeGachM
>>781
和なんだから最適化利かすならyは406からx引けよw

784デフォルトの名無しさん2019/07/09(火) 11:18:51.73ID:chrBBqpb
>>783
たしかに
全然見えてなかったw

785◆QZaw55cn4c 2019/07/09(火) 18:57:01.98ID:Rbs4mLR8
>>782
煽るだけではねえ…時間や長さを J に統一するために自然単位系がどう使えるのか書けるのですか?

786デフォルトの名無しさん2019/07/09(火) 19:43:25.84ID:ggPtzp0W
壮大な話やなぁ。
その時間系に所属する人の仕事量を全部計算するんかいな??
アホだからこんなこと思うわ。

787デフォルトの名無しさん2019/07/09(火) 21:57:24.41ID:gdYXIa6p
私は頭は良いのだが知識がないため君らが何を言っているのかがよくわからない。

7887782019/07/12(金) 14:53:22.97ID:uwyqXnfJ
>>778
Ruby で、

require 'prime'

sum = 406 # 和
lcm = 2_660 # 最小公倍数。least common multiple

# 最大公約数。greatest common divisor
gcd = sum.gcd( lcm ) # 14

# 最大公約数で割ったもの
sum_2 = sum / gcd # 29
lcm_2 = lcm / gcd # 190

# 半分(1〜15)まで、ループする。ary は、10
ary = ( 1..( sum_2 + 1 ) / 2 ).each.select {
|num| num * ( sum_2 - num ) == lcm_2 }

# 14 * 10 = 140, 14 * 19 = 266
p gcd * ary.first, gcd * ( sum_2 - ary.first )

789デフォルトの名無しさん2019/07/12(金) 17:09:23.04ID:uwyqXnfJ
お題、聖光学院中学校入試問題

1〜10 の10枚のカードの内、4枚を取り出して、a〜d に入れて、
下の式を満たす置き方は、何通りあるか?

( a + b ) * ( c + d ) = 100

答え、48通り

790デフォルトの名無しさん2019/07/12(金) 17:26:31.50ID:B1Jsh2gD
>>789
C++.
総当たりでも解けるくらいの分量だわ〜〜。

https://ideone.com/bXhZp3

791デフォルトの名無しさん2019/07/12(金) 17:31:38.31ID:B1Jsh2gD
やってから気づいたけど、forで回したほうが早いな。
それと、ネクストコンビネーションがほしいのじゃー。

792デフォルトの名無しさん2019/07/12(金) 17:38:32.51ID:N+Dr1mVf
>>778
sum := 406, lcm := 2660
c := gcd(sum, lcm)

(c * t_-, c * t_+) = (140, 266) where t_± = (sum ± √(sum^2 -4c * lcm)) / 2c = (29 ± 9) / 2

793デフォルトの名無しさん2019/07/12(金) 17:45:09.77ID:N+Dr1mVf
>>789
n := 10
(n / 2 - 1)_P_2 * 2^2 = 4_P_2 * 4 = 48

794デフォルトの名無しさん2019/07/12(金) 17:56:38.95ID:B1Jsh2gD
>>778

http://coliru.stacked-crooked.com/a/b219d162366f5cd8
ワンドボックス先生がシェアを許してくれないので、適当に見繕ってきた

795デフォルトの名無しさん2019/07/12(金) 19:41:17.85ID:Rp3XUaKp
>>793
なるほど

796デフォルトの名無しさん2019/07/12(金) 20:06:13.56ID:OtxPhCkg
>>789
4P4 = 12 がなかったので暗算埋め込みしてしまった
(loop with i = 0 for a from 1 to 10 do (loop for b from (1+ a) to 10 do (loop for c from (1+ b) to 10 do (loop for d from (1+ c) to 10 when (eq 100 (+ (* a b) (* c d))) do (incf i)))) finally (print (* 12 i)))
48

797デフォルトの名無しさん2019/07/13(土) 02:35:29.76ID:P33eZqk8
>>569
遅レスだが

innerHTML はヤメロ
appendChild にしとけ…今回のケースでは問題にならないっちゃならないが…

798◆QZaw55cn4c 2019/07/13(土) 16:47:09.19ID:KfP9prYE
>>9 : 15 34 35 79
>>11=>>575 : 48 (78) 138-139 (140) 142 146 151 154
>>19 :
>>50, http://2chb.net/r/tech/1549160513/920 : 4 85 89
http://2chb.net/r/tech/1549160513/988 == >>164 : 59 61 167 169 189 192 201 202
>>90 : 95 96
>>99 :
>>200 : 214 219
>>215 : 227
>>220 : 232 240 248 256 268
>>235 : 236 237 238 239 247 249 259 342 353
>>320 : 321 323 327 330 340
>>322 : 325 328 329 331 332 339 341 358 359

799◆QZaw55cn4c 2019/07/13(土) 16:47:24.66ID:KfP9prYE
>>362 : 367 369 370 371 374 379 380 382 414
>>368 : 390
>>388 : 487 (488) 553 559
>>400 : 401
>>408 :
>>417 : 418 419 421 426 432 433 436 438 442 446 451 452 456 471 474 480 482 489 492 495 498 528 530 540
>>479 :
>>555 : 556 558 564 565
>>557 : 560 562 568 569
>>570 : 574 577
>>573 : 604 622
>>600 : 605 607 611 613 627 691
>>615,626 :
>>632 : 637 640 645 649 650 687 689-690

800◆QZaw55cn4c 2019/07/13(土) 16:47:39.98ID:KfP9prYE
>>651 : 654 657 662 679 682
>>655 :
>>661 :
>>683 : 685
>>695,704,716,721 : 696 697 701 703 711 713 714 715 718 722 723 724 727 740-741
>>708 : 714
>>717 :
>>752 :
>>753 : (760)
>>767 : 775
>>778 : 779 788 (792) 794
>>789 : 790 (793)

801デフォルトの名無しさん2019/07/13(土) 17:08:18.94ID:006l8Xk5
まただよ(笑)

802デフォルトの名無しさん2019/07/13(土) 18:59:07.37ID:/5VqfFnz
回答は容易に手繰れるのではっきり言って無用だし迷惑です
どうしてもまとめたいなら
例えば、どんな言語でどのお題に回答しているか整理したものとか付加価値を付けるべきでしょう

803◆QZaw55cn4c 2019/07/13(土) 19:58:46.31ID:KfP9prYE
>>802
ご意見ありがとうございます、参考にいたします

804デフォルトの名無しさん2019/07/13(土) 20:04:23.90ID:azuEfQ5t
>>803
前に何度も不要だ、邪魔だと指摘されたはずだが一向に改めなかったのはなぜ?

805デフォルトの名無しさん2019/07/13(土) 22:03:31.87ID:+XrRzYc0
コテハンだからだろ

806デフォルトの名無しさん2019/07/13(土) 22:53:32.95ID:0DH1k/wL
本当にクズだよな。出す問題もゴミばかり。まるで使用済みティッシュ

807デフォルトの名無しさん2019/07/14(日) 08:46:45.28ID:7ouziBbN
お題
ミニミニなパスカルの三角形を表示する

1
11
121
1331
14641

808デフォルトの名無しさん2019/07/14(日) 08:56:51.66ID:hrWXJ2sa
11^0
11^1
11^2
11^3

809デフォルトの名無しさん2019/07/14(日) 10:31:51.37ID:I+Q1ZQVX
>>807 Ruby

pascal = -> n {n > 0 ? [0, *pascal(n-1), 0].each_cons(2).map(&:sum) : [1]}

(0..9).map{|i| puts pascal[i].join(?\ )} # =>
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1

810デフォルトの名無しさん2019/07/14(日) 10:33:20.18ID:I+Q1ZQVX
typo

pascal = -> n {n > 0 ? [0, *pascal[n - 1], 0].each_cons(2).map(&:sum) : [1]}

811デフォルトの名無しさん2019/07/14(日) 22:14:12.29ID:xwqPe1DN
>>807 Perl5

for (1..5) {
 @a = (1, map{$a[$_] + $a[$_+1]} 0..$#a);
 print @a,"\n";
}


実行結果
$ perl 14_807.pl
1
11
121
1331
14641

812デフォルトの名無しさん2019/07/14(日) 22:28:38.27ID:niuQOGKU
>>807 python3
#!/usr/bin/python3
fractal_width = 19

xs = [1]
for i in range(1, fractal_width +1):
  for x in xs:
    print(x, "", end="") #xs sequence
  print("")

  xs.insert(0, 0)
  xs.append(0)
  xs = [ (xs[i] + xs[i +1]) for i in range(len(xs) -1)]

813デフォルトの名無しさん2019/07/14(日) 22:30:14.85ID:niuQOGKU
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1

結果はいいけどコードのほうが酷い
print(x, "", end... あたりが最悪

814デフォルトの名無しさん2019/07/14(日) 23:26:39.88ID:xwqPe1DN
>>807 Perl5, 無名関数のtail recursion版

use feature qw'say current_sub';
sub {
 say @_;
 __SUB__->(1, (map{$_[$_-1] + $_[$_]} 1..$#_), 1) if 5 > @_;
}->(1);


実行結果
$ perl 14_807.pl
1
11
121
1331
14641


※ Y-combinator版はマンドクせーので(ry

815デフォルトの名無しさん2019/07/14(日) 23:34:52.64ID:K5rloPX/
>>807 Squeak Smalltalk

| pascal grow |
pascal := OrderedCollection with: #(1).
grow := [pascal add: {1}, (pascal last overlappingPairsCollect: #+), {1}].
7 timesRepeat: grow.
(pascal collect: [:each | each joinSeparatedBy: ' ']) asStringWithCr

"=>'1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1' "

816デフォルトの名無しさん2019/07/15(月) 00:44:46.16ID:ZsG0DnWy

817デフォルトの名無しさん2019/07/15(月) 02:14:22.17ID:C2jHumZF
時事通信は中立的でもっとも正確。朝日新聞は若干、旧民主党寄りの予想を出した。産経新聞は若干、自民党寄りの予想を出した。

それでもこの3つの分析には大差がない。東京選挙区はほぼ確定した。

当選者は自民党現職の丸川(台本がないと何を言うかわからないぶっとび女)、

自民党現職の武見(いつものハゲじじいもう5回シコシコ)、

公明党現職の山口公明党代表(誰もやりたがらない創価学会内の仕事を押し付けられているかわいそうな人)、

立憲民主党の塩村(東京で人気のいまでもオカズになるヌける熟女)、

共産党の吉良(共産党の女性アイドル、もう年だがまだまだエロオヤジに人気)、

立憲民主党の山岸(元朝日新聞政治部のメガネ、前頭ハゲ進行中)。

与党側3人当選、野党側3人当選で東京選挙区は与野党引き分け。


落選者で得票数第1位は維新の会の音喜多(東京都北区の区長選で落ちたのは悪口が書かれたせいだとして裁判で争っている最中のクズ、小池百合子都知事の元小間づかい、寄生できそうな政党につく虫)。


以上

818デフォルトの名無しさん2019/07/15(月) 09:18:43.09ID:lV5+33Om
お題
年金AI化をする

設計を考えよ

どの部分を人間にしてどの部分を機械にするか
っていうだけだと思うけど

すごい初級プログラマーでも作れちゃうほど簡単じゃねと気になった
あまりにかんたんで民間年金ですでにありそうだが

819デフォルトの名無しさん2019/07/15(月) 10:34:42.46ID:m4zcTbyh
>>818 Ruby
nenkin = 'A PENSION'
puts nenkin.split.tap{|o| o.last.replace(o.last[x.size >> o.first.size])}.join
# => AI

820デフォルトの名無しさん2019/07/15(月) 10:43:37.19ID:lV5+33Om
入金
銀行データ紹介
入金人数と金額確認 ←入力 新規入力者の確認 人力目視



出金人数と出勤額


みたいなかんじ

821デフォルトの名無しさん2019/07/16(火) 02:32:24.14ID:awioItM7
>>807
Kotlin
https://paiza.io/projects/ed7oOf_rIHOgekOlUxGYSQ
うっかり普通にフォーマットして3角に出るようにしてしまった。もっと簡単に出しても良かったんだな。

822デフォルトの名無しさん2019/07/17(水) 18:49:01.14ID:rBzTe21k
>>807 R
cat(11^(0:4),sep="\n")

823デフォルトの名無しさん2019/07/17(水) 19:12:50.17ID:O6R1hJD8
>>807 Pharo Smalltalk

(11 ** (0 to: 4)) rounded asStringWithCr

"=> '1
11
121
1331
14641' "

824蟻人間 ◆T6xkBnTXz7B0 2019/07/17(水) 21:08:34.80ID:zgAvRboO
お題:y=(1-x)(1+x)のx=-1〜1の区間を数値積分せよ。

825蟻人間 ◆T6xkBnTXz7B0 2019/07/17(水) 21:47:30.35ID:zgAvRboO
ε=0.01くらいの台形公式でいいや。

826デフォルトの名無しさん2019/07/17(水) 21:48:18.54ID:RL7WDafS
>>824
Integrate[(1-x)(1+x), {x, -1, 1}]
4/3

wolframcloud
ちょっと感動

827デフォルトの名無しさん2019/07/17(水) 22:23:45.10ID:FVhP9md/
>>824 Ruby

require 'polynomial'
require 'polynomial/calculus'

expr = Polynomial.new(1, -1) * Polynomial(1, 1)
puts expr.integrate(-1..1)
# => (4/3)

828デフォルトの名無しさん2019/07/17(水) 23:18:48.71ID:FVhP9md/
typo

> expr = Polynomial.new(1, -1) * Polynomial.new(1, 1)

829デフォルトの名無しさん2019/07/17(水) 23:37:40.20ID:t/SxdWuN
>>824 Squeak Smalltalk

(#(1 -1) collect: [:x | {0. 1. 0. -1/3} polynomialEval: x]) reduce: #-

"=> (4/3) "

830デフォルトの名無しさん2019/07/18(木) 00:59:06.64ID:A0LALR8k
>>829
small talkは何でもあんのな
毎回驚かされるわ ありがとな

831デフォルトの名無しさん2019/07/18(木) 01:42:36.36ID:4Fot9DWw
>>824 >>825 Perl5

#(x-1)(x+1)⇒1-x^2
#∫(1-x^2)⇒x-(x^3/3)
# [x-(x^3/3)] {-1, 1} ⇒ -1-(-1/3) + 1-(1/3)
# ⇒1 -1/3 - (-1+1/3) ⇒ 2 - 2/3 ⇒ 4/3
# 暗算でも定積分値を求めることはできるが、代わりに
# 幅0.01の台形法による数値計算で解を計算すると…
use List::Util sum;
$s = sum map{.01*(1-($_/100)**2)} -99..99;
print "$s\n";


実行結果
$ perl 14_824.pl
1.3333

832デフォルトの名無しさん2019/07/18(木) 07:25:42.17ID:r8faaY2+
>>830
せっかく驚いてくれているのに水を差すようで恐縮なのだけど
誤解があるといけないので念のため補足しておきますと
これは>>826-828みたいに数式処理をしているわけではなく
定積分の筆算を式にしただけ(つまり 1-x^2 の積分である
x-(1/3)x^3 に 1 を代入したときの値から -1 を代入した値を引いただけ)です

もとより #(a b c d) polynomialEval: x "=> a*x^0 + b*x^1 + c*x^2 + ..." みたいな機能が
組み込みで用意されている点では、
こういうとき式を書かずに済んで便利ではありますが^^;

833蟻人間 ◆T6xkBnTXz7B0 2019/07/18(木) 12:47:19.12ID:OgRfjymX
お題: マルバツゲームを作れ。

_1_2_3
1O|_|_
_ー+ー+ー
2_|X|_
_ー+ー+ー
3_|_|_

834蟻人間 ◆T6xkBnTXz7B0 2019/07/18(木) 12:58:43.13ID:OgRfjymX
(出力例)
プレーヤー1が先攻です。
プレーヤー1は何番に置きますか? 1
プレーヤー2は何番に置きますか? 5
...
プレーヤー2の勝ち。

O|2|3
ー+ー+ー
4|X|6
ー+ー+ー
7|8|9

835デフォルトの名無しさん2019/07/18(木) 22:59:22.13ID:e7HmHit7
マルバツゲームに便乗して…

お題:
3×3のマルバツゲームで両者がランダムな手を打つとき
先手の勝率、後手の勝率をそれぞれ求めよ。

836デフォルトの名無しさん2019/07/18(木) 23:07:20.49ID:xdHI+pcE
今、こういうお題を考えています

Ruby などの遅い言語でも解けるように、
盤面の大きさを、9*9 〜 13*13 ぐらいで考えていますが、どうでしょうか?

1. 開始点S(座標、0行0列)から終了点E までの、最小コストを求める。
2. S, E 双方から、E, S へ目指す場合に、最小コストで出会う座標と、その時のコストを求める

1ターンで、縦横1つ隣へ移動できる。
同じマスは、1回しか通らない。
数字が各マスへの移動コストで、_ は、単なる目印で無関係です

S2953_9413
71546_7988
83411_2946
23716_5426
47385_736E

837デフォルトの名無しさん2019/07/19(金) 00:02:13.17ID:52u6jutr
問題側が手加減してあげないと解けないポンコツ言語なんて放っとけば?

8388362019/07/19(金) 00:20:37.85ID:hngv4enD
>>836
ルールを修正

1. 開始点S(座標、0行0列)から終了点E までの、最小コストを求める。
2. S, E 双方から、双方が出会うように移動する時、最小コストで出会う座標と、その時のコストを求める。
この時の最小コストは、双方のコストを足したものです

1ターンで、縦横1つ隣のマスへ、必ず移動する。
自分が通ったマスは、1回しか通らないが、相手が通ったマスは、通れます

数字が各マスへの移動コストで、_ は、単なる目印で無関係です

この2は、かなり難しいのかな?
最小コストが求まるのかな?
漏れにも、わからない

839デフォルトの名無しさん2019/07/19(金) 00:31:00.88ID:uE+iP71G
>>838
迷惑だからちゃんと整理して解ける問題か確認してから書き込め。説明も下手すぎるからちゃんと推敲しろ。

840デフォルトの名無しさん2019/07/19(金) 00:57:57.34ID:KQ8wFSu5
だから自分で一度書いて動くのを確認してから出題しろと何度言えば…

841デフォルトの名無しさん2019/07/19(金) 02:15:25.70ID:ApXEphk2
>>834
common lisp
https://pastebin.com/TjpFVgBk

> (OX-game)
123/456/789 to write OX
|789|
|456|
|123|

| |
| |
| |
player-1 writing O to ...
1
| |
| |
|O |
player-2 writing X to ...
...
|XX |
| O |
|O |
player-1 writing O to ...
9
player-1 win
|XXO|
| O |
|O |

842デフォルトの名無しさん2019/07/19(金) 02:16:34.42ID:ApXEphk2
続き

player-2 writing X to ...
2
|X O|
|OOX|
|XXO|
player-1 writing O to ...
8
it's draw! finish a game without either one winning

843デフォルトの名無しさん2019/07/19(金) 02:19:09.79ID:ApXEphk2
2chのレイアウト変更を忘れてた
こうなる
プログラミングのお題スレ Part14 	->画像>47枚

844デフォルトの名無しさん2019/07/19(金) 02:28:05.00ID:ApXEphk2
深夜だからか貼り付けミスってた
>>841
https://pastebin.com/6ZRajAGz

845デフォルトの名無しさん2019/07/19(金) 08:59:52.92ID:MqWaI42B
「忘れてた」
「ミスってた」
「深夜だから」

846デフォルトの名無しさん2019/07/20(土) 00:17:01.47ID:fiB1nngo
>>836
最小重み経路問題かな?
軽く書いてみたけど、最短経路問題の3倍位難しい。
出直してくるわ。

847デフォルトの名無しさん2019/07/20(土) 02:47:49.06ID:fiB1nngo
>>836
https://ideone.com/PQwu2U
C++。出直してきたよ。
2パスになってる。
一回目は適当に上限値を取りに行って、二回目で本気探索する感じ。

848◆QZaw55cn4c 2019/07/20(土) 08:18:17.29ID:jbjCUWIF
お題と回答
>>5 : 6 10 32 36 44
>>9 : 15 34 35 79
>>11=>>575 : 48 (78) 138-139 (140) 142 146 151 154
>>19 :
>>50, http://2chb.net/r/tech/1549160513/920 : 4 85 89
http://2chb.net/r/tech/1549160513/988 == >>164 : 59 61 167 169 189 192 201 202
>>90 : 95 96
>>99 :
>>200 : 214 219
>>215 : 227
>>220 : 232 240 248 256 268
>>235 : 236 237 238 239 247 249 259 342 353
>>320 : 321 323 327 330 340
>>322 : 325 328 329 331 332 339 341 358 359

849◆QZaw55cn4c 2019/07/20(土) 08:18:32.72ID:jbjCUWIF
>>362 : 367 369 370 371 374 379 380 382 414
>>368 : 390
>>388 : 487 (488) 553 559
>>400 : 401
>>408 :
>>417 : 418 419 421 426 432 433 436 438 442 446 451 452 456 471 474 480 482 489 492 495 498 528 530 540
>>479 :
>>555 : 556 558 564 565
>>557 : 560 562 568 569
>>570 : 574 577
>>573 : 604 622
>>600 : 605 607 611 613 627 691
>>615,626 :
>>632 : 637 640 645 649 650 687 689-690

850◆QZaw55cn4c 2019/07/20(土) 08:18:48.37ID:jbjCUWIF
>>651 : 654 657 662 679 682
>>655 :
>>661 :
>>683 : 685
>>695,704,716,721 : 696 697 701 703 711 713 714 715 718 722 723 724 727 740-741
>>708 : 714
>>717 :
>>752 :
>>753 : (760)
>>767 : 775
>>778 : 779 788 (792) 794
>>789 : 790 (793)
>>807 : 810 811 812 814 815 816 821 823
>>824 : 826 827-828 829 831

851◆QZaw55cn4c 2019/07/20(土) 08:19:03.91ID:jbjCUWIF
>>833 : 841
>>835 :
>>836 : 847

852デフォルトの名無しさん2019/07/20(土) 10:54:30.31ID:ilSI1heG
迷惑だからやめろ
やるなら言語別集計とか少しでも付加価値を入れろ

853デフォルトの名無しさん2019/07/20(土) 11:03:01.50ID:eNhk7IpQ
留数定理も知らないくせにしゃしゃりでてんじゃねえぞクソコテ白痴クロッチロット野郎が

854◆QZaw55cn4c 2019/07/20(土) 14:28:34.17ID:jbjCUWIF
>>852
>言語別集計
次スレで採用しようと思います、このスレでよく使われる言語とその程度を棒グラフ的に認識したくなりました

855デフォルトの名無しさん2019/07/20(土) 14:50:09.53ID:OIy5RkDH
>>854
本当に申し訳ないんですがここに貼るないでもらっていいですか

856デフォルトの名無しさん2019/07/20(土) 14:51:10.98ID:OIy5RkDH
認識したいのならご自由にでも迷惑だからここには貼らないで

857デフォルトの名無しさん2019/07/20(土) 15:04:46.84ID:UpWxMySu
>>848
本当に迷惑だからやめろ
工夫なんか一切しなくていいから金輪際やめろ

858デフォルトの名無しさん2019/07/20(土) 15:23:47.14ID:QHhW8HGw
>>854
自分のPC上で好きなだけやれよ

859デフォルトの名無しさん2019/07/20(土) 18:06:54.10ID:k4+mr7b7
お題: できるだけ少ない回数で1から1000の数を判定しろ

入力: 775
出力 n==755

入力: 2,4, ...., 1000
出力 n%2

入力: 3,4,5,6, 10
出力 : n-3<=3 ||n==10

860デフォルトの名無しさん2019/07/20(土) 18:27:26.16ID:fiB1nngo
あっ。あっ。頭が!爆発!!しちゃうーーーーーーーー!!!

861デフォルトの名無しさん2019/07/20(土) 19:19:03.53ID:eeWyC8j7
>>859
> 入力: 2,4, ...., 1000
> 出力 n%2
これ間違えてね?

862デフォルトの名無しさん2019/07/20(土) 19:25:23.08ID:c0ewdrdO
桃白白改めミスターポポ改めピラフ改めピッコロさんは毎回適当に出題してるからね

863デフォルトの名無しさん2019/07/20(土) 19:58:58.98ID:k4+mr7b7
>>861
うん

864デフォルトの名無しさん2019/07/20(土) 21:47:04.48ID:riEgRod9
>>859
xy座標で y = xのn-1次以下の式が
n個の点があたえられると導けるから
その出力の一意性に疑問がある

865デフォルトの名無しさん2019/07/20(土) 23:23:39.84ID:ge7gFbNK
お題
正の整数nと、正の整数のリスト2つ
a_1, ..., a_k
b_1, ..., b_k
が与えられる。
これに対して以下の操作を繰り返す。

操作: n*a_i/b_iが整数になる最初のa_i/b_iをnに掛ける

この操作ができなくなる時が来るかどうか判定してください。

866デフォルトの名無しさん2019/07/20(土) 23:44:40.61ID:riEgRod9
>>865
lisp
(loop for a in '(1 4 3 4 5 6) for b in '(7 8 9 10 11 12) with n = 14 when (integerp (* (/ a b) n)) do (return (format t "a:~a b:~a" a b)) finally (princ "not found"))
a:1 b:7

(loop for a in '(1 4 3 4 5 6) for b in '(7 8 9 10 11 12) with n = 13 when (integerp (* (/ a b) n)) do (return (format t "a:~a b:~a" a b)) finally (princ "not found"))
not found

867デフォルトの名無しさん2019/07/21(日) 00:23:35.41ID:Bd+iRrer
>>853
頭のおかしいガイジのくせに数学を語ってんじゃねぇよ
ぶっ殺すぞガイジ
実関数もわかってねぇくせに複素関数を語ってんじゃねぇよ
おめえの腸を掘り出して排水溝に捨てるぞ

868デフォルトの名無しさん2019/07/21(日) 00:27:00.70ID:RHDfdbdw
>>866
説明が足りなかった
iを見つけたら
n = n*a_i/b_i
として同じことを繰り返す

869デフォルトの名無しさん2019/07/21(日) 02:19:32.68ID:m/GaQUZU
>>868
https://pastebin.com/QJzjZLWg
a:1 b:7 n:14
a:4 b:8 n:2
n finally 1

870デフォルトの名無しさん2019/07/21(日) 03:17:35.19ID:okP8VzSh
>>848
そのまとめ、専ブラ(ChMate)使ったら何も加工せずにより良い結果を表示できる
ってか、あんたの投稿で出題に無関係なレスもピックアップされてしまう
百害あって一利なし、なのでヤメてくれ

871デフォルトの名無しさん2019/07/21(日) 08:20:50.09ID:o8Rw7GgG
◆QZaw55cn4c のまとめ(と称した自己満足)は本当に迷惑だからやめてほしい

872デフォルトの名無しさん2019/07/21(日) 09:52:12.84ID:z5eK/QET
>>867
コテハン付け忘れてんぞw

873◆QZaw55cn4c 2019/07/21(日) 12:17:22.63ID:vddupZNY
>>870
その専用ブラウザはアンカーのほかにスレッドURLにも対応していますか?
http://2chb.net/r/tech/1558168409/833 : 841
http://2chb.net/r/tech/1558168409/835
http://2chb.net/r/tech/1558168409/836 : 847
こういう形式であってもピックアップする機能があるのですか?

874デフォルトの名無しさん2019/07/21(日) 12:22:59.36ID:JSHlhL4U
とにかく迷惑だからやめろ

875デフォルトの名無しさん2019/07/21(日) 12:37:24.29ID:m/GaQUZU
>>873
おまえも一応プログラマだろ
本当に自分でそれ書けないのか?

876◆QZaw55cn4c 2019/07/21(日) 13:08:23.15ID:vddupZNY
>>875
>>873 は実害報告(>>870) に対する回避策への調査であり、プログラミング可能性とは関係ないでしょう

877デフォルトの名無しさん2019/07/21(日) 13:14:57.26ID:6reBljd1
>>876
回避策も何も、お前が書き込みをやめればすむだけの話だ

878デフォルトの名無しさん2019/07/21(日) 14:00:38.73ID:LwmwcwKU
なんで手間暇かけて他人の嫌がる余計なことするのかね
ろくな回答書けないなら黙ってROMってろって思うわ

879デフォルトの名無しさん2019/07/21(日) 14:03:18.32ID:DBsZJ8x+
これだから朝鮮人は嫌われるんだよ

880デフォルトの名無しさん2019/07/21(日) 14:51:20.84ID:5KK3hTpc
https://ideone.com/37oWvg
質問だけど、>>836 のループ展開版書いてたんだけど、
終了条件わからないんだけど、どうしたらいいと思う?

881デフォルトの名無しさん2019/07/21(日) 15:57:20.08ID:5KK3hTpc
https://ideone.com/lOmm7w
>>836
C++。できた。終了位置がレンジ外だったりした。
ただ、いじりすぎてロックインしてないか心配だ。

概要としては、最小重み経路問題の非再帰関数バージョン。のはず。

882デフォルトの名無しさん2019/07/21(日) 16:07:33.87ID:5KK3hTpc
なんか降ってきたわ。ありがたやー。

883デフォルトの名無しさん2019/07/21(日) 21:50:34.29ID:WILkXhL9
>>865
問題かよくわからない。a_i/b_iをnに掛けた結果をどうするのか?何かに代入するのか?

884デフォルトの名無しさん2019/07/21(日) 22:55:45.10ID:tHXql6vE
n*a_i/b_iが整数になったらnにそれを代入して、もう一度頭から繰り返すんじゃろ
で、無限にその操作を繰り返せるのか途中で終わるのかを判定する

885デフォルトの名無しさん2019/07/22(月) 04:31:58.44ID:Q+N+yzYS
>>873
スレッドURLにも対応してる、しつこいよあんた

886デフォルトの名無しさん2019/07/22(月) 04:43:22.10ID:wriJoSF9
>>873は百害あって一理なし

887デフォルトの名無しさん2019/07/22(月) 05:57:37.39ID:R4+31Tcv
QZとか言う馬鹿は自分がやっている事がことごとく嫌がらせになっているというのにも
全く気づいてないんだろうなあ

888デフォルトの名無しさん2019/07/22(月) 10:03:01.17ID:xuhhP9lh
おまけにこの糞コテは数学もまともにできない低能

889デフォルトの名無しさん2019/07/22(月) 11:18:34.47ID:wZJ8iqbX
良かれと思ってやったのに迷惑だと言われる
千羽づるみたいだなって思いました

890デフォルトの名無しさん2019/07/22(月) 11:35:03.07ID:sp7+c3NQ
>>889
千羽鶴なら日本の文化だからまだいいよ
QZのは明らかに異国の匂いがする

891デフォルトの名無しさん2019/07/22(月) 11:38:44.03ID:RNJMLfCg
>>889
千羽鶴なら独善ではあっても善意のつもりだというのは分かるが、QZのは他人のためでなく自分がそうしたいというだけの理由だから、より嫌われる

8928362019/07/22(月) 14:11:57.23ID:GAEqWBnq
お題・ルールは、
>>838
のままで良いです

マスは、11 * 11 で、やってみましょう!

空行・_ は、単に見やすくしただけなので、無視してください

S2953_94137_3
71546_79881_4
83411_29465_2
23716_54268_4
47385_73638_9

55263_74296_1
34945_87362_5
96755_42186_7
14893_12472_6
71911_47852_1

29437_95134_E

893デフォルトの名無しさん2019/07/22(月) 17:05:26.62ID:mrS8zraI
>>892
https://ideone.com/aTBvPq
C++。あってるかはしらねーが、初期値を与えなおしてみたよ。

894デフォルトの名無しさん2019/07/22(月) 17:08:22.90ID:mrS8zraI
>>892
問い2は道順取れてるので頭と尻尾から配列なめてけば一応、かち合う場所が取れるよ。

895デフォルトの名無しさん2019/07/22(月) 17:53:24.27ID:mrS8zraI
https://ideone.com/ymnJMi
C++。バグがあったので直した。
最初の数値が固定値だったので、マスの値に変更した。

896デフォルトの名無しさん2019/07/22(月) 19:52:32.52ID:27NBQOQ4
S66
996
19E

超単純化した↑の場合
問1の場合はコスト18
問2の場合は座標(0,2) コスト19
で良いんだよな?

897デフォルトの名無しさん2019/07/22(月) 20:21:15.73ID:mrS8zraI
ホンダがらったフンだがらったヘンだがらった!フンフン!!

いでよ、主催者!!!

898デフォルトの名無しさん2019/07/22(月) 20:27:49.31ID:vmYUDJ0J
>>897
ここには特に主催している人は居ないし、そもそも組織になっていない。各個人か勝手にお題を出して解きたい人が解いてるだけ。
おそらく常連は居るだろうが基本的に匿名で誰が誰だかよくわからず、人か入れ替わっていてもわからない。

899デフォルトの名無しさん2019/07/22(月) 22:09:07.24ID:zz8dj3fo
問1ってダイクストラ法まんまでいいの?

9008362019/07/23(火) 09:29:05.01ID:5GIBUFQK
問2 について考えてみた

最短ターンでは、10ターンで、双方が出会うけど、
その時の双方を足したコストが、最小とは限らない!

だから迂回路の場合、つまり、11ターン以上で出会うマスも、すべて考慮して、
その中から最小コストを選ぶ必要がある

例えば、あるマスが、S・E 双方から12ターンなど

その際、双方からのターン数が異なる場合は、関係ない。
例えば、あるマスが、Sから11ターンで、Eから13ターンなど

>>899
ダイクストラ法で良い。
漏れは、総当たりでやってみる

9018362019/07/23(火) 09:37:45.12ID:5GIBUFQK
>>896
問1 は、6 + 6 + 6 = 18

問2 は、左下の1 の所で出会うのなら、
S から、9 + 1 = 10
E から、9 + 1 = 10
で、合計20

出会うマスのコストを2回足しているけど、これで良いか

902デフォルトの名無しさん2019/07/23(火) 13:22:20.59ID:QB0eaOex
>>898
あ、それはわかってるよ。
問題の主催者(>>836)を呼びたかった。
やってきたので召喚成功だ。

ふふ。

903デフォルトの名無しさん2019/07/23(火) 16:42:15.95ID:0hlsR1TA
Sは左上、Eは右下、盤面は正方形で良いのか?それともそれ以外のパターンも考慮しなきゃいけないのか

9048362019/07/23(火) 17:53:12.70ID:5GIBUFQK
>>903
正方形ではなく、長方形だね

マスの座標は、行列の順で、開始点は( 行0, 列0 )

漏れは、盤面の周囲に、番兵を置いて、考えてます

9058962019/07/23(火) 18:05:44.96ID:GpNXeX+q
>>901
うん、ぼけてた
コスト20やなw

問2で盤面サイズが奇数x偶数とかの場合はゴールはどう考えればいいの? 同時移動だとすれ違っちゃうが
Sが常に先に動く (Eが居るところで合流)
Eが常に先に動く (Sが居るところで合流)
SとE好きな方が先に動く (コストが低いマスの方で合流)
SとEが同時に動く (すれ違って合流できない? 中間点で合流? その場合のコストは?)

たとえば S12E とかの場合

9068362019/07/23(火) 20:32:34.55ID:5GIBUFQK
盤面のサイズが偶数では、問2 は無理

必ず、奇数×奇数

907◆QZaw55cn4c 2019/07/23(火) 21:26:26.55ID:JcFEdZGk
>>885
回答いただき感謝いたします

908デフォルトの名無しさん2019/07/23(火) 22:05:37.82ID:GpNXeX+q
>>906
偶数×偶数も行けるやろ
偶数×奇数、奇数×偶数は無理だが

909デフォルトの名無しさん2019/07/24(水) 14:07:43.24ID:i9YSslum
目の前で出会うことが目的じゃないの?

910デフォルトの名無しさん2019/07/25(木) 16:00:43.87ID:JLY47fmQ
任意の整数を引数に取り、フィボナッチ数か判別するisfib関数を作れ。
なお、フィボナッチ数では無い場合任意の整数と-1の組(Cなどは代わりの物)を、
フィボナッチ数ならフィボナッチ数=任意の整数とそれがフィボナッチ数列の何番めかを表す数の組を返す事。

例:
isfib 0 = (0,1)
isfib 1 = (1,2)
isfib 2 = (2,4)
isfib 3 = (3,5)
isfib 4 = (4,-1)
isfib 5 = (5,6)

911デフォルトの名無しさん2019/07/25(木) 18:03:38.63ID:D8pzUtDE
>>910
Common Lisp
https://pastebin.com/qqYUKSem

出力
(loop for i from 0 to 6 do (isfib i))
(0 . 1)
(1 . 2)
(2 . 4)
(3 . 5)
(4 . -1)
(5 . 6)
(6 . -1)

912デフォルトの名無しさん2019/07/26(金) 01:20:21.47ID:E/v28Z/A
>>910 Perl5

sub isfib {
 $v = shift;
 %h = map{$_ => $_} @s = (0,1);
 do {
  $f = $s[-2] + $s[-1];
  push @s, $f;
  $h{$f} //= @s;
 } while $f < $v;
 ($v, $h{$v} // -1);
}
printf "isfib $_ = (%d,%d)\n", isfib $_ for 0..5;

実行結果
$ perl 14_910_isfib.pl
isfib 0 = (0,0)
isfib 1 = (1,1)
isfib 2 = (2,4)
isfib 3 = (3,5)
isfib 4 = (4,-1)
isfib 5 = (5,6)

913デフォルトの名無しさん2019/07/26(金) 06:33:07.15ID:NUjZudpe
>>910 Lua
function isFib(n)
  local a, b, c = 0, 1, 1
  while a < n do
    a, b, c = b, a + b, c + 1
  end
  if a ~= n then c = -1 end
  return n, c
end

9148362019/07/26(金) 09:34:26.36ID:54Ib42km
>>908-909
確かに、偶数×偶数は、
同じターンで、同じマスに入れますね!

S1
2E

S12
34E

915デフォルトの名無しさん2019/07/26(金) 09:50:12.39ID:rMhs1i6l
>>910
戻り値がbooleanじゃないのが気持ち悪い

916デフォルトの名無しさん2019/07/26(金) 21:09:58.82ID:D2C6zjmj
>>913
4のとき
isfib 4 = (5,-1)
にならない?

917デフォルトの名無しさん2019/07/26(金) 22:09:57.95ID:wMkqv1Wf
「何番目かを返す」ってのが地味に難しいな
そこまでの全てのフィボナッチ数を求めないと無理じゃね?

918デフォルトの名無しさん2019/07/26(金) 22:53:34.40ID:XK3Q7RTy
>>916 勘違いした
isfib 4 = (4,-1)
になる。合っている。

919デフォルトの名無しさん2019/07/26(金) 23:11:48.79ID:PBeJ5BeU
キャッシュ層込みの問題だな

920蟻人間 ◆T6xkBnTXz7B0 2019/07/26(金) 23:31:36.17ID:HmAxaouE
お題: 水素原子、酸素原子、炭素原子からなる分子の化学式が与えられる。原子の種類と個数から考えられる分子構造をデータ構造で表現し、コンソール画面に可能なかぎり表示しなさい。

(例)
H2O --> H - O - H
CO2 --> O = C = O
CH4 -->
  H
 |
H- C - H
  |
  H

921蟻人間 ◆T6xkBnTXz7B0 2019/07/26(金) 23:39:37.50ID:HmAxaouE
(例2) 図式化が難しければ、データ構造だけでもいい。

CO2 → (C, O, O), ((0, 1), (0, 2)).
H2O → (H, H, O), ((0, 2), (1, 2)).
CH4 → (C, H, H, H), ((0, 1), (0, 2), (0, 3)).

922デフォルトの名無しさん2019/07/26(金) 23:40:57.41ID:XK3Q7RTy
>>920
サンプル回答キボンヌ

923蟻人間 ◆T6xkBnTXz7B0 2019/07/26(金) 23:42:34.11ID:HmAxaouE
>>921
訂正。
CH4 → (C, H, H, H, H), ((0, 1), (0, 2), (0, 3), (0, 4)).

924デフォルトの名無しさん2019/07/26(金) 23:45:02.28ID:PBeJ5BeU
>>920
ベンゼン寒とかシクロヘキサン
3、5つあたりも鬼門か?

925蟻人間 ◆T6xkBnTXz7B0 2019/07/26(金) 23:47:59.42ID:HmAxaouE
図式化は不可能に近いようだ。データ構造だけでOK.

926デフォルトの名無しさん2019/07/26(金) 23:48:10.95ID:XK3Q7RTy
そいうこと考えてから出題ヨロ

927蟻人間 ◆T6xkBnTXz7B0 2019/07/27(土) 00:19:22.73ID:P0VdsVRX
備考。

ここでは単純のために「結合の手」を使ったモデルで考える。
原子によって結合の手の個数は決まっている(Cは4個、Oは2個、Hは1個)。
結合の手が余らないような分子構造のみを考える(一酸化炭素COのような構造は除外する)。

928蟻人間 ◆T6xkBnTXz7B0 2019/07/27(土) 00:22:04.97ID:P0VdsVRX
電荷を持たない分子だけを対象とする。イオンではない。

929デフォルトの名無しさん2019/07/27(土) 00:24:45.04ID:A58wSpEe
ヨーク考えて、出題するレベルに練りあがってから出直したらどうですか

930デフォルトの名無しさん2019/07/27(土) 03:29:25.97ID:IOXz7NXW
うわーおQZってまだ生きてたのか
昔NG推奨にしてスレ立てたような気がしたんだが

931デフォルトの名無しさん2019/07/27(土) 06:20:15.81ID:vbPXi5Ru
>>930
以下のレスのように、相変わらず身勝手なレスを繰り返してるよ

http://2chb.net/r/tech/1562581391/575

932デフォルトの名無しさん2019/07/27(土) 06:23:51.65ID:Okexx4cI
>>917
一般項 f(n) = (φ^n - (-φ)^(-n)) / sqrt(5) はnに対して狭義単調増加なので逆写像 fi(n) が存在して当然 fi・f(n) = n が成り立つ。
従って「そこまでの全てのフィボナッチ数を求めないと無理」は偽である。

933デフォルトの名無しさん2019/07/27(土) 06:26:39.77ID:Okexx4cI
>>920
化学式と分子構造は一対一対応してねえよ
そんなの今日日高校生ですら理解してるわ
二度と書き込むな

934デフォルトの名無しさん2019/07/27(土) 10:14:18.78ID:yKuZ7Tou
お題
非負整数m, nに対し、
f(m, n)= n+1 if m==0
f(m, n) = f(m-1, 1) if n == 0
f(m, n) = f(m-1, f(m, n-1)) otherwise
なるf(m, n)の値を求めよ

f(2, 1) = ?
f(4, 1) = ?

935デフォルトの名無しさん2019/07/27(土) 10:45:11.97ID:aB6NIKG8

936デフォルトの名無しさん2019/07/27(土) 10:56:52.18ID:aB6NIKG8
>>934
https://ideone.com/zaOvTK
C++。2個目がスタックオーバーフローだと思う。

937デフォルトの名無しさん2019/07/27(土) 11:08:11.84ID:tV8GDyIW
>>932
あのさ、簡単に言うけどその逆関数は複素関数になるぞ
そこまで言うなら逆関数を使ってnを求めるプログラムを書いてみろ
ここはム板だ

938デフォルトの名無しさん2019/07/27(土) 11:11:50.71ID:1cAkezH+
>>934
perl5
https://pastebin.com/xxirNWW3

f(4,1) はPCが帰ってこなくなったからやらない
f(2,1) は5だった

939デフォルトの名無しさん2019/07/27(土) 11:57:13.11ID:g91Bo5NE

940デフォルトの名無しさん2019/07/27(土) 12:10:03.51ID:aB6NIKG8
え?メモ化したら解けるの??
ガーン。

941◆QZaw55cn4c 2019/07/27(土) 12:26:28.44ID:BeYdmmLD
お題と回答
5 : 6 10 32 36 44
9 : 15 34 35 79
11=575 : 48 (78) 138-139 (140) 142 146 151 154
19 :
50, http://2chb.net/r/tech/1549160513/920 : 4 85 89
http://2chb.net/r/tech/1549160513/988 == 164 : 59 61 167 169 189 192 201 202
90 : 95 96
99 :
200 : 214 219
215 : 227
220 : 232 240 248 256 268
235 : 236 237 238 239 247 249 259 342 353
320 : 321 323 327 330 340
322 : 325 328 329 331 332 339 341 358 359
362 : 367 369 370 371 374 379 380 382 414
368 : 390
388 : 487 (488) 553 559
400 : 401
408 :
417 : 418 419 421 426 432 433 436 438 442 446 451 452 456 471 474 480 482 489 492 495 498 528 530 540
479 :
555 : 556 558 564 565
557 : 560 562 568 569
570 : 574 577
573 : 604 622
600 : 605 607 611 613 627 691
615,626 :
632 : 637 640 645 649 650 687 689-690
651 : 654 657 662 679 682

942◆QZaw55cn4c 2019/07/27(土) 12:27:01.61ID:BeYdmmLD
655 :
661 :
683 : 685
695,704,716,721 : 696 697 701 703 711 713 714 715 718 722 723 724 727 740-741
708 : 714
717 :
752 :
753 : (760)
767 : 775
778 : 779 788 (792) 794
789 : 790 (793)
807 : 810 811 812 814 815 816 821 823
824 : 826 827-828 829 831
833 : 841
835 :
836,838,892 : 847 880 881 893 895
865,868 : 866 868
910 : 911 912 913 935
934 : 936 938 939

943デフォルトの名無しさん2019/07/27(土) 12:28:33.93ID:aB6NIKG8
https://ideone.com/iEyKYb
C++。constexprでもダメだったよ。

944デフォルトの名無しさん2019/07/27(土) 12:36:01.98ID:1cAkezH+
ああ まただよ(笑)

945デフォルトの名無しさん2019/07/27(土) 12:37:09.52ID:aB6NIKG8
d -_- b

946デフォルトの名無しさん2019/07/27(土) 13:05:36.13ID:hLAGzHLQ
>>941-942
統合失調症患者はどっか逝け

947デフォルトの名無しさん2019/07/27(土) 14:28:16.32ID:eTs80TG9
お題: cpu温度を表示せよ

948デフォルトの名無しさん2019/07/27(土) 15:01:57.99ID:Okexx4cI
>>937
論点ずらすな
「〜は無理」って言ってるからそれを否定しただけ
ただ 1 <= n <= 2 で狭義単調増加じゃないからそこだけは訂正しておくが

てかどんな頭で考えたらこの逆関数が複素関数になるんだか
可哀そうだから答え書いといてあげるけどさ
fi(x) = (log(sqrt(5) * x + sqrt(5 * x^2 - 4 * (-1)^((x + 1) % 3))) - log(2)) / log(φ)

949デフォルトの名無しさん2019/07/27(土) 15:15:49.31ID:b5LHfPHC
>>948
CやC++で ^ はXOR演算子なんだが

950デフォルトの名無しさん2019/07/27(土) 15:20:43.26ID:aB6NIKG8
ファイが何を指しているか・・・わからない・・・。
その定数5のいみがわからない。


そんな、ホラー。

951デフォルトの名無しさん2019/07/27(土) 15:23:42.00ID:Okexx4cI
動物園かよここは……

黄金比 φ := (1 + sqrt(5)) / 2

>>949
お前は一生クワス算でもやってろ

952デフォルトの名無しさん2019/07/27(土) 15:26:08.80ID:b5LHfPHC
>>951
そんなもん知ってるわアホ
上から目線で偉そうに

953デフォルトの名無しさん2019/07/27(土) 15:28:08.33ID:Okexx4cI
>>952
意味不明すぎてくっそ笑ったwww
自らの頭の悪さにキレててウケる

954デフォルトの名無しさん2019/07/27(土) 15:29:41.45ID:IpJBqisA
おおかた、数学的には反論できなくて悔しくなってc++では〜などという難癖をつけたのだろう
これ以上はスレチだからどっかよそでやれ

955デフォルトの名無しさん2019/07/27(土) 15:31:02.81ID:O5H2zazt
反論とかワロス
数学板でやれ

956蟻人間 ◆T6xkBnTXz7B0 2019/07/27(土) 15:33:55.84ID:P0VdsVRX
phi

957デフォルトの名無しさん2019/07/27(土) 15:35:44.71ID:d+qHn5lK
数学(?)の話してんのにCやC++で ^ はXOR演算子なんだがとかいうやつ初めて見たわ
無能アピールだとしたらこれ以上ないくらいに効果出てるな

958デフォルトの名無しさん2019/07/27(土) 15:40:02.09ID:z4Poa3yK
数学の話は数学板で

959デフォルトの名無しさん2019/07/27(土) 15:40:49.84ID:7QbyGuYU
>そこまで言うなら逆関数を使ってnを求めるプログラムを書いてみろ!
どうせ無理だと思ってタンカを切ったら相手にあっさり答えを書かれてしまう(ついでに自分の間違いまで指摘されてしまう)
もし俺がこいつだったら、恥ずかしくなりすぎてXOR演算子云々で話をうやむやにする気持ちもわかるぞ

960デフォルトの名無しさん2019/07/27(土) 15:48:04.56ID:aB6NIKG8
>>951
https://ideone.com/PMTi9h
C++。コードに落としてみたけど、数学解らないから教えて。
フォークしてもいいよ。

961デフォルトの名無しさん2019/07/27(土) 15:51:41.66ID:aB6NIKG8
作ってて思ったのはね。
片方の関数は、フィボナッチ数知らないと動作しないのじゃないかということ。
片方の関数は、フィボナッチ数もとめにいくんだけど。

んで、鳥と卵の問題に見えるので、どういう風に使えばよいのかわからない。

962デフォルトの名無しさん2019/07/27(土) 15:52:21.85ID:3aZcsmVe
答え:カモノハシ

963デフォルトの名無しさん2019/07/27(土) 15:57:38.07ID:Okexx4cI
>>960
Fiの分子が微妙に違ったので訂正しておいたよ
https://ideone.com/SNN3mV

964デフォルトの名無しさん2019/07/27(土) 16:04:37.22ID:f7WK2xYd
炎上学習法か
例の頭のおかしな人かな?

965デフォルトの名無しさん2019/07/27(土) 16:04:59.65ID:1cAkezH+
あの逆関数?を単純に放りこんだら解けなかった
一筋縄じゃいかないね

Solve[(Log(Sqrt(5) * x + Sqrt(5 * x^2 - 4 * (-1)^((x + 1) % 3))) - Log(2)) *2/(1 + Sqrt(5)) ==5,x]
Solve::nsmet: This system cannot be solved with the methods available to Solve.

966デフォルトの名無しさん2019/07/27(土) 16:07:23.94ID:1cAkezH+
() [] に上の式を正しくなおしたがやはりだめだ

967デフォルトの名無しさん2019/07/27(土) 16:08:06.87ID:7aZqje0Z
>>964
お前もまだいたの

968デフォルトの名無しさん2019/07/27(土) 16:08:36.42ID:aB6NIKG8
>>963
https://ideone.com/qN8CCx
幾つかNANになったのはコンピュータの問題かなぁ??
あんまり詳しくないんだけど。

中央値がきれいに取れてるので、境界線系のエラーもあり得る。

969デフォルトの名無しさん2019/07/27(土) 16:13:46.18ID:aB6NIKG8
しかしまー、数式で可逆式まで考えられるモノなのだねぇ。感心するわ。。。

970デフォルトの名無しさん2019/07/27(土) 16:27:26.01ID:aB6NIKG8
>>910 の題意からすると、こんな感じ?
https://ideone.com/WLv6dA

>>932の「有効」でエンド。

971デフォルトの名無しさん2019/07/27(土) 16:30:29.90ID:aB6NIKG8
いや、「技あり」か。

972デフォルトの名無しさん2019/07/27(土) 16:48:31.50ID:Okexx4cI
>>968
それのstd::pow(-1, 〜) が問題なので書き換えた
多少の誤差はあれどn = 2 を除いて右側の数字は0, 1, ..., 127と並んでいるよね
https://ideone.com/X7WSxR

973デフォルトの名無しさん2019/07/27(土) 16:51:51.51ID:aB6NIKG8
>>972
大体、求まってるね。

あなたつよいわ〜。
ここまで出来たら、あとは見せ方。

974デフォルトの名無しさん2019/07/27(土) 16:54:46.18ID:aB6NIKG8
念のため言っておくと、ideonは実行後コードと同じページにstdoutを表示する。

975デフォルトの名無しさん2019/07/27(土) 16:59:41.70ID:aB6NIKG8
>>972
三項演算子は、返す型が同じじゃないとエラーを吐く。
doubleとchar[]になってる。

976デフォルトの名無しさん2019/07/27(土) 17:02:12.84ID:aB6NIKG8
お、動いたか。

とりあえず、この辺で抜けるわ。
まったねー。

977◆QZaw55cn4c 2019/07/27(土) 20:21:38.01ID:BeYdmmLD
>>934
アッカーマン関数であることにやっと気がつきました…

978デフォルトの名無しさん2019/07/27(土) 20:47:31.60ID:POROMEeh
>>977
どうてもいいけどお前は荒らすな

979デフォルトの名無しさん2019/07/27(土) 22:43:52.75ID:JtBf7oRg
>>972
誤差ないプログラム書けよ

980デフォルトの名無しさん2019/07/27(土) 23:00:24.26ID:JtBf7oRg
>>948
その式自分で考えた?
あと、>>934 の回答としてnが小さいときだけとか制約がある?

981デフォルトの名無しさん2019/07/28(日) 01:17:00.04ID:+ByOW8ha
お題
括弧のネストの深さの最大値を求めよ
括弧の対応が取れていない場合は-1を出力せよ


"{}" => 1
"}{" => -1
"" => 0
"{{{}{}}}{}" => 3

982デフォルトの名無しさん2019/07/28(日) 02:35:31.10ID:/N9EqgUo

983デフォルトの名無しさん2019/07/28(日) 04:13:25.02ID:QWXlr9dJ
>>910
Pythonで素直に書くとこんな感じ。

http://ideone.com/3HvxyP

これをそのままHaskellで書くと負けるが、こっちならPythonに勝つる。

http://ideone.com/iwLONj

984デフォルトの名無しさん2019/07/28(日) 06:16:51.79ID:YNZYuVVC
>>981 Ruby

f = -> str {s = -str; (0..1.0/0).each{|i| s.gsub!('{}', '') || (break s.size.zero? ? i : -1)}}
['{}', '}{', '', '{{{}{}}}{}'].each{|e| puts "%p => %d" % [e, f[e]]}

# =>
"{}" => 1
"}{" => -1
"" => 0
"{{{}{}}}{}" => 3

985デフォルトの名無しさん2019/07/28(日) 12:26:21.14ID:/N9EqgUo
>>981
perl5
http://ideone.com/HOpSCt

言語変えたらより見やすくなった

986デフォルトの名無しさん2019/07/28(日) 14:44:03.09ID:NJaTvOic
>>981 Perl5

use List::Util 'max';
%h = qw({ 1 } -1);
for ('{}', '}{', '', '{{{}{}}}{}') {
 ($l, $m) = (0, 0);
 for (map{$h{$_}} split'') {
  $l += $_;
  $m = max $l, $m;
  last if $l < 0;
 }
 $m = -1 if $l;
 print "'$_' => $m\n";
}

実行結果
$ perl 14_981.pl
'{}' => 1
'}{' => -1
'' => 0
'{{{}{}}}{}' => 3

987デフォルトの名無しさん2019/07/28(日) 16:06:00.72ID:T1A0+dDM
>>979-980
もともと提示されてたのは式だけだし、式自体に誤差はないじゃん。アホなの?
てかさ、(-1)^((x+1)%3)で場合分けを吸収してるところは素直に上手いなぁとは思うけど元のフィボナッチ数列の式からの変形自体は高校生レベルじゃんこれ
「自分で考えたの?」てお前アホなの?
誰が解いても上の部分以外は同じになるっつーの

「2次方程式の解の公式で解きました!」
「その公式って自分で考えたの?」
くらい間抜けでアホ馬鹿丸出し生きる価値無し短小包茎白癬菌

988デフォルトの名無しさん2019/07/28(日) 17:09:34.39ID:a6lmPEp9
むきになって長文書くなよ
迷惑行為だぜ

989デフォルトの名無しさん2019/07/28(日) 17:23:37.85ID:6a78I9O8
基地外だから仕方ないね

990蟻人間 ◆T6xkBnTXz7B0 2019/07/28(日) 18:48:49.76ID:38YML8XX
そろそろ次のスレ

991デフォルトの名無しさん2019/07/28(日) 18:51:08.82ID:vDw8KJqW
まだ早い

992デフォルトの名無しさん2019/07/28(日) 19:41:08.34ID:832c/ukY

993デフォルトの名無しさん2019/07/28(日) 19:42:06.95ID:bnGezINl
>>992
おつ

994◆QZaw55cn4c 2019/07/28(日) 23:35:47.94ID:GPK25ks7
>>992
お疲れさまです…

995デフォルトの名無しさん2019/07/28(日) 23:40:41.46ID:/N9EqgUo
>>994
書き込み禁止

996◆QZaw55cn4c 2019/07/28(日) 23:50:56.98ID:GPK25ks7
>>995
はいはい&hearts;

997デフォルトの名無しさん2019/07/29(月) 20:09:26.82ID:p0mLxaof
お題: このスレッドのアンカーの数を出力せよ

998デフォルトの名無しさん2019/07/29(月) 20:11:57.84ID:VkmvAKd6
w3m http://2chb.net/r/tech/1558168409/| grep -o ">>[0-9]" | wc -l
909

あれのせいだな

999デフォルトの名無しさん2019/07/30(火) 05:43:03.94ID:RYwsY7rK
>>164
あまり他の言語にない redo を使う perl5
http://ideone.com/46mcQl

1000デフォルトの名無しさん2019/07/30(火) 07:12:39.03ID:RYwsY7rK
>>417
13694289/134217728
を使えば満足するだろうか?なぜなら
(rational
0.102030405060708090
10011012013014015016
01701801902002102202
30240250260270280290
30031032033034035036
03703803904004104204
30440450460470480490
50051052053054055056
05705805906006106206
30640650660670680690
70071072073074075076
07707807908008108208
30840850860870880890
90091092093094095096
0970980990100
)
13694289/134217728

mmp
lud20191019185219ca
このスレへの固定リンク: http://5chb.net/r/tech/1558168409/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「プログラミングのお題スレ Part14 ->画像>47枚 」を見た人も見ています:
プログラミングのお題スレ Part8
プログラミングのお題スレ Part7
プログラミングのお題スレ Part19
プログラミングのお題スレ Part10
プログラミングのお題スレ Part13
プログラミングのお題スレ Part22
プログラミングのお題スレ
最も美しいプログラミング言語は? Part6
関数型プログラミング言語Haskell Part26
関数型プログラミング言語Haskell Part32
関数型プログラミング言語Haskell Part31
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part21
WPF(.NET, WinUI) GUIプログラミング Part30
WPF(.NET, WinUI) GUIプログラミング Part29
WPF(.NET, WinUI) GUIプログラミング Part26
WPF(.NET4.x, .NET Core) GUIプログラミング Part24
WPF(.NET4.x, .NET Core) GUIプログラミング Part23
【プログラミング】Omega Crafter Part1【サバイバル】
プログラミング詐欺?情報商材屋マナブ(ねずみ男・アル中)ってどうよ? Part2
【プログラミング商材12万】情報商材屋マナブってどうよ? Part5【ブログ商材2万】
サウンドプログラミング5
プログラミング用フォント
42Tokyo【プログラミング学校】
プログラミング言語 Rust 4【ワッチョイ】
プログラミング言語 Rust 4【ワッチョイ】
誰でもプログラミングを学べるサイトを作成しようぜ
ネットワークプログラミング相談室 Port27
ネットワークプログラミング相談室 Port31
標準的なオフィス環境だけでできるプログラミング
大卒フリーターにオススメのプログラミング教室
サーバー使ったプログラミングの勉強したいからお題だしてください
Bitcoin Core ビットコインコアの重大なプログラミング欠陥
家庭用ゲーム機でピアノやシンセ等16種類の楽器の音を選んで組合わせることが出来る専用ソフト使い作曲 ← プログラミングの授業らしい
Mathematicaプログラミング質問箱その2 (16)
Gtkプログラミング on Windows!!! (478)
プログラミング学習サイトについて語るスレ (11)
マルチプラットフォーム プログラミング言語 haXe (271)
【マウスだけで】Scratch【プログラミング】その1 (152)
日本語プログラミング言語『なでしこ』スレ6.1&#169;2ch.net (155)
大学生のプログラミング雑談スレ [無断転載禁止]&#169;2ch.net (63)
お前らプログラミング言語どうやって覚えたんや? [転載禁止]©2ch.net (635)
自動プログラミング
OpenMPプログラミング
プログラミング飽きた
OpenCLプログラミング#1
elm(プログラミング言語)
最強のプログラミング言語とは
プログラミング初心者なんだが
プログラミング始めたいんやが
AIプログラミング技法全般
0からプログラミング始めたい
Maximaプログラミング質問箱
エクセル指向プログラミング
「数学」をプログラミングするには
プログラミングを未経験からやるなら
プログラミング言語 クリトリス
暇でプログラミングするからすれ立てる。
プログラミングを勉強したいんだけど
プログラミングの勉強方法を30秒にまとめた
プログラミング言語、次は何を学ぶ?
プログラミング未経験→月4万
MVCを意識してプログラミングをするべき
04:20:02 up 5 days, 2:23, 3 users, load average: 83.20, 96.35, 97.79

in 0.021860837936401 sec @[email protected] on 101617