プログラミングのお題スレ Part14

レス数が1000を超えています。これ以上書き込みはできません。
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/

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

※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1549160513/
2019/05/18(土) 21:48:24.46ID:4Z6EQGT/
2get!
2019/05/19(日) 00:58:10.37ID:+tXYNnhs
#!/bin/sh

echo 1乙
2019/05/19(日) 01:17:58.03ID:nN2qvMwg
>>1

>>前スレ920
C
https://ideone.com/bz7Y5P
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デコード用ライブラリがあれば使う事。
正解 日 本
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
日 本
'''
2019/05/19(日) 09:25:01.68ID:c0f8nIXT
何も考えないバカはすぐに飛びつくなぁ
これお題に見せかけた課題か宿題だろw
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
2019/05/19(日) 11:57:55.37ID:8BTe2vpb
>>5
https://mevius.5ch.net/test/read.cgi/tech/1434079972/56
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点以上ポイントに重なっている。

問題を難しく感じる人は、斜めの正方形は考えないとしても良い。その旨回答に書いておいてください。
2019/05/19(日) 12:20:45.20ID:8BTe2vpb
お題と回答
>>5 : >>6 >>10
>>9 :
2019/05/19(日) 12:21:01.79ID:sA5/dcdL
宿題スレ行けって
2019/05/19(日) 12:29:21.94ID:tgogs/mB
>>12 おいおい、金儲けにするんかい。 ま、金を払う人がいるなら良いが。 学生の宿題に需要があるかな?
しかしこんなところで宣伝すんな。
2019/05/19(日) 12:30:23.34ID:GWUTnTrp
>>9 https://ideone.com/4nfTNV
2019/05/19(日) 13:00:59.70ID:tgogs/mB
>>15 93 だけは正しいけど他は違うだろと思ったが、0を足しても結果は変わらないから詐欺に近いな。
しかしこう言う指摘は、プログラムには重要。

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

問題の条件として各桁に0は含まないとしたり数字は2桁以内とするとか、答えは一番大きな数字を上から順に5つ示せとか。
2019/05/19(日) 13:16:39.44ID:tgogs/mB
出題するときには、答えが一意になる様にした方が良い。
回答する方も戸惑うし、正解が何かも判りづらくなる。

出来るだけ正解は少ない方が良い。 理想的には一つ。
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)となる
2019/05/19(日) 14:36:55.39ID:GWUTnTrp
詐欺は酷くないか
要件は満たしてるし、何より解が存在する全ての値に対して正しい解を出力するだろ
sumnum 1についても対応しようとしたらこれが綺麗な解法の1つであることは疑いようもない事実のはず
2019/05/19(日) 14:45:53.44ID:GWUTnTrp
>>20 と思ったが俺が間違ってた
相違なる数と言われてないから、sumnum 0に対しても[0,0,0,0,0]が解を満たすわな、すまんかった
2019/05/19(日) 14:47:51.69ID:8BTe2vpb
お題と回答
>>5 : >>6 >>10
>>9 : >>15
>>11:
>>19:
2019/05/19(日) 14:55:35.26ID:Ep+P2jjw
>>18 リンク先に書いてあるじゃん、金払えと。
>>19 さっぱりわからん。 何のための説明をしてるの? どんな問題に関係してるの?
2019/05/19(日) 15:06:26.05ID:dHqS2yoD
お題
ペアノの公理、及びペアノに依る加法の定義に従って 128 + 256 を計算せよ。
2019/05/19(日) 15:08:58.77ID:8BTe2vpb
>>23
>リンク先に書いてあるじゃん、金払えと

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

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

したがって、そもそも「金払え」とは書いてませんし、あるいは「ビットコインを払え」とすら書いていませんね
2019/05/19(日) 15:58:31.52ID:+SzmmtV9
>>25 だったら何で金を要求するサイトへのリンクを貼るんだよ。 ビットコインを稼ぎたいための宣伝だろ?

下心がないのなら直接 ideon のリンクを貼れば良いじゃないか。 面倒臭いし。
2019/05/19(日) 16:07:32.50ID:8BTe2vpb
>>26
自分の書いたコードを一箇所に固めているだけですよ
これわりと便利で、3年前のコードなんかすっかり忘れてしまっているのを呼び出せるのです、ああ、あのとき N クイーンやったよね、とか
自分のローカルは一つのディレクトリに放り込んでいるだけだから grep でも検索困難…
2019/05/19(日) 16:17:53.58ID:+SzmmtV9
練習問題のコードなんて使い捨てでいいじゃない。 俺も最初の頃は記録してたけど、もうやめた。
要は必要なときに必要なコードが書けなければそれまでなんだから、最初から勉強し直しても同じ。
昔のコードを見ても自分が理解していないんだから同じ。

沢山練習した方が良い。 基本から見直す事でより理解が深くなる。
2019/05/19(日) 16:51:21.34ID:8BTe2vpb
>>28
ええ、まったくの使い捨てでここ十年くらいやってますが、特定のスレに ideone/codepad のリンクを貼っていたのが、十年たってみると、当初は意図していなかった効用をもたらしてくれているんですね
2019/05/19(日) 18:13:20.80ID:CS5X1kUk
>>23
自己愛性パーソナリティ障害の朝鮮人は相手にすんなよ
2019/05/19(日) 18:40:48.30ID:ibH/HNzv
ネトウヨの相手もすんなよ
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 "=> '日 本' "
2019/05/19(日) 20:09:21.36ID:b1S+2jBu
>>32 但しURLエンコード専用ライブラリだけは使わない事。
34デフォルトの名無しさん
垢版 |
2019/05/19(日) 20:17:22.66ID:w9oOtt0P
>>9
Python3
https://ideone.com/v9wx2v
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
>>5
Java
https://paiza.io/projects/lPsVtvM3yO0cQEnRxg7fpQ
2019/05/19(日) 20:30:36.06ID:8BTe2vpb
>>36
いいことを教えてもらいました、Java って uft-16 だけかとおもっていました…
2019/05/19(日) 21:30:05.06ID:GwAz9H1L
>>33
組み込みメソッドの使用禁止とかばかげてる
2019/05/19(日) 21:53:11.12ID:8BTe2vpb
https://mevius.5ch.net/test/read.cgi/tech/1549160513/779
https://mevius.5ch.net/test/read.cgi/tech/1434079972/57
2019/05/19(日) 22:17:12.44ID:6fg2Xy1G
出禁 ID:8BTe2vpb
2019/05/19(日) 22:26:04.27ID:iE9NckHD
正直言ってここに出てくるお題よりAtCoderのお題の方がレベル高いよね
2019/05/19(日) 22:53:21.34ID:nN2qvMwg
11がマジで難しいんだけど、だれか取り組んでる?
2019/05/20(月) 00:00:59.23ID:V0YkyU13
>>41
小ネタの合間にめんどくさいものがポツポツあるかと >>11 とか
44デフォルトの名無しさん
垢版 |
2019/05/20(月) 02:35:31.92ID:8xDKheXg
>>5
Kotlin
https://paiza.io/projects/DCRebTKGifCuLe5ysI1JIA
2019/05/20(月) 06:02:09.58ID:poyp5Kqc
漏れなんて、書き捨てのRuby のファイルが、100もある

いつも、Windows10 で、WSL, Ubuntu16.04 から、grep してる
2019/05/20(月) 06:44:50.41ID:Wdi8QIqr
お、ツッコミ待ちか?
47デフォルトの名無しさん
垢版 |
2019/05/20(月) 07:53:09.19ID:oPixGX3C
お題
Excelのカラム名でHELLOからWORLDまで表示する
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)
次はこれを傾けていくんだな。これがムズイ。
2019/05/20(月) 13:11:43.52ID:YvmdLvGf
>>11 x,y座標は 0〜999までの整数 辺の長さは斜めになった時は整数とは限らない。
2019/05/20(月) 15:10:01.16ID:poyp5Kqc
プログラミングのお題スレ Part13
https://mevius.5ch.net/test/read.cgi/tech/1549160513/920-984

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

入力データ
-6 3 9 5 3 -7
出力・ランク
2 3 5 4 3 1
2019/05/20(月) 18:09:47.07ID:paVMwW+F
ハッシュを使ってんのがperlのじゃねえの
2019/05/20(月) 19:35:06.91ID:SPSZRaeY
ランク付けならmap使うと楽、O(NlogN)が想定解
53デフォルトの名無しさん
垢版 |
2019/05/20(月) 19:41:12.77ID:Nk0f6TzG
前スレの場合、みんなハッシュ(set)かソート使ってたじゃん
2019/05/20(月) 19:53:28.74ID:GKW/g8qb
>>53 コンパクトなコーディングはみんなほぼ同じだったね。

python smalltalk java

なんかプログラミング言語を見直しはじめたよ。
複雑にせずに根本を見つめるコーディングが出来る言語というのは素晴らしい。
2019/05/20(月) 19:56:03.94ID:jO4bupva
え、JAVA?
2019/05/20(月) 19:58:48.02ID:HD7QqTZv
>>前スレ988 Perl5
https://mevius.5ch.net/test/read.cgi/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
ゆっくり書いてたら間にたくさんの書き込みが入った。
俺のことは忘れてくれ。
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
2019/05/21(火) 22:06:24.96ID:vwCWORvF
test
2019/05/21(火) 22:14:40.60ID:vwCWORvF
>>56
https://mevius.5ch.net/test/read.cgi/tech/1434079972/58
2019/05/21(火) 22:17:32.24ID:vwCWORvF
お題と回答
>>5 : 6 10 32 36 44
>>9 : 15 34 35
>>11 : 48
>>19 :
>>50, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 :
https://mevius.5ch.net/test/read.cgi/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
有償で片付けるスレッドに貼り付けるのはよろしくないね
有償で片付けてほしくて出題してるわけじゃないでしょ
問題の窃盗だよ
2019/05/21(火) 23:21:22.29ID:GF2ZpO+x
>>59
Perlは配列に対するexistsやdefinedは呼び出せるが振る舞いは不明確で「強く」非推奨となっているので
この場合では問題なくとも@pはリストではなく代わりにハッシュ%pを使って実装するべきだった
2019/05/21(火) 23:33:57.22ID:GF2ZpO+x
>>65
ハッシュにしたほうが良いのは@pじゃなくて@sの方だったわ
2019/05/21(火) 23:56:06.27ID:Jac4P34c
>>64
バカチョンには何を言っても無駄だと思うよ
聞く耳持たない分からず屋の馬鹿だからバカチョンなんだから
2019/05/22(水) 00:03:24.91ID:qz4w5gXY
>>64
>>27に理由が書かれていたが、一ヶ所に纏めておくと便利だなんてのは個人の都合であって、他の人にはわざわざ間接参照を強いることになるのだから、ほんとに身勝手な奴だと思う。

>>27
纏めておくのは他所で勝手にやれ、このスレにはコードだけを貼れよ。お前の手間なぞ知ったことではない。
2019/05/22(水) 00:04:37.78ID:I/cGK6IK
ネトウヨもコテハンもうぜえわ
2019/05/22(水) 01:11:55.55ID:BQdyZ7fR
>>62 折角まとめるんなら、回答の方も >> でリンクを貼って欲しいな。
2019/05/22(水) 01:20:05.57ID:34FbFmyD
>>70
それは絶対にやらないんじゃね
奴は自分のことしか考えてないから
だから自己愛
永遠に人から煙たがられる存在
2019/05/22(水) 01:29:50.95ID:BQdyZ7fR
>>11 は、多角形の中のドットの内外判定問題と言うのが確立されてるみたいね。
色んな方法があるみたいだが、簡単なのは、
Crossing Number Algorithm
らしい、ググってみると結構コンパクトなコード。
他も見てみたが、問題は境界線上にある点は多角形外と判定する事。

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

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

この問題は結構勉強になる。 問題のイメージを掴むために、図形表示までやり始めたよ。 表示するとより楽しくなる。
2019/05/22(水) 01:32:14.02ID:BQdyZ7fR
>>71 そこまで悪い人間では無さそうだけどな、おだてれば猿も木に登るタイプだとみた。
高い木に登ってもらおう。
2019/05/22(水) 01:33:07.52ID:57KmKoFr
ググラないで考えようとしていたけど、
ヒントを目にしてしまった気分
いやべつにいいけどさ
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}
2019/05/22(水) 07:31:41.79ID:O8fu6CiE
>>62
前スレ920 >>4
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
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)とは,与えられた点をすべて包含する最小の凸多角形(凸多面体)のこと.

--------
凸包が求められても難しいね。 凸包内の点を削除して計算時間を削減できる効果はあるかもしれないけど。
2019/05/22(水) 12:11:47.61ID:/472uU17
凸包が求められれば、頂点の並びも整列するので
形状を分割して余弦定理とかから導けないかなって思ったんだよね
82デフォルトの名無しさん
垢版 |
2019/05/22(水) 12:13:57.61ID:pwChZnOT
>>47
画面の幅が足りなくて表示できません。
2019/05/22(水) 12:34:28.61ID:/472uU17
ちなみに、最小を求めるだけならある角度から見た凸包の一次元への投影と、直交する角度からの一次元への投影を180度回しながら調べれば出せると思うけど、分割の粒度の問題で、本当に最小が取れる保証はないね
84デフォルトの名無しさん
垢版 |
2019/05/22(水) 13:45:45.60ID:pwChZnOT
>>76
試しに Perl でも 文字列 .. 文字列 をやってみたらできたよ。
こんなことできたとは。知らないまま20年以上使ってたよ。w
8550
垢版 |
2019/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
2019/05/22(水) 19:16:47.93ID:Kujyr1dD
>>70-71
アンカーが多すぎると投稿できないのです、ただそれだけです
2019/05/22(水) 19:17:22.29ID:Kujyr1dD
>>73
>おだてれば猿も木に登るタイプだとみた。
痛いところを突きますね…
8850
垢版 |
2019/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の間違い
2019/05/23(木) 13:50:07.86ID:qjdiTxTD
苗字で漢字の「口」を「くち」ではなく「ぐち」と読むのは
井口、矢口、田口の3つだけ
これマメな
2019/05/23(木) 15:16:07.91ID:j56nuYko
>>92
川口
ハイ論破
2019/05/23(木) 16:02:19.12ID:4YO7mLFH
ただの荒らし 、蒸し蒸し by 山口
2019/05/23(木) 17:19:50.40ID:TKS1qOdO
>>90 OCaml
https://ideone.com/kvm79F
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
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
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を示せ
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
>>100
https://i.imgur.com/CRuu9do.jpg
https://i.imgur.com/DKfpAvB.jpg
2019/05/23(木) 21:38:26.52ID:iqEot/XY
sumnum、引数に10000とか与えたら答え返ってこなさそう
引数に1億とかは文字列長が千万とかになるから無理でも仕方ないけど、1万位は対応したいね
2019/05/23(木) 23:35:27.08ID:+TqLtPkO
>>102
下位桁に9が並ぶだけじゃね?
2019/05/23(木) 23:45:44.19ID:iqEot/XY
>>103 知らない言語ばかりでよく読めてないんだが、今までの提出って1から順に試してね?
それだと当然結果が返ってこないが
違ったらすまん
2019/05/24(金) 00:19:46.43ID:25j6Q5My
QZは相変わらず頭が悪い癖にプライドだけは高いな
2019/05/24(金) 00:38:02.83ID:3viueN7b
>>92は「必ずレスがもらえるレス」として有名な文らしいな
案の定わんさかレスの付いてること
2019/05/24(金) 01:07:12.76ID:/EuQv4hQ
>>99 何語?
2019/05/24(金) 01:41:24.00ID:/EuQv4hQ
>>11 閑話休題 凸包
https://i.imgur.com/rMEhakE.jpg
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度ずつ回転させるやり方を考えたらしいが、下の方で良い解法のコメントが付いてた。

https://i.stack.imgur.com/ExZl3.png

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

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

このアルゴリズムは、
The algorithm you are looking for is known in polygon generalisation as "smallest surrounding rectangle".
凸包最小長方形の解法とでも言えば良いのかな。
2019/05/24(金) 06:39:15.19ID:UW+Tk6Dp
>>109
正方形を求める場合で凸包がひし形の場合、その方法はうまくいかないきがす?
2019/05/24(金) 09:32:40.58ID:0g5oPW7D
今回のアルゴリズムは、最小の正方形を求める方法だけじゃなくて、グラフの境界との交差判定もあるから
最小の求め方だけではなく、2番め以降についても正しく判定できないといけない上に、回答が一つに定まらない可能性もあるんだよね
2019/05/24(金) 09:46:10.43ID:SalRbGaI
与えられた点を全て含む凸包全体からなる集合の濃度は明らかに連続体濃度なんだから2番目なんて存在しないぞ
2019/05/24(金) 10:02:31.57ID:SalRbGaI
あ、凸包じゃなくて凸多角形な
2019/05/24(金) 10:35:59.86ID:0g5oPW7D
>>112
書いててあれ?と思てったけど、たしかにそうだ。
俺では解けなさそうだ。
2019/05/24(金) 11:52:18.57ID:MR3FxfYE
>>111 1辺から正方形を作る場合は、その正方形が全ての凸包の頂点を全て含むような大きさでなければならない。
この場合6辺あるから、そのような6つの正方形を作ってその中の最小のものを求めることになる。

面倒なのはそれが座標系に入らないといけないから場合によっては辺に平行移動しないといけないかも知れない。
すると、>>112 の言うように正方形の位置は変わるかもしれないけど、辺の長さが合ってれば正解だろうね。
(この場合は座標系に入るだろうからとりあえずは平行移動は考えないでも良いかも)
2019/05/24(金) 12:12:24.29ID:MR3FxfYE
>>110 どんな凸包体でも求まるよ。 1辺の長さが凸包体の辺の長さと一致させるわけじゃないよ。

全ての頂点を含む直方体を作る。 この求め方も工夫が必要そう。
1辺を伸ばした直線上に全ての頂点から垂線を引いて、一番外の距離を直方体の1辺とするんだろうな。
同じように他辺も求める。
117デフォルトの名無しさん
垢版 |
2019/05/24(金) 12:51:12.25ID:Nda2hmui
>>116
雑な書き殴りですまん
https://i.imgur.com/v8rWTSf.png

さらにややこしいのは、凸包の頂点が正方形の辺上に位置して、
頂点に存在しないことのほうが多いのも難くする要因の一つ
2019/05/24(金) 13:09:58.32ID:MR3FxfYE
>>117 あ、そうか。
2019/05/24(金) 18:00:01.45ID:ZpEEE6+U
>>11 色々見たけど、画像認識の境界を探す為にある程度人気のある話題みたいだが、完全を求めるのではなく、だいたいで良いからスピードの速いのが良いとしてるみたいだね。 境界自体があやふやなものだし。

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

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

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


しかし、こんな例題はどこにでもありそうで殆どサンプルがないのは時間がかかりすぎて簡単に試せないのかな、今回はポイント数が少ないからそれほどではないとは思うけど。
2019/05/24(金) 18:05:08.54ID:ZpEEE6+U
>>119 文章が変な順になっててごめん。

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

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

直交正方形が最大だからそこまでを調べれば良いけど、それだけをしらみつぶしに調べてどれだけ時間がかかるかだな。
2019/05/24(金) 18:27:30.58ID:ukAKIdqH
計算両を優先するなら、座標軸を基準にとって大雑把に取るべきじゃないのかな
これなら、ゲームのコリジョン検出で使われる方法そのままだし
2019/05/24(金) 18:52:18.42ID:U6fsa1pB
点の数は関係なくね?
任意の3点を選んでその内部にある点は無いものとして考えても同じなんだから
2019/05/24(金) 19:02:15.89ID:U6fsa1pB
いや、関係あるか
頂点のめちゃくちゃ多い凸多角形になったら計算量明らかに増えるもんな
2019/05/25(土) 18:51:08.08ID:CqCnLPQm
>>11 なんかかなりの難問に思えてきたな。 解法への足がかりが見えない。 凸包までは比較的簡単にたどり着いたけどそれからが闇の中。
凸包の重心が何か使えるだろうか?

最小包含円 という言葉もあるようだが、少なくとも 正方形の辺はこの円の直径以下。
2019/05/25(土) 19:01:54.73ID:CqCnLPQm
>>124 取り敢えずこの問題を 『凸包正方形 』
とでも呼びますか。
2019/05/25(土) 20:41:54.94ID:jq9htnT/
三角形に分解してみる?
2019/05/25(土) 21:12:11.52ID:9LrJCzXS
>>112
連続体濃度でかつ二番目に小さな値のある集合
{0, 1} ∪ (2, ∞)
2019/05/25(土) 22:13:07.00ID:u9k+LAdR
>>11
ポイントが(136,577), (110,927)の2つだけならどうなる?
2019/05/25(土) 22:15:27.93ID:9LrJCzXS
>>128
それ対角線の正方形しかないやろ
2019/05/26(日) 01:40:13.82ID:y3Cc4Dz0
以下はオレなりに考えた仮説
1)2点で正方形の内側に接するのは何らかの平べったい形、対角にて頂点が接するので45°
2)3点で接するのは、細長い三角形あるいはそれに準じた形、角度の計算は…?不明
 または凸包の一辺が正方形の辺に接する形
3)4点で接するのは、細長い三角形あるいはそれに準じた形、角度の計算は…?不明
 または凸包の一辺が正方形の辺に接する形
4)5点以上で接する場合は、凸包の一辺が正方形の辺に接する

「対角にて頂点が接する形の角度は45°」
「凸包の一辺が正方形の辺に接する形は凸包の辺の角度」
これらは角度が分かるので回転変化・逆変換を使って
外側の最小の斜め正方形の候補を探索することは可能だが、
角度が良く分からない形の解法が、まだ見出せていない
2019/05/26(日) 01:44:08.13ID:y3Cc4Dz0
凸包の一辺が正方形の辺に接するおよび二点が対角に接する場合に限った解法
なら難しくないんだがな…
2019/05/26(日) 01:59:58.39ID:tjjSxTb8
>>129
それは正方形が(0,0)-(999,999)からはみでてまうな
133130
垢版 |
2019/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;
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


検算してないので、もしバグっていたらゴメンチャイ、(ゝω・) テヘペロ
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;
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

検算してないので、もしバグっていたらゴメンチャイ、(ゝω・) テヘペロ
2019/05/26(日) 17:44:33.42ID:XOxN6P/y
>>136
なんか変、バグってるスマソ、直すことが出来たら書き込みます
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;
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 の内側の正方形についてはまだ考えていない。
2019/05/26(日) 20:05:21.06ID:MaF2nVvH
>>11 おもろいな、初級問題だと文法の練習としてそれなりに勉強になる。
こう言うのはそれを超えていろんなパッケージ/ライブラリを駆使することになるから一皮剥けて勉強になる。

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

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

図形は直感的に推論が正しいかどうか判るから面白い。
https://i.imgur.com/cCazfFe.jpg
凸包の重心は使えなさそうだな。

>>139 なんとなく変に感じるんだが。
https://i.imgur.com/3ioZWjZ.jpg

この場合の正方形の一辺は、左側の凸包の線そのものになると思うんだけど。
つまり、左下端が、( 94,31 )、上端が(110,927) にならないかな?
2019/05/26(日) 20:06:23.89ID:MaF2nVvH
>>140 ごめん、同じ画像を二つ上げてしまった。
2019/05/26(日) 20:24:38.79ID:CpBTYp0n
>>11
まずは「斜めは考えない」 https://ideone.com/0ho1Fr
>>48
解が一致しました
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, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/tech/1549160513/988 : 59 61
>>90 : 95 96
>>99 :
144138
垢版 |
2019/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°
になりました。
2019/05/27(月) 00:47:32.69ID:WucVzOyp
>>144 それはおかしい。 直行正方形の辺の長さが896だから、896以下にならなければならない。
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]
2019/05/27(月) 12:03:51.40ID:g1o9JmK9
>>146 多分正解だね。 おめでとう。
2019/05/27(月) 12:17:08.10ID:g1o9JmK9
>>146 あ、でも 右上の頂点は y = 998.9995044215 となってるけど、
正確には y=999 とぶつからなければいけないよね。 少し誤差が大きすぎるような気がするけどこんなもの?
2019/05/27(月) 23:46:29.70ID:FhcziIHI
>>140
この図の(388,157)は(388,598)の誤記?
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]]

https://i.imgur.com/9emHzzD.jpg
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の範囲をこえてしまうものがあるらしく、不均等に伸ばすようにすれば
より小さい正方形を見出せるかもしれない。
2019/05/28(火) 00:08:24.04ID:A9u6a3RO
>>150
そうだね、ゴメン
2019/05/28(火) 00:16:35.63ID:eILR4MCH
>>150 外接円を描いてみたけど、利用方法を見つけられなかった。
むしろ [ 94 31] [787 897] の対角を直径とする最小包含円 からかな?
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°
真の極小解は中途半端な角度にあるのか…
155146
垢版 |
2019/05/28(火) 00:38:23.09ID:dFqOFikP
>>148

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

少しずるして、この問題に過剰最適化させて、
890.7003209442369にした。
https://codepen.io/dokokade/full/WBzgrZ
2019/05/28(火) 00:44:50.83ID:A9u6a3RO
>>154
これ、凸包の辺の角度にのみ傾けてない、凸包の全頂点の組み合わせエッジの角度に傾けている。
まいいや、大差ない
2019/05/28(火) 01:02:45.97ID:eILR4MCH
>>125 >>11 の問題1 に名前を与えるならさしずめ、最小包含正方形 かな。
2019/05/28(火) 01:18:31.05ID:eILR4MCH
>>155 無理を言ってごめん、答えの誤差をなくすために、最終座標は整数の xy 座標に出来るかな。 中心からの距離を切り上げて整数にする感じになると思うけど。
2019/05/28(火) 01:33:00.26ID:A9u6a3RO
こういう問題って、極小・最小解にいたる連続的な解空間形成してなけりゃ収束計算もできないし
かといって解析的あるいはロジカルな求解法が見出せなけりゃ、最後はヒューリスティックあるいはランダムwalk
あるいはRISMみたいな外挿的に探索するしかないのだろうか…
ないんだろうなたぶん。そんなきがす
2019/05/28(火) 01:41:09.17ID:eILR4MCH
>>159 現実の世界でも、求める解は整数にすることが多いと思う。
画面のドット精度、工作機械の精度など整数と考えた方が良い。
現実的には整数解が求められないと、角を切り落としたりしかねない。
(許容誤差を加えた範囲を求めるのでも良いけど)

整数解にした方が、試行錯誤の時間も少なくなると思うからより現実的だと思う。 答えが一律に決まるし。
16150
垢版 |
2019/05/28(火) 13:42:19.32ID:tpS8MDSU
https://mevius.5ch.net/test/read.cgi/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しないだけ
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]
2019/05/29(水) 16:00:45.49ID:bq8lopql
はい、次のお題どうぞ
2019/05/29(水) 18:28:49.13ID:8RGCI467
>>164
== https://mevius.5ch.net/test/read.cgi/tech/1549160513/988 == >>56 >>59 >>61
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]
2019/05/30(木) 18:49:02.33ID:WCG+7mjF
既に既出
馬から落馬
歌を歌う
舞を舞う
ダンスをダンスる
2019/05/30(木) 18:50:08.40ID:WCG+7mjF
ヤフーでググる
2019/05/30(木) 20:22:38.83ID:JBeAmq0Y
お題: sin, cos を用いてお題を作成せよ
2019/05/30(木) 20:26:45.68ID:zjW7i8/A
eをネイピア数とした時
e^(iθ) ≠ cosθ + i sinθ
となる事を証明せよ
2019/05/30(木) 20:35:25.37ID:7cnHmzOq
ん~、じゃあ
sin, cos を実装せよ
2019/05/30(木) 22:02:46.02ID:8+NCnZcE
>>173
オイラーの公式なめてんの?
2019/05/30(木) 22:10:08.81ID:mWdPfVjS
>>175
exp(iθ)=cosθ+isinθだけど(2.71828...)^(iθ)は多値関数だよ
2019/05/30(木) 22:23:36.25ID:mWdPfVjS
>>176
多値じゃなくて多価
2019/05/30(木) 23:36:43.35ID:0JxSfYBl
^はxorだからな。そりゃ違うさ。
2019/05/30(木) 23:40:43.53ID:rhzd9E8p
お題:テーブル方式でcos/sin関数をテキトーに自作セヨ。
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);
2019/05/31(金) 00:55:18.43ID:t9s7pmzY
ああこりゃ多価関数の意味を知らないバカだな
2019/05/31(金) 01:02:49.06ID:6bzo9swJ
複素数の指数関数や対数関数は多価関数だろ
馬鹿はお前だ
2019/05/31(金) 01:38:23.70ID:4Atryqh8
指数関数は多価じゃないよ、何言ってんの
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.
2019/05/31(金) 05:49:38.41ID:C3HpXD20
>>184
出典がwikiとかありえねーよwww
wikiにそう書いてあるからってそれが正しいとは限んねえだろバーカ
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 なんて使わないでしょ?
2019/05/31(金) 06:53:54.48ID:BfGYI+kd
>>186
主値を取る場合はLogなりp.v. fなりきちんと明示するのが少なくとも解析屋の間ではルールだよ
他の分野の人は知らないけど
2019/05/31(金) 07:16:05.79ID:LXc8d8Er
>>170
> 歌を歌う
歌うには「歌を」と言う意味は含まれてないから歌を歌うと言うのは別におかしくないよ
> 舞を舞う
も同様
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 を示す
2019/05/31(金) 12:16:09.80ID:ihIFj/V/
>>188
和語として語源同一なんだけど。
意外なものでは「くさい」と「くそ」「明かり」と「開ける」も同一語源。
2019/05/31(金) 14:15:19.33ID:rnSTXr8b
数学の問題なんて、センター入試問題でも解いてこいよ。 手を抜きすぎだぞ。 もっと面白くひねれよ。
192デフォルトの名無しさん
垢版 |
2019/05/31(金) 20:50:13.55ID:/Dlwa3kC
>>164
Haskellを元にPython。
素数じゃ無いと判定した時点でループ抜けるとかしたら、そこそこ速くなった。
https://ideone.com/3L1N23
2019/05/31(金) 23:54:43.29ID:fDsN7sSa
センターなんて数学じゃなくて算数でしょ
194デフォルトの名無しさん
垢版 |
2019/06/01(土) 05:45:08.23ID:uuPo6pHP
面白いお題がないかと文句を言う前に
進んで面白いお題を書きましょう
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
2019/06/02(日) 15:03:12.02ID:c9LZ9fJN
>>192>>164向けの回答としては問題ない。

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

pythonで手を抜いた一般的な素因数分解でも
10^12くらいは1秒以内に出る。(10^12+39が近場の素数)
197195
垢版 |
2019/06/02(日) 18:27:22.13ID:Hxta4mKu
>>196 python sympy
{1000000007: 1} 0.2255000ms
198195
垢版 |
2019/06/02(日) 18:41:56.81ID:Hxta4mKu
>>196 同一環境での比較。

n= 13999 ans= {13999: 1} time=0.0135830ms
>>192 を実行
n= 13999 ans= [13999] time=152.4304170ms
2019/06/03(月) 00:41:43.81ID:u5qwV1AY
>>198
192の解が一般解としてはひどいすぎるってことでしょ。
10億7どころか、百万台の素数もキツイ。
2019/06/03(月) 03:39:17.26ID:4uiCu3lL
お題:↓の画像のようにコンソール画面に雨を降らせなさい
https://i.imgur.com/wR1mNu5.gif
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

ただループ回すだけじゃ芸がないと思って素数を返すイテレータのクラス作ってやってみた。
(素数をバッファリングもすればもっと無駄がなかったなとは思ったがそれはやってない)。
2019/06/04(火) 06:42:47.26ID:7qxdZD6A
>>185
Wikiが正しいとは限らないからと言って、wikiが間違っている前提で反論するバカの見本
204195
垢版 |
2019/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
2019/06/04(火) 07:56:52.47ID://1XsOfQ
素数は、平方根までの素数で割って、割り切れなければ素数だろ

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

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

もし13で割り切れるなら、13 * n = 103
となり、n は、√103 よりも、小さくなるから、既に割り切れているはず!
2019/06/04(火) 08:11:49.19ID:e9k+jtYr
>>205
例のRubyバカはこのスレにも出没するのか
2019/06/04(火) 09:07:39.39ID:QWQyVZWL
誰もRubyの話なんてしてないやろ
2019/06/04(火) 09:27:19.41ID:u+S7EiZ9
日頃の行いがなぁ…
209デフォルトの名無しさん
垢版 |
2019/06/04(火) 10:23:22.04ID:prB+PlYz
>>185
間違いとも限らない。

書かれていることを鵜呑みにするのは間違いだが見もしないで頭ごなしに間違いと決めつけるのも間違い。
210202
垢版 |
2019/06/04(火) 10:27:05.50ID:prB+PlYz
>>205
なるほど。暇があったらそれも考慮しよう。
2019/06/04(火) 11:04:03.94ID:Hzpqs43L
【速報】金券五百円分とすかいらーく優侍券をすぐもらえる    
https://pbs.twimg.com/media/D8I_lOtVUAE8t0O.jpg  
  
@ スマホでたいむばんくを入手   
A 会員登録を済ませる   
B マイページへ移動する     
C 招待コード→招待コードを入力する [Rirz Tu](スペース抜き)    
     
今なら更に4日18時までの登録で2倍の600円の紹介金を入手 
クオカードとすかいらーく優待券を両方ゲットできます。  
    
かんたんに入手できますのでご利用下さい    
2019/06/04(火) 13:01:01.36ID:XXr8i2SB
>>211
あとで一万円の請求が来るらしい
2019/06/04(火) 13:24:26.77ID:RxG/e7Cf
>>211
バラまきキャンペーン乙。
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次元関数を図示したとき網目状になる関数を示せ。
2019/06/05(水) 19:05:56.09ID:JxAz00LY
網目状になったら普通それは関数とは言わないんですが
2019/06/05(水) 20:21:05.87ID:4AufAgsU
>>200
https://light.dotup.org/uploda/light.dotup.org593450.gif

エスケープシーケンスのコードが行方不明だったので書き直した。
C++で書いたけど、ベターCですなぁ。
218デフォルトの名無しさん
垢版 |
2019/06/05(水) 20:26:27.13ID:Fd++qFdy
>>215
それは数学のお題では?関数の方を求めるんでしょ?図を画面に出すとかではなく。
219214
垢版 |
2019/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
また数学か
2019/06/06(木) 20:50:52.65ID:ZTQEoQsZ
これは数学と言うより、コンピュータの問題じゃないかな。
IEEE754の理解が必要になると思う。
223220
垢版 |
2019/06/06(木) 22:57:28.49ID:Qxsak61t
有理数・Rational クラスを使えば?

式を6倍しても良いけど
2019/06/06(木) 23:11:58.29ID:Zwi2yFYb
というか知的障害者でも64回回せば終わる問題だよな
2019/06/06(木) 23:16:57.91ID:P4iafl1G
上位大学の入試見てると問題作りってセンス出るよな
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
2019/06/07(金) 16:27:31.91ID:RHh4qcVs
>>226
誤差収束しないといけないからだと思う。
コンピュータは1/3を計算するとき工夫がいる。
229195
垢版 |
2019/06/07(金) 16:32:04.76ID:QdXw6XxC
>>228 馬鹿だろ。 6倍してみろ
2019/06/07(金) 16:36:23.22ID:CBwJTjr/
>>228
> コンピュータは1/3を計算するとき工夫がいる。
だからその工夫が>>223の言う
> 有理数・Rational クラスを使えば?
とか
> 式を6倍しても良いけど
だろ
数学的な問題は実数使っても解けないことが多いぞ
2019/06/07(金) 16:44:59.95ID:RHh4qcVs
あぁ、すまん。
暇なので愚直に解いてくるわ。
2019/06/07(金) 17:00:40.10ID:RHh4qcVs
https://ideone.com/0kIloe
愚直に解いたのでは出ないので、有理数クラスが必要だ。という話になりました。(愚鈍)
2019/06/07(金) 17:32:22.41ID:IXZHPSuO
等式を6xyz倍して、4の3乗通りの整数の組み合わせを代入して単純に比較するだけの話だよね
2019/06/07(金) 18:22:52.80ID:CBwJTjr/
>>233
まあそう言うことだわな
> 1/x + 1/2y + 1/3z = 4/3
6yz + 3xz + 2xy = 8xyz
整数演算だけでいい
2019/06/07(金) 20:25:03.39ID:itc0IrgZ
お題:相異なる25個の英大文字が与えられるので、足りない1個を出力せよ

BCDEFGHIJKLMNOPQRSTUVWXYZ -> A
YIZFOADLMWCRUTGSVQKJEHNBP -> X
2019/06/07(金) 20:27:51.01ID:LHJ6D3bl
>>235 ruby
$><<([?A..?Z]-gets.split(''))
2019/06/07(金) 20:28:29.84ID:LHJ6D3bl
typo
>>235 ruby
$><<([*?A..?Z]-gets.split(''))
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
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の下に書いてある答えはなんだ?
2019/06/08(土) 05:36:07.66ID:BULhVnPP
>>240
スペース無しの1/2yを1/2*yって解釈する人間を初めて見たわ
悪意か?
242220
垢版 |
2019/06/08(土) 05:51:26.61ID:0P3wY/7I
>>223
>式を6倍しても良いけど

間違い!
6xyz 倍する

x, 2y, 3z が、分母です!
2019/06/08(土) 06:35:13.06ID:nbnKD3nO
最初から曖昧な式を書いてる出題者が最大の悪意だろ
もう無視しろよこんなサイコパス
2019/06/08(土) 06:40:21.36ID:c2kswOOS
えぇ……どこが曖昧なんだよ
無知だからって開き直るのは格好悪いわ
2019/06/08(土) 06:50:01.64ID:7Ke9leiS
>>241
悪意と言うより6.0/xとか見る限りちょっと抜けてるんだと思う
246デフォルトの名無しさん
垢版 |
2019/06/08(土) 07:48:52.33ID:jHJxbMi0
お前らでも他人の悪口言うもんなんだな
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' "
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)) "
249195
垢版 |
2019/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
それが分母ならちゃんと括弧書けよ。
2019/06/08(土) 21:10:55.53ID:7Ke9leiS
周りの人に同情するわ…w
2019/06/08(土) 21:53:10.61ID:bSq0it8T
ID:gCLo3iII ガチのガイジやんけ
2019/06/08(土) 22:03:07.94ID:CpkbOmpy
ワラタwww
2019/06/08(土) 23:58:19.51ID:nh3nMmSu
https://ideone.com/IFCJVe
3個でないよ?(愚鈍)
257デフォルトの名無しさん
垢版 |
2019/06/08(土) 23:59:56.19ID:t4bm4zRu
>>241
>>232のリンク先もそのようになっているようだが、見ていなかったか。
2019/06/09(日) 00:14:56.14ID:W8wtcQAp
>>235
AからZの文字コードの数値の総和から入力文字列の各文字の文字コードの総和を引けばいいね
2019/06/09(日) 00:16:02.81ID:SSgQq8CW
>>238
https://ideone.com/ztrBf9
わかってやってみた。ソートすんなとは書いてなかった。今は反省している。
2019/06/09(日) 00:17:23.59ID:SSgQq8CW
あ、間違えた。>>259 => >>235
ネタ振ったときにこれだよ。。。
2019/06/09(日) 00:19:22.44ID:OSjRKT39
むしろプログラマの世界で数式を書くなら、
1/(2*y) だろうな。
1/2y と書けば、普通は、(1/2) * y だろ。
2019/06/09(日) 00:24:01.37ID:SSgQq8CW
数学習った時も掛け算記号は省略できるとか習った覚えが。
あと、割り算と掛け算混ぜたときの結果は項の順番によらないかった覚えが。

寝る。
2019/06/09(日) 00:45:59.55ID:T9jyzIYI
>>261
コード書いたわけじゃなくて普通の数式やがな
それをコードに直すのがプログラマ
2019/06/09(日) 01:16:32.66ID:zgQq0a06
>>263
数式でも人が紙に書いたかのような表現が使えず1行に無理に押し込める形式にするのならそれなりの工夫が必要だ
2019/06/09(日) 01:59:59.85ID:RDMRCxQC
まず普通の人はあの表記を見ても迷わない
一京歩譲ったとして仮に迷ったとしても与えられた答えを代入すれば猿でも分かる
つまりいちゃもんつけてるのは猿未満
266デフォルトの名無しさん
垢版 |
2019/06/09(日) 02:03:55.91ID:vJOouxE6
自演乙
2019/06/09(日) 02:08:15.94ID:1JZdgA2h
人じゃないけど、参考に

wolframalpha、
https://www.wolframalpha.com/input/?i=1%2Fx%2B1%2F2y%2B1%2F3z%3D4%2F3

https://www.wolframalpha.com/input/?i=1%2Fx%2B1%2F%282y%29%2B1%2F%283z%29%3D4%2F3

google
https://www.google.com/search?q=y%3D1%2F3x

https://www.google.com/search?q=y%3D1%2F%283x%29
268220
垢版 |
2019/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]]
2019/06/09(日) 08:43:57.74ID:OSjRKT39
>>263 >コード書いたわけじゃなくて普通の数式やがな

普通の数式ってどこの世界での普通なんだ? 普通の数式ならそんな書き方はしないからな。
1/2y を普通の数式として解釈すれば、(1/2) * y が普通の解釈だろ。 左から順に演算されるのが普通(と言うかルール)だからな。
2019/06/09(日) 09:08:49.29ID:T9jyzIYI
左からやって普通は1割る2yだろ
普通の数式で1÷2yってあってそう解釈するか?
割る記号の変わりだろ/は
プログラムのコードじゃないぞ

一個目の1/xがないならまだわからんでもないけど
2019/06/09(日) 09:18:11.20ID:OSjRKT39
>>270 お前の普通の根拠を示してみろや。
記号が書かれてれば掛ける記号が略されてるとみなすのが普通

1/2y は1/2*y と等価 1割る2は、0.5 これが普通。
2019/06/09(日) 09:20:36.13ID:OSjRKT39
>>270 お前の異常なところは、2y が優先演算されると思い込んでいるところ。
そこが大きな間違い。
2019/06/09(日) 09:32:55.64ID:T9jyzIYI
中学の文字式の問題といてみたらいいんじゃないかな
2019/06/09(日) 09:42:13.99ID:1+U3aTMC
教養のない(1/2)派が暴れてて最高に笑えるわ
馬鹿は馬鹿らしく謙虚でいろよ
2019/06/09(日) 10:16:16.60ID:Gi1Jt9cY
普通とかほざくゴミまで出てきたってことは一番最初の出題者はやっぱりサイコパスだろ
解釈の分れる書き方をワザとしてんだよ
2019/06/09(日) 10:16:55.57ID:1+U3aTMC
いや馬鹿以外は一通りにしか解釈してねえだろ
2019/06/09(日) 10:28:52.42ID:OSjRKT39
>>273 だからお前の言う普通の文字式が書かれてるところを示してみろよ。
最も中学では、1/2のような書き方はしないから、そんな問題はないと思うが。

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

もう一度 >>267 を見てこい。
2019/06/09(日) 10:33:43.64ID:dGGyKbbw
ID:OSjRKT39 こいつ、仕事もできねえんだろうな
同情するわ……こいつの同僚にw
279デフォルトの名無しさん
垢版 |
2019/06/09(日) 10:54:03.46ID:8GuoKRFn
>>278
具体例も挙げてきちんと論証してるじゃん
2019/06/09(日) 10:54:55.69ID:wmlwj4f3
まあ理系なら数式見慣れてるし、数式だと 2x でセットと見るから
2x/3y を (2*x*y)/3 と解釈するアホはいないと思う
281デフォルトの名無しさん
垢版 |
2019/06/09(日) 10:57:55.90ID:8GuoKRFn
>>280
https://www.wolframalpha.com/input/?i=2x%2F3y
うーん?
2019/06/09(日) 10:58:26.13ID:dGGyKbbw
>>279
お前は論証という言葉をまず辞書で引け
283デフォルトの名無しさん
垢版 |
2019/06/09(日) 10:59:01.91ID:8GuoKRFn
理系じゃない人にもやさしい世界の方がよくない?
2019/06/09(日) 11:00:19.84ID:dGGyKbbw
理系以外にも優しくするのはいいとして馬鹿に優しくする必要は無いだろ
無能な猿が思い上がるだけ
2019/06/09(日) 11:00:55.16ID:tpC+iRBo
キチガイを一人召喚してるな
286デフォルトの名無しさん
垢版 |
2019/06/09(日) 11:00:55.34ID:8GuoKRFn
>>282
仕事もできねえ、馬鹿、アホという人格否定で自分を正しく見せようという
幼稚な人より100倍マシだと思いましたよ
2019/06/09(日) 11:02:06.44ID:dGGyKbbw
>>286
たとい俺より百万倍マシだったとしてもお前がクズな現実は変わらない
288デフォルトの名無しさん
垢版 |
2019/06/09(日) 11:02:42.49ID:8GuoKRFn
>>284
一般的な例を挙げて論証する人を馬鹿だとは思わないなあ
むしろ相手の人格を貶めることばかりに終始してる君のほうが・・・
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
自分が賢くなるとでも?
2019/06/09(日) 11:07:45.90ID:OSjRKT39
>>280 理系ならwolfram ( mathematica ) を知らないわけないだろ。

>>281 をよく見ろ。 世界中の数学者はこう計算するというのが数学の世界なんだぞ。
お前は世界中の数学者をアホ呼ばわりするのか?
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
君たちは理系なの?
2019/06/09(日) 11:13:37.36ID:ycrydNOH
>>294
一般的で具体的な例を上げて説明することは「論証」とは言いません
そんな的はずれな事言ってたらヴィトゲンシュタインが泣きますよ
298デフォルトの名無しさん
垢版 |
2019/06/09(日) 11:15:19.30ID:8GuoKRFn
>>297
立派な論証だよ
ウィトゲンシュタインもうなずいてるよ
2019/06/09(日) 11:15:45.10ID:OSjRKT39
>>293 論証じゃなくて、wolfram やgoogle の計算の実証を挙げてるのに全くそんなのを無視しておいて何を今更。

なんにせよ、プログラマスレではプログラマとして動け。 問題としては落第。
2019/06/09(日) 11:19:54.29ID:ycrydNOH
wolframやgoogleでのレクシコンが今の議論に一体何の関係があるのだらうか!?
全くの荒唐無稽だと言っておきませうせうせう
301デフォルトの名無しさん
垢版 |
2019/06/09(日) 11:24:46.91ID:8GuoKRFn
>>300
一般的にどう解釈されるかを示す具体例として挙げられてるよ
どうして歴史的仮名遣いなのさ!?
2019/06/09(日) 11:37:39.19ID:ycrydNOH
>>301
君はいい人そうだから強く生きていきませう
303デフォルトの名無しさん
垢版 |
2019/06/09(日) 11:41:33.13ID:8GuoKRFn
>>302
どうして歴史的仮名遣いなの?
君の思う論証ってどういうもの?
他人の発言を的外れとまで言ったんだからきちんと説明していただきたい
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
おいお前ら、俺たちのバックにはグーグルがいるんだぞ
2019/06/09(日) 12:10:10.83ID:SqGEiAZe
物理などの世界では並置優先ルールが有る。
1/ab は、1(a*b) 1/2yは1/(2y)

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

プログラミングのお題としては、プログラミングルールに従った出し方にすべき。
2019/06/09(日) 12:49:50.56ID:W8wtcQAp
1.出題者が複数の解釈のできる曖昧な書き方(1/2y)をした。
2.多くの回答者は曖昧さを理解した上で自然に取れる解釈(1/(2y))をした。
3.一部の回答者はプログラミングや数学的な記法の厳密な解釈として((1/2)y)であるべきとした。
4.3と3を煽る奴らのどうでもいい喧嘩←今ここ
2019/06/09(日) 12:50:30.57ID:fheL3UO0
お題をみてそれにあわせたコードをかくのがプログラミングだろ
お題は文章なり数式でプログラミングのルールにのっとる必要はないじゃん
表現が曖昧で複数にとれるようなものは出題者に確認するだけの話だと思うけど
2019/06/09(日) 13:03:13.41ID:Gi1Jt9cY
ゴミみたいな書き方する出題者がそもそも悪いでしょ
そういうヤツは除外しなきゃ
叩いて叩いて叩きまくればいいんだよ
2019/06/09(日) 13:08:30.37ID:SqGEiAZe
誤解を生まないように書けば良いのにな。
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, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/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
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
それならばそのようなルールで書くと断りを入れてから書くべきだな。
2019/06/09(日) 15:51:50.05ID:30kMM31D
>>313 並置優先ルールがない世界に、並置優先ルールが有るものだと言う前提で問題を出せば混乱するに決まってる。

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

(唯一の救いはこの場合答えがあるから、確認することはできたが、確認せずに回答した人がいることも忘れてはならない)
プログラムの世界は、1点の曇りもあってはならない。
2019/06/09(日) 16:06:31.19ID:BPlIESHh
曖昧さも糞も無いだろ
答えまで書かれてたんだからそれで確認するのが正常な頭脳の持ち主
数学できない阿呆が噛み付いてるだけ
惨めだからもうやめときな
2019/06/09(日) 17:01:23.49ID:wmlwj4f3
単なる匿名掲示板で仕様書ガーとかw
バカにされて悔しいのはわかるけど流石にそろそろアキラメロン
319デフォルトの名無しさん
垢版 |
2019/06/09(日) 17:31:39.31ID:4d8N5HDz
激しい自演と正当化
2019/06/09(日) 17:55:17.43ID:KzhGDYKc
お題:Hello, World!を二進数で出力せよ
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
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
2019/06/09(日) 20:18:23.01ID:SSgQq8CW
>>320
https://ideone.com/WlBY5N
括弧強い!
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
>>324
なるほどね!

VB
https://paiza.io/projects/RU2L7bgni8qwq8dSAWGlKA
2019/06/09(日) 21:12:31.05ID:jNBSWirB
>>325
桃白白改めミスターポポ改めピラフ改めピッコロさんには少し難しかったかな
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']
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
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
>>320
Java
https://paiza.io/projects/zA8YxDpbM7SdnR-ghzkqrA?language=java
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
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
334333
垢版 |
2019/06/11(火) 02:58:39.60ID:aZcuYhl5
表を作らなくても、これで良いのか

1. 偶数なら、2で割る
2. 奇数なら、1を引いてから、1へ行く
2019/06/11(火) 09:40:44.16ID:9nwOHJjF
>>334 少し前すら読んでいないんだな。
その考え方で解いたのが。>>329

さらなるアイデアが、>>328 >>331 >>332
2019/06/11(火) 09:58:48.09ID:p0Xp2yNy
>>335
そいついつも人の話を聞かない奴だからスルーしとけばいいよ
337デフォルトの名無しさん
垢版 |
2019/06/11(火) 10:35:23.49ID:fys+McUU
最小ステップの証明は?
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進数で出すのでは簡単過ぎるので・・・
341333
垢版 |
2019/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"
2019/06/12(水) 09:55:38.00ID:6rY4ofim
何かと思ったら'A'から'Z'の総和か、その求め方は草
2019/06/12(水) 12:18:37.17ID:5tKK6KtT
お題:特定ドライブ配下の*.jpgファイルを削除し、そのjpgファイルが格納されていたフォルダも削除する
2019/06/12(水) 12:31:12.34ID:x67noP4p
質問スレへどうぞ。
346デフォルトの名無しさん
垢版 |
2019/06/12(水) 13:19:30.21ID:apqCeTcN
>>344
rm -rf /
2019/06/12(水) 15:25:36.12ID:5tKK6KtT
>>346
ありがとうございます。試してみます。
2019/06/12(水) 16:38:42.58ID:cGak2oax
面白いことになりそうだな、ワクワク
2019/06/12(水) 17:30:57.74ID:8XpDs8H3
最近のrmはそれじゃ実行できないとマジレス
2019/06/12(水) 17:36:01.92ID:cGak2oax
何にせよ良い子は、>>344 なんてお題は無視するように。
いろんな人間がいるのに、ファイルを削除とかディレクトリを削除とか言う問題は危険すぎる。
せめてrename で済ませるべき。

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

>>344 の問題は却下。
2019/06/12(水) 23:51:44.14ID:1cw0Fvdf
>>350
回答という形での投票行動がもっとも自然な見解なのでは?
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から引くやり方で足りない文字は全て出すようにした。
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 という同名の全く違う動きをするコマンドがあるので同じやり方はできない。
2019/06/13(木) 02:18:28.38ID:N68D4F9N
>>352
あれだけ周りから荒らし認定されても全く態度を改めないお前が、他人を荒らしだなどとよく言えるな。
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
ああ。入ってなくても空だと消されるか。
じゃあもう一捻り必要だな。
2019/06/13(木) 10:41:34.39ID:n1M8G6tH
良問ですな
362デフォルトの名無しさん
垢版 |
2019/06/13(木) 20:07:47.87ID:CBVgpEUY
お題
実行すると1から6までの数字のどれか1つを返すサイコロのプログラム
表示可能なら以下の文字列を使っても良い
⚀⚁⚂⚃⚄⚅
2019/06/13(木) 20:39:06.34ID:Kt3d2lSx
⚀ しか出さないものでもいいのけ?w
2019/06/13(木) 20:40:29.16ID:l9amdy+N
>>362 PHP
1
2019/06/13(木) 21:09:03.26ID:UDXJ1rkZ
>>362 javascript
'⚀'
2019/06/13(木) 21:18:28.25ID:Oox4dDUw
>>362 Ruby
p$.
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
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
>>362
Bash
https://paiza.io/projects/1Rp_TQc1ZZJTYLnPpC-kLg?language=bash
2019/06/13(木) 21:45:57.30ID:V6nODsfN
>>362 Pharo/Squeak Smalltalk

#('⚀' '⚁' '⚂' '⚃' '⚄' '⚅') atRandom. "=> '⚁' "
2019/06/13(木) 21:47:11.24ID:yBwKh2Mt
>>362
puts Time.now.sec % 6 + 1
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の勝ち。
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)])
2019/06/15(土) 12:27:27.56ID:n7CfuAo6
あ、ASCII の場合は何も考えずに1足してただ出力すれば良いだけだった。
まあいか。
2019/06/15(土) 14:29:00.37ID:54Zm/EIO
>>362 なんでそんなの出すんだよ。、問題になってないじゃないか。
解答 ⚄
2019/06/15(土) 16:05:02.20ID:BY4KYcRQ
ダイスってトライグラフじゃねーか!!
色々変換かけないと出せなくて苦しい。@C++。

ちなみにトライグラフの仕様は削除されました。
2019/06/15(土) 16:38:27.08ID:0Ytlw1xG
>>371
イカサマ賽じゃねーか
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))
2019/06/16(日) 14:16:01.82ID:e+LWqLgl
>>362 Python

import random

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

# ⚅ ⚅ ⚁ ⚃ ⚀ ⚃ ⚁ ⚄ ⚂ ⚀
2019/06/16(日) 14:54:11.08ID:NJ2skO19
もふもふ
2019/06/16(日) 16:47:25.75ID:NJ2skO19
神経衰弱を作っていたが、VC2019が仮想関数をうまく扱ってくれない感じで大爆死。
2019/06/16(日) 16:54:34.40ID:NJ2skO19
https://dotup.org/uploda/dotup.org1873815.zip
ここまで作ってデバッグしようとしたらシェアードポインタが継承扱ってくれない感じになった。
2019/06/16(日) 17:02:05.88ID:e+LWqLgl
>>384 前の方からの VC++ の人かな?
なんでそんなに苦労してるのかが理解できない。
使った事ないから知らないけど。

でも、貼るんだったらzip は辞めようよ。 怖くて開けない。 ソースだけなら動かなくてもideon に張り付ければ良いじゃん。
2019/06/16(日) 17:12:16.15ID:NJ2skO19
>>385
ソースが2分割されててまとめたほうがいいかと思ったけど。
ZIPって脆弱性あるの?

張りなおすわ。
2019/06/16(日) 17:16:39.10ID:NJ2skO19
https://ideone.com/mqLP90
C++。開発中だが、頓挫したので挙げておく。
面倒なことしてるとは言うけど、プレイヤー分けたほうがそれっぽいかと思って分けてある。
あまり深い意味はないよ。
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 を求めよ
2019/06/16(日) 18:10:27.80ID:0YuYzKwS
>>387
仮想関数名前違うじゃん
2019/06/16(日) 18:59:11.36ID:NJ2skO19
https://ideone.com/StMJSA
>>神経衰弱。
一応、ランダムプレイヤーで終了まで走ったのでアップ。おしまい。
いい暇つぶしになった。

>>389
あぁ、別スレにも投げたんだが、即反応があって赤っ恥だよ。
直したところ、通ったので適当にデバッグが可能になった。
2019/06/16(日) 19:15:07.52ID:SF357sr+
NervousBreakdown って名前はユーモアでそうしてるだけ?
カードゲームの神経衰弱って、(一部の)日本人しか連想できなさそうな名前だけど
392デフォルトの名無しさん
垢版 |
2019/06/16(日) 19:15:53.29ID:EJ1uP6fE
俺は英語に詳しいんだ
2019/06/16(日) 19:17:19.26ID:NJ2skO19
>>391
グーグルで翻訳かけたらそれが出たので脳死で採用。
英語下手なんだ。
2019/06/16(日) 21:36:03.28ID:0GeuHYqO
ゲーム名とかは翻訳に掛けるんじゃなくてwikipediaとかで調べればいいと思うよw
395デフォルトの名無しさん
垢版 |
2019/06/16(日) 21:52:41.52ID:paRCIAHR
>>393
concentration または memory ではないかな。
2019/06/16(日) 22:00:19.21ID:NJ2skO19
>>395
ウィキペディアには、前者が書いてあった。
ローカルの直しておくかな。
イデオンは編集可能期限が過ぎてる。
2019/06/16(日) 22:15:01.42ID:gDHKfsB6
>>388
条件を追加します、a, b, c, d, e, f, g, h, i, j は互いに異なる正の整数です
試算では
x = 1412774811
になりました
2019/06/16(日) 22:24:36.49ID:81Mc3quK
数学の宿題解いてくださいスレ立てれば
2019/06/16(日) 23:19:03.49ID:gDHKfsB6
>>398
どうして、あるいはどういう点によって、これは宿題だと思ったのですか?
2019/06/16(日) 23:21:46.39ID:QegIZpn+
お題: 入力からC言語の整数リテラルもしくは浮動小数点数リテラルを読み取り、型の種類、実際の値の十進表現、そして型のバイトサイズを出力するプログラム。
入力が不正な場合はERRORと出力せよ。
前後の空白は読み飛ばすこと。
2019/06/17(月) 01:22:44.99ID:ikLTlFyV
https://ideone.com/tSqKkb
>>400
ベターC。今流行りのTrueパーサーというやつです、はい。
怒られるヤツです、はい。

ローレベルは苦手だ。
2019/06/17(月) 01:30:23.22ID:ikLTlFyV
>>397
数字が異なるモノであることをチェックするのが面倒だなぁ。字数多くて。
2019/06/17(月) 03:31:09.45ID:lxC/KfUO
>>388,397
俺も適当に回したもので1412774811が出たが、
それが正しいかどうか調べるのは21701までの総当たりで1412774811より小さい条件を満たすものが無けりゃええんよな?
21702^3 - 21701^3が1412865307になって1412774811を超えるけーの
2019/06/17(月) 14:19:11.19ID:ikLTlFyV
https://ideone.com/yqze0k
>>388 >>397
総当たり(予定)
概算書いてあるから簡単かと思ったら、リリースでも終わらないでござる。
よく考えたら、15ビットの10乗だったので死ぬわ。でござる。
2019/06/17(月) 14:44:54.54ID:ikLTlFyV
https://ideone.com/LROfLu
>>404 の おまけ。
ハッシュにしてみたら、面倒なチェック落とせるんじゃね?と思い、物故んでみたところ。
メモリ限界に達して死にました。南無。
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, 'の勝ち。'])
2019/06/17(月) 18:07:12.55ID:1OuEx0ms
>>397 >>388
お、なんか簡単に出来なさそうだから、やってみるかな。 たまたま記号計算の勉強中だから、やってみるがそっちの勉強の方が難しすぎて答えまでたどり着けるかどうかわからんが、良い練習問題になる。
2019/06/17(月) 18:27:18.50ID:00OaCjzA
お題: あなたは完全予約制の映画館の運営責任者だ。映画館にある10x10席について予約アプリを作ることになった。

仕様:
2桁の座席番号で空いてる席を予約できる。
「おまかせ」ボタンで席を決めてくれる。
席が決まったら、整理券を発券する。
「印刷」ボタンで予約状況を印刷できる。
「売上」ボタンで売上を計算できる。
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 でなんとかなると思っていましたが…
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年ぶりにバグ出ししてしまった…てへぺろ
2019/06/17(月) 20:39:53.72ID:kwMyLS9e
いっっっつも問題修正してるじゃん。
雑なんだよ。センスも能力も無いのでは?
2019/06/17(月) 20:45:27.57ID:mDiaA7dQ
>>411
はい、能力もセンスもありませんので、こちらで胸を借りようかと(宿題スレもあわせて)10年くらい書き続けてこの様だったりするのです…
2019/06/17(月) 21:59:24.42ID:mDiaA7dQ
>>411
あれ?
直前の私のお題は
https://mevius.5ch.net/test/read.cgi/tech/1524570314/795,796
https://mevius.5ch.net/test/read.cgi/tech/1480579110/891
でしたが、「いっつも」と言われるほど問題を修正しまくっていましたっけ?
414デフォルトの名無しさん
垢版 |
2019/06/17(月) 23:25:47.26ID:kD34CthS
>>362 なでしこ

(6 の 乱数) + 1 を 表示
2019/06/18(火) 01:58:28.56ID:yt8XeQST
>>408
なんのアプリ?
416デフォルトの名無しさん
垢版 |
2019/06/18(火) 06:13:34.61ID:3nOE2mBA
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
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
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())
2019/06/18(火) 17:25:13.33ID:0ZczZHMk
>>417
pythonなら超簡単に書けそう。
俺は書かないけど。
421デフォルトの名無しさん
垢版 |
2019/06/18(火) 17:31:24.32ID:GIiOlD+x
>>417 Common Lisp
https://ideone.com/R6x9iB
2019/06/18(火) 23:24:46.27ID:iS/QjWZR
>>417 そもそもなんのためにこんな小汚いコーディングしてるのか理解不能。 >>417 の出題者の目的はなんだ?

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

print( [i for i in range(1,101) ] )
2019/06/18(火) 23:31:47.74ID:uzZY1452
パズルとか頓智とかゴルフとかそういう系統でしょ
あなたにはおそらく今後5年間は理解できそうにないからわざわざ首を突っ込まなくていいんじゃない?
それとそのコードだとforを使ってることになるからダメだよ
「なんでダメなの?」と聞かれてもその手の遊びを本当に理解できない物体がいるのでコミュニケーション不可能だから答える必要はない
2019/06/18(火) 23:38:20.95ID:LmXiKmLw
printで1から100まで出力したらダメですかw
2019/06/19(水) 00:18:45.19ID:SHnWP/2E
>>424
別にいいけど、受けないとわかってるギャグを言う時と同じくらい恥ずかしいと感じるんじゃないかな
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秒で答えが出た。このくらいで答えが出るはいいお題。
2019/06/19(水) 00:29:30.92ID:vbzhpePV
>>427 何なら良いんだよ。まさかgoto 文以外はダメだとか言わないだろうな。
もう一度聞くが、for と range 以外なら良いのか?
430デフォルトの名無しさん
垢版 |
2019/06/19(水) 00:31:10.59ID:5w3Qflb9
>>429
じゃあrangeは良いです
2019/06/19(水) 01:07:24.29ID:vbzhpePV
>>417 >>427 >>419 kotlin と、>>421 commonLisp もダメなんだな?

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

やーめた。
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
2019/06/19(水) 01:47:16.78ID:G/RPQnNp
https://ideone.com/sjWw95
>>417
見よ、この土方力を。
趣旨からしてこういうことだよね。
汎用性つらぽよ。
2019/06/19(水) 01:57:49.22ID:G/RPQnNp
言い訳するんやったら、ループじゃなくて、掛け算です。

と、言ってみる。
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)
2019/06/19(水) 09:45:26.08ID:gZl/9gTZ
クソ問出しといて面白い回答でオレ様を感心させろとか言う厚顔無恥なクズ
438デフォルトの名無しさん
垢版 |
2019/06/19(水) 10:47:05.36ID:WYELJAwQ
>>417
bash

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

「理解不可能」「出題者の目的」「ルールが分からん」と三拍子揃ってるからコミュニケーション不可能の異質な生物だと思った方がいい
for rangeのを出して来て「ループしてないだろ?」と聞く時点でもはやコミュニケーション不可能、価値感が根本から違う
表面だけは人間の姿形をしてるが中身は全然違う物体で、そいつらとはコミュニケーションや意志疎通は出来ない
絶望的に話が合わないし価値感も全く違うので、人語を解するコミュニケーション不可能な人型生物、程度に見ておいた方がいい
2019/06/19(水) 14:20:18.59ID:obZmDbZo
おだいじに
2019/06/19(水) 14:21:10.78ID:GEIUHOY6
>>415
好きな端末でいいよ。
2019/06/19(水) 16:12:40.53ID:XyjBYhsR
>>417 Brainfuck
https://ideone.com/AOy5TP
あからさまなコピペ
2019/06/19(水) 17:16:09.66ID:ogviAWT/
>>417 javascript
console.log(Array.from({length:100},(_,i)=>i+1).join`\n`)
2019/06/19(水) 19:47:06.93ID:OY3s5aed
>>408
一席いくら?
2019/06/19(水) 19:56:34.95ID:GEIUHOY6
>>444
200円(税込)
446デフォルトの名無しさん
垢版 |
2019/06/19(水) 21:58:53.08ID:5w3Qflb9
>>417
Java
https://paiza.io/projects/S3ZKNQZ3Qf7Ga24YCGTJrQ
447デフォルトの名無しさん
垢版 |
2019/06/19(水) 22:25:22.23ID:n9mQOThz
>>388
a^n-b^nの因数分解を眺めていたらnが素数の時はa-bの項しかないようだ。そして項数が素数になっている。
2019/06/19(水) 23:11:59.86ID:1TMSR9rp
>>446
再帰…
2019/06/20(木) 02:27:04.40ID:oTe0B3jI
Javaって言語は、一体何のために作られたのか…
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

ループはしていない。
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
縦書きなので右から左へ。
2019/06/20(木) 08:15:15.24ID:eWAtuK2L
>>450
何のためにって、お題に対して面白い解き方をするコードを挙げているのだから、コードから仕様を解釈するのが困難だなんて指摘は的外れだろうよ
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]
2019/06/20(木) 13:40:58.14ID:8QzdDreI
mapは実質ループ処理やろ…
2019/06/20(木) 14:00:32.25ID:yAxi76dJ
mapはダメです
2019/06/20(木) 15:39:33.58ID:lLho4HyI
>>450
書いた人間だけど。
5個表示するのが5個あったら25個表示出来て、それを4個並べて100個!
完璧な作戦じゃないですか!!!!遂行するのが不可能ということもない。

5*5*4=100!!
2019/06/20(木) 16:32:25.26ID:Gh9YFRfh
>>417 はループ禁止とか言いながら、プログラムの外でループしてるだけのプログラムじゃないか。
プログラムにループかなくて繰り返しなんてあり得ない事がわからないバカなんだろうな。
2019/06/20(木) 16:35:07.14ID:lLho4HyI
屁理屈の応酬が見たかったんだろうけどね。
2019/06/20(木) 16:43:22.80ID:xEuEtm2x
そういう意味ではソフトから見て最小単位であるアセンブラのブロック転送命令もマイクロコードでループしてるわね。
と言う訳で、解なしが正解かな?
2019/06/20(木) 17:02:57.57ID:UeiaYI4k
あからさまなループ禁止でループ完全な禁止じゃないでしょそもそも
2019/06/20(木) 17:20:12.64ID:Gh9YFRfh
こんなドカタの力仕事の訓練しても何にもならない、こんなので楽しめるなんて ドM だろ。
綺麗なプログラムは許さない。できるだけ小汚いプログラムしかダメ。 いかに小汚くプログラム出来るかのコンテストです。

>>463 屁理屈だな。map や range などは明らかなループじゃないだろ。 明らかなループってなんだ?
1行で書かれた綺麗なプログラムは許しませんと言えよ。
2019/06/20(木) 17:24:08.31ID:lLho4HyI
人の持つ適度さっていうのを裁量してるともとれるし。
2019/06/20(木) 17:25:50.68ID:UeiaYI4k
mapだめって言ってるのが出題者どうかもわかんねえじゃん
あと解きたくないなら解きたくないでいいしほっとけばいい
曖昧だと思うなら質問すればいい
あと訓練するためのスレでもない
2019/06/20(木) 17:49:38.66ID:yAxi76dJ
じゃあmapは良いです
2019/06/20(木) 17:50:26.82ID:yAxi76dJ
>>464
ドカタはダメです
2019/06/20(木) 18:40:11.89ID:7bp91DBM
クソ問。
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]]
2019/06/20(木) 18:48:20.30ID:PrZKlplW
>>471 1行で書けるものは嫌いなんだってさ。
[1..100] なんて大っ嫌いだってさ。 自動生成される数字は全て反則だって。
2019/06/20(木) 19:12:37.52ID:lLho4HyI
一応、どの辺がプリミティブかっていうのはあると思うぞ。
オブジェクト指向と手続き型と関数型で均質なプリミティブとはいったい・・・。

ごごご・・・...,,,
474デフォルトの名無しさん
垢版 |
2019/06/20(木) 19:44:30.14ID:dXsduSm6
>>417 Common Lisp
https://ideone.com/s6cgBp

こちらからの移植
http://blog.practical-scheme.net/shiro/20190620-print-100
2019/06/20(木) 19:49:49.24ID:Gh9YFRfh
>>474 よう解らんけど、それらはループの塊らしいよ。
要はプログラムの中で完結してる解は、全てループが入ってるはず。
2019/06/20(木) 19:51:56.16ID:Gh9YFRfh
プログラムの外でループさせろという趣旨の問題じゃないのかな?
2019/06/20(木) 21:09:58.62ID:j5hWgvM1
>>428
試算プログラムでは40秒でした
個人的には ideone で実行結果まで出るくらいには高速化したいと思っています、ある程度高速化した上でのこの要求はかなり厳しいです
2019/06/20(木) 21:16:47.46ID:QhoGDCwl
>>475
ん、そんなことは誰もいっとらんとおもうけど?
shiroさんの解、良いじゃないか!

rangeはさておき、rangeをmapしてたらそれはもうループ処理だろう…
2019/06/20(木) 22:04:45.76ID:lLho4HyI
お題:犬作りましょう。(自由回答)
サンプル:https://ideone.com/jimp7B

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

おひとついかがですか?
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で書き換えてみたけど明らかにループでしょこれ
2019/06/20(木) 23:38:45.25ID:OLwHtCR1
>>474 がループだとか難癖つけてる土方は
このコードが何やってんのか理解出来てんの?
482デフォルトの名無しさん
垢版 |
2019/06/20(木) 23:44:11.27ID:Sr/gBML4
>>417
Java
https://paiza.io/projects/j6GOkwedFZ350XHeow1w-w
2019/06/21(金) 00:14:32.42ID:5YMvPAfL
>>481 出題者がループの定義をしていないんだから解らんよ。
format もループといえばループだろ。 繰り返しが入ってるものは全てループ。
2019/06/21(金) 00:30:08.90ID:smbNU/wq
いやいやformatはループじゃないだろ、頭湧いてるのか
2019/06/21(金) 01:02:14.01ID:Z2iYVQkJ
出題者か外野か知らないけど、ループの定義に拘ってこれはループだとかいうのはほっとけばいいんじゃないか?
そいつらの解釈なんか気にするより、他の誰かが見て感心や納得させられるような物を思い付いたら挙げてみた方が面白い。
2019/06/21(金) 02:15:56.40ID:8b/72/Ba
>>483
やっていることを理解できているかを問われているのにそれじゃ答えになってないよ
それともformatしかわからなかったという敗北宣言?
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
>>417
Java
https://paiza.io/projects/Sb2icsTDEFMvTmepiS26Iw
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");
2019/06/21(金) 07:56:09.60ID:vf8hmAK4
それも正解でしょ
書くのめんどくさいだけで
492デフォルトの名無しさん
垢版 |
2019/06/21(金) 08:18:08.17ID:SnH180rX
>>417 Common Lisp
https://code.hackerearth.com/24a420r
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)
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)
2019/06/21(金) 17:40:30.13ID:8+ftJ9Cm
>>492
姑息な!(褒め
2019/06/21(金) 17:56:02.69ID:VCA9CZc/
>>498
何にしてもインクリメントしてる時点でループ的な繰り返しを期待しているわけだから
まあ負けだよね(負けでも面白くはできる。為念)
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にそもそも無い

十分条件は充してる。
2019/06/21(金) 21:26:57.88ID:uBc0RisT
必死だなでも負けは負けだそして何より面白さが皆無なのが致命的

厳密には再帰ではないが実質再帰と同じ効果を狙ってんだろ
それ以前に自身も屁理屈だといっちゃってる時点で、語るに落ちてるよ
504デフォルトの名無しさん
垢版 |
2019/06/22(土) 01:32:31.17ID:zj+KJbMh
ここでは何か戦いが行われていたのか?
2019/06/22(土) 01:36:06.87ID:oaC3C1vm
日本語が読めない人との戦いが長らく続いてる
506デフォルトの名無しさん
垢版 |
2019/06/22(土) 04:13:24.85ID:zj+KJbMh
>>417

#!/bin/sh

echo '1から100まで'
2019/06/22(土) 05:24:28.98ID:lmjByctT
>>506 正解
2019/06/22(土) 06:01:52.56ID:YIP5CpHg
やられた
2019/06/22(土) 10:21:10.77ID:lgEn1aKj
くだらない
2019/06/22(土) 11:45:18.46ID:jiW7+Eee
くだらない
2019/06/22(土) 12:11:38.82ID:lmjByctT
出題からしてくだらない
2019/06/22(土) 12:27:47.34ID:Tw+E6LX+
お題:プログラミングのお題が与えられるので、それに対する解答を回答するプログラ厶を作りなさい。
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
しらんがな…(´・ω・`)ショボーン
~ $
2019/06/22(土) 13:03:59.60ID:7MEAdJNr
(出題者側、回答者側のいずれに問題があるにせよ)
題意が汲み取れずくだらないお題だと思うのなら
回答せずにスルーすればいいやんというのがここのルール

回答した以上は特に題意を汲み取っていない的外れな回答の場合、
相応の批判にさらされることはある程度覚悟しないと
2019/06/22(土) 13:06:05.30ID:YIP5CpHg
しらんがな…(´・ω・`)ショボーン
2019/06/22(土) 13:23:12.78ID:+T90VYrY
お題: パソコンの中で猫をひげダンスさせよ。
2019/06/22(土) 14:37:40.61ID:Kdr0peZW
>>514 出題者が質問に答えずに、出題の意味も説明できずに罵声を浴びせるだけと言う態度は問題だと思うけどな。
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
「このはし渡るべからず」を見た時の一休さんの気持ちが少しわかった。
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, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/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
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 :
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++ );

}

}

あとは割り込みのテーブルに登録するだけ
2019/06/23(日) 01:15:49.60ID:udYctx9F
>>514
> 回答せずにスルーすればいいやんというのがここのルール

勝手にルールを作るな。
2019/06/23(日) 01:37:51.82ID:owW1jJs8
>>524
別にいいやんか
2019/06/23(日) 03:01:37.82ID:okSgJcER
>>524
基本的なルールも知らん新参者はしばらくロムってろとw
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]
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のころからいるいわばこのスレの主だ
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
議論を整理しよう

主の意見
・問題がわからなかったら問題が悪いと言うんじゃなくて無視しよう

木偶の坊の回答者の意見
・問題がわからなかったら問題に文句言うんだ <= これがダメ
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
あからさまではないからええんやで
2019/06/23(日) 12:05:40.43ID:xc930vdW
いいや、あからさまや
2019/06/23(日) 12:07:42.20ID:HeOsQws8
>>534 問題が解らなければ出題者に聞くのがまず第一だろ。 そして出題者は質問に答える義務がある。
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);
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
義務なんてない
会話の裁量はケースバイケースや
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
議長として議論を執行する
2019/06/23(日) 12:53:58.33ID:uxmsHz5m
>>540
あらかさまじゃねーけど>>523の二番煎じはつまらない
2019/06/23(日) 13:07:52.17ID:xc930vdW
>>547
>>540>>480を書き換えたコード、オリジナルは>>451>>523の方が後なんだけど
2019/06/23(日) 13:37:18.23ID:CFRhe1LU
全部のコードをいちいち見てないし、二番煎じということを指摘するには十分だろ
550デフォルトの名無しさん
垢版 |
2019/06/23(日) 13:40:05.34ID:MlHMJpT5
>>545
桃白白改めミスターポポ改めピラフ改めピッコロさん、いい加減にしろ
2019/06/23(日) 14:01:14.90ID:0sdWkE2M
ID:PuD19qMM は多分クソみたいな出題してボロカスに叩かれたことがあるんでしょ
叩かれたこと無いって多分レスすると思うけど、きっとあるんでしょ
2019/06/23(日) 14:06:35.85ID:kLh2Gk3t
はい、この議論今日まで〜
2019/06/23(日) 16:57:08.99ID:DC/NnmXU
>>388,397,409
https://mevius.5ch.net/test/read.cgi/tech/1434079972/59
出題者想定の試算プログラムを公開します。

>>487
とっても早いですね…
2019/06/23(日) 17:32:48.34ID:JIIa3Mhw
>>531

> ちなみに僕はPart0のころからいるいわばこのスレの主だ

明記しとけ
つかスレの主ちがうじゃん
2019/06/23(日) 17:37:50.61ID:/bRV2XXv
お題: サインカーブを描画せよ。
556デフォルトの名無しさん
垢版 |
2019/06/23(日) 20:48:49.59ID:lpZCfMkq
>>555
VB
https://paiza.io/projects/b6D3kpi6vjqOzZl1KAH-Pw
2019/06/23(日) 21:25:20.51ID:DC/NnmXU
お題
1) √2 を小数点以下 1000 桁算出せよ
2) n ∈Z, 1 <= n <= 100 を与えたとき√n を小数点以下1000 桁算出せよ
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
559487
垢版 |
2019/06/23(日) 22:07:30.94ID:K2cXmmzo
>>388 Java
https://ideone.com/9d18x4

>>553
分割荒くしたらもっと早くなったよ
x=13194120658951(=2097151^3-2097150^3)以下に6通り見つからなかったが
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' "
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("∿")
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))
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)
2019/06/24(月) 16:09:05.86ID:BXNZhLwW
>>564 出力画像
https://imgur.com/D5WDUTF
2019/06/24(月) 16:10:01.37ID:BXNZhLwW
こっちの方が良いね
https://i.imgur.com/D5WDUTF.jpg
2019/06/24(月) 17:22:50.00ID:y3nBEW/D
https://light.dotup.org/uploda/light.dotup.org596741.png
>>555
C++で書いてみたよ。
画像生成は自作コード。
面クラス作ってwindows bitmap 用に書き込みした。
趣味で色キチにしてある。
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">'

スクショ
https://i.imgur.com/4jf1NdV.png
2019/06/24(月) 17:52:22.52ID:eqHVB1zL
だんだん難しくなるよ。

お題: 8の字曲線を描画せよ。
2019/06/24(月) 18:22:01.03ID:lp2pR5Nh
>>570 そんな似たような問題飽きるよ。
2019/06/24(月) 18:24:31.37ID:DDT4XoH6
console.log('8')
2019/06/24(月) 18:33:31.05ID:oK/rIQPy
お題: ベルトコンベヤで左から右へチーズケーキが不定期に断続的に供給される。Aさん、Bさん、Cさんは右から順番にチーズケーキを食べる。
ただし、AさんはBさんより食べる速度が早い。BさんはCさんより食べる速度が早い。お腹一杯になるとしばらく食べられない。
これをマルチスレッドで再現せよ。
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

"=> https://i.imgur.com/CiUeI8I.png "
2019/06/24(月) 19:18:23.37ID:oK/rIQPy
お題: あなたは宇宙時代の靴屋さんだ。宇宙人の足底の形状データが二次元多角形ベクトルデータとして与えられる。多角形が円に収まるように円形の靴の底を設計せよ。
2019/06/24(月) 19:34:41.44ID:SbfV+wvC
>>561
>自分が勝手に思ってても人には伝わらないよ。

ほう、私の記述が不十分というわけですか?
しかし、

>カンマで区切られたスレなんて俺のブラウザでは辿れないし

これは特に「アンカー」というのですよ。「アンカー」、この単語をご存知なかったのですか?

>カンマで区切られたスレなんて俺のブラウザでは辿れないし

私の専用ブラウザでは十分にたどれますよ、おま環でしょう、おま環、おま環(爆笑)

>リンク先のページもどれがなんなのかわからないし、

QZ 専用スレのことですか
そもそも専用スレを持っているということ自体が特筆に値するでしょう
あなたも専用スレを作ってみたらいい、一発で削除されますよ

それに、そこでは私は、私が何を目的に何を書いたのか一目瞭然ですね
必要にして十分とはまさにこのことでしょう
過去ログはお布施をすれば自由に取り込めます、おま環、おま環(爆笑)

>よくそんなのでプログラムの世界で生きてるね。 クビにならないことを祈るよ。

あなたが5ch で不自由な制約のもとにあるのはよくわかりました、ひとことでいってお布施が足りない、まずはお布施をすることですね
私は職業プログラマでないので、すでにプログラムの世界ではクビになっています、ついでに現在の職業もクビになりそうです…いや、ラプラス変換の部分分数展開の計算が合わなくて苦労しているのですよ
部分分数展開については、近いうちにこのスレのお題にしますよ、乞うご期待!
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()

https://i.imgur.com/ACefMnx.jpg
2019/06/24(月) 19:35:53.46ID:oK/rIQPy
ヒント: まずはど真ん中を求めよう。
2019/06/24(月) 19:53:04.45ID:oK/rIQPy
お題: 辞書のように頭文字を何文字か入力すると該当する単語の意味を調べられるようなシステムのことを「辞書型エキスパートシステム」と言います。
あなたの得意分野に関する辞書型エキスパートシステムを作りなさい。
例) HTML辞書システム
2019/06/24(月) 19:55:50.31ID:y3nBEW/D
し、式がわからねー。算数の限界。。。 グフッ。
2019/06/24(月) 20:04:50.44ID:rEOVCAEx
>>577
お?リサージュ使ったのか、やるなお主。
2019/06/24(月) 20:10:50.04ID:eqHVB1zL
面白いシューティングゲーム作るなら、数式とグラフの知識は必須だからな。
x→yという対応によるx-yグラフがあれば、
時刻t→(x, y)という対応によるグラフもある。多分高校で習うから安心しろ。
2019/06/24(月) 20:13:33.00ID:BXNZhLwW
>>576 やはり思った通りの人物像だったな。 自分の勝手な思い込みで人に伝わると思ってる。
そりゃどんな所に勤めても長続きしないだろうな。 相手の事を思いながら会話しないとダメなんだよ。

自分は何も悪くない、悪いのは相手だと言うのが最大の欠点。 多分病気だと思うから一度病院に行ってみたら?

ラプラス変換なんて持ち出せば相手は黙るだろうとか思ってる馬鹿さ加減。
あんな簡単な物で躓いてるのは多分高校の数学で落ちこぼれてたんだろうな。 いや中学の算数が解っていないのかも。
計算を楽にするためにラプラス変換があるのに。
2019/06/24(月) 20:19:29.47ID:fImqzI0I
トリップ付けてる人にまともな人なんているわけがないじゃないか
2019/06/24(月) 20:37:30.25ID:SbfV+wvC
>>583
>多分病気だと思うから一度病院に行ってみたら?
すでにして飲んでるお薬は
https://en.wikipedia.org/wiki/Chlorpromazine#/media/File:Thorazine_advert.jpg

>計算を楽にするためにラプラス変換があるのに。

浅はかな理解ですね、計算のためにラプラス変換?
馬鹿もここまでくると気の毒に思えてきます
そんな人のために次のページが構築されつつあります、誰が書いてるのかは私はしらないけど
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
2019/06/24(月) 20:40:31.12ID:y3nBEW/D
https://light.dotup.org/uploda/light.dotup.org596781.png
ギリギリ8?これ、屁理屈だわー。
2019/06/24(月) 20:43:09.60ID:eqHVB1zL
>>586
創意工夫はあってよし。一応合格。
2019/06/24(月) 20:55:10.85ID:y3nBEW/D
うえーい。
2019/06/24(月) 21:01:05.67ID:y3nBEW/D
あ、どっとうp死んだ。。。
2019/06/24(月) 21:57:47.94ID:BXNZhLwW
>>585 悪かった、本物とはさすがに思わなかった。 お大事に。
むしろこんな所にも出入りしない方が良いと思うけどな。

所で今 5ch サーバーがおかしいね。
2019/06/24(月) 22:04:21.59ID:SbfV+wvC
>>590
浅はかな理解ですね、そもそもここに出入りしている時点で重大な問題を孕んでいることに気がつかないとでもいうのですか?
2019/06/24(月) 22:30:59.92ID:xRw0rPof
あーQZはまともに相手しないで放置すればいいよ
こいつ複素解析も知らない癖に留数定理がどうのこうのとか騙ってて
突っ込まれると「全然知りません」と開き直るような奴だからな
それに日本人じゃないらしい
2019/06/24(月) 22:32:09.63ID:xRw0rPof
おそらくこいつはラプラス変換も知らない馬鹿だ
2019/06/24(月) 22:53:08.06ID:gDOJvwaR
>>592
懐かしいな
以前、複素数にまで拡張された指数関数が一般に多価関数になるということが解らなくて
わざわざ他の板まで行って醜態を晒してたなこいつ
2019/06/24(月) 23:24:54.85ID:SbfV+wvC
>>592
それは記憶違いでは?
当時「計算練習として複素関数論をやればいいのでは?」という意見に対して「留数定理は忘れた」と発言しただけですよ、実際もう忘れましたし、それにしても昔のことをよく覚えていますよね、この執念はいったいなんなんでしょうか?

>>594
このスレのお題「e^z = -1 たる z ∈C を求めよ」にてずいぶんと勉強させていただきましたが、それもこのスレだけの話で、わざわざ他のスレや他の板に行った覚えはありませんね、証拠を出せますか?

>>593
ラプラス変換の教科書に当時メモ書きした式変形ですら、もう自分でも理解できなくなっているのは認めましょう…
2019/06/24(月) 23:29:01.25ID:gDOJvwaR
>>595
確か数学板で聞いてただろお前
そのリンクをこのスレに貼ってたはずだから気になるなら自分で調べろ
2019/06/24(月) 23:46:51.79ID:SbfV+wvC
>>596
数学板でまともに質問したのは「頂を踏む」の一節
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13170327928
だけですよ、数学板に書かないわけではありませんけれどもね
2019/06/24(月) 23:54:27.14ID:gDOJvwaR
知恵袋やってて草
後で通報しとくわ
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
2019/06/25(火) 12:21:21.76ID:cOq4SW0C
日付と名前の区別ってどうすんの?
602600
垢版 |
2019/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
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

★★エンガワ
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)} "
2019/06/25(火) 17:04:02.93ID:CrMrKXln
>>575
テストデータ(各自で用意すること): 長方形、星形、ハート形
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";
}
}
2019/06/25(火) 17:29:23.86ID:Y04/VZ6Y
>>605
やはり辞書型がくみこまれてる言語は綺麗だね
数が増えたときでも問題ないかんじ
2019/06/25(火) 17:30:16.52ID:cOq4SW0C
ハート型って多角形だったのかー
こらノーベル賞ものの発見だな!
2019/06/25(火) 17:30:27.94ID:Y04/VZ6Y
タイポ
辞書型ではなく 集合型だ
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
2019/06/25(火) 18:43:25.69ID:CrMrKXln
ユーチューブのおかげで誰でも動画を投稿してお金を稼げる時代になった。
自分のアイデアをvisualizeし、面白い動画にして投稿すれば、収益化できる。
プログラミングをマルチメディアやGUIに対応させることは当たり前。
あなたもテック系ユーチューバーになろう。

動画は変化する静止画の連続であり、スクリーンショットで一枚一枚画像を撮ってテキトーなツールでつなげれば動画に出来る。
2019/06/25(火) 18:48:37.74ID:UDO8hU+H
>>600
https://ideone.com/wTvm0s
C++。オレ、あほになってるなぁ。それとDataTime欲しい。
2019/06/25(火) 18:50:16.61ID:UDO8hU+H
>>612
手頃で簡単な動画コンテナ知らない?
AVIのフォーマット調べたらRIFF吐かないといけなくて、そこからかよ!って感じだった。
2019/06/25(火) 18:52:08.76ID:CrMrKXln
お題: あみだくじを解け。n本の縦線を上下に平行に引き、上から順番に二つの縦線を結ぶ形でいくつかm本の横線を引く。下側の縦線の端の一つにゴールを設定するとき、あみだくじの
ルールに従ってゴールに到達する縦線の端のスタート地点を求めよ。
2019/06/25(火) 18:58:25.64ID:CrMrKXln
>>614
連番でビットマップ吐けばフリーソフトでつなげられるだろよ。
2019/06/25(火) 19:02:19.01ID:UDO8hU+H
>>616
そうなるか。ふむふむ。
2019/06/25(火) 19:17:59.99ID:4Msitu63
>>616 おいこら、出題ペースが早すぎるぞ。解答もほとんど出ていない状態で次のなんて出すなよ。
2019/06/25(火) 19:51:46.12ID:/33lsov2
>>611
日付に対する前置詞はonだぞ
2019/06/25(火) 19:56:07.32ID:Y04/VZ6Y
>>619
thanks
2019/06/25(火) 20:43:10.45ID:ayyd1Kg3
面白い動画たーくさん作って早く労働者階級を卒業しよっぜ。
2019/06/25(火) 23:32:34.03ID:hlLFLgMF
>>573 Pharo Smalltalk

http://ws.stfx.eu/FWYMKVTGYK60
2019/06/25(火) 23:47:01.47ID:ayyd1Kg3
多角形の問題は、最小包含円問題というらしい。
2019/06/26(水) 01:05:18.27ID:fhfivptN
>>575 >>623 それって、>>11 の入口問題だな。 俺も>>11 関連で知ったが、最小包含円って言葉は、このスレで何度か出てきてるぞ、
具体的な宇宙人の足跡データが、>>11 として最小包含円を求めよとした方がより具体的だな。 いくつか答えが出てるけど。

具体的なデーターを示さないと答えがバラバラになるぞ。 蟻人間の問題ってあやふやなのが多いな。
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
2019/06/26(水) 01:12:45.72ID:FZmH/DTQ
>>615
n=3
m=5
として横線は
(0, 1)
(1, 2)
(1, 2)
(0, 1)
(1, 2)
としよう。
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
2019/06/26(水) 04:24:04.79ID:FZmH/DTQ
日本とゐう国は労使から朽ちていつたんだなあ。
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 'サインカーブ'
2019/06/26(水) 10:05:25.43ID:I0iq5RkX
整数が複数与えられて、そのうちの5つの積が最大になるものってどうやって選べばいいの?
絶対数でソートしても、負数が奇数個だとマイナスだし頭がこんがらがる
2019/06/26(水) 10:27:17.99ID:qQlb55ju
正数の大きい方から5個
正数の大きい方から3個と負数の絶対数の大きい方から2個
正数の大きい方から1個と負数の絶対数の大きい方から4個
で比較すれば?
2019/06/26(水) 10:35:24.88ID:qQlb55ju
別に正数とか負数とか気にしないでも良いか
ソートして、上から5個 上から3個と下から2個 上から1個と下から4個 の中で最大のものを選べば
635デフォルトの名無しさん
垢版 |
2019/06/26(水) 12:11:39.42ID:4ftm39hn
>>634
全て負の値の場合は?
それと気になるのが0。
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]
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
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
2019/06/27(木) 07:16:25.32ID:ken8tLFo
>>635
oh...全て負の場合は数値が大きい方(絶対値が小さい方)から5個だな
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
2019/06/27(木) 16:22:58.68ID:nAZ+iPIM
だれかあみだくじ解けない?
2019/06/27(木) 16:37:32.78ID:cEwto4HN
I can, but I won't.
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
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]
2019/06/29(土) 05:03:25.69ID:BpIUWIWl
お題: Hello, World!が入力されるのでHelloとWorldを入れ替えて表示せよ
2019/06/29(土) 07:48:16.22ID:FqBWYLWj
あまりにも簡単すぎる問題は控えて欲しいな、たまになら休憩として良いけど。
2019/06/29(土) 11:18:10.70ID:HRfvRfYw
printed("World, Hello!");
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!

※英単語部は任意です
2019/06/29(土) 13:00:42.80ID:Rvf+oTMW
お題:全単射を満足する最小桁数を求める
任意の整数域(-10000..10000とか)を引数とする単調増加/減少関数f(x)に対して、
その計算結果を有効数字n桁で丸めたものをy=round(f(x), n)とする。
xとyの関係が全単射になる(異なるxに対して、同じyにならない事)
最小のnを求めよ。
ttps://ja.wikipedia.org/wiki/%E5%85%A8%E5%8D%98%E5%B0%84

xの値域及びf(x)は回答者が適切と思われるものでよい。
2019/06/29(土) 13:27:37.67ID:HRfvRfYw
fは2^N → Rでいいの?
2^Nは自然数の冪集合ね
てか括弧内で全射が無視されてんのが謎
2019/06/29(土) 14:03:41.17ID:YzN8MsSb
echo Hello, World! | perl -pe 's/ (\w+) , \N{SPACE} (\w+) ! /$2, $1!/x'
World, Hello!
2019/06/29(土) 14:38:46.06ID:LAXJlpSi
イプシロン間際。
659655
垢版 |
2019/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は任意の実定数
とかだと解は存在しないので、これらは除外して下さい。
2019/06/29(土) 14:51:20.55ID:HRfvRfYw
>>659
任意の整数域を定義域とする関数に、なんで整数渡してんの?
2019/06/29(土) 15:37:47.69ID:mF/+Te8R
お題
与えられた画像ファイルを
適当なサイズに縮小・拡大
しモノクローム画像に変換
しアスキーアートに変換す
2019/06/29(土) 16:00:34.20ID:S1v50lfX
ss = "Hello, World!".split(', ')
print( f'{ss[1]}, {ss[0]}' )

# World!, Hello
2019/06/29(土) 16:06:20.54ID:YzN8MsSb
split のたぐいだと ! の位置がおかしなことになるんだよな
2019/06/29(土) 16:25:44.25ID:S1v50lfX
>>663 おかしいかどうか知らんよ。 問題が細かな事を言っていないんだから。
2019/06/29(土) 16:30:35.89ID:S1v50lfX
>>664 悪い悪い、問題を読み直したら、単語の入れ替えだけで記号の位置はそのままというような感じだな。
2019/06/29(土) 16:31:18.75ID:/qzOxQgj
>>664
はあ?
> HelloとWorldを入れ替えて表示せよ
余計なことしちゃだめだろ
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, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/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
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
2019/06/29(土) 16:36:57.16ID:+oJyIv4Z
>>651 : 654 657 662
>>656 :
>>661 :
2019/06/29(土) 16:41:45.64ID:dLka8n6Z
>>669
ごめん迷惑だからそれやめて
2019/06/29(土) 16:59:14.03ID:S1v50lfX
>>669 安静にしてた方が良いと思うよ。 反発のない世界で触れ合うのは良いと思うけど、2ch/5ch みたいなところに出てくると、傷つくのは目に見えてる。

みるのが楽しければ、みるだけにとどめるとか。
2019/06/29(土) 20:21:36.23ID:YzN8MsSb
w3m https://mevius.5ch.net/test/read.cgi/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フィールドとして
全部のお題に大してループする
https://i.imgur.com/WVCFus7.jpg
2019/06/29(土) 20:24:28.47ID:YzN8MsSb
1 のテンプレを順守してればこのコードの漏れはなくなる
2019/06/29(土) 22:27:44.56ID:SeYudeXv
>>667
お前個人の備忘録なんてホントにチラシの裏にでも書いとけよ
2019/06/29(土) 22:43:35.91ID:XRcaFM4Y
>>651のお題は
> お題: Hello, World!が入力されるのでHelloとWorldを入れ替えて表示せよ
なので、Hello, World!以外が入力されたら無視するかエラーを出すのが正しいのでは?w
2019/06/29(土) 22:50:01.35ID:+oJyIv4Z
>>675
それは過剰な設計では?
Hello, World! 以外が入力されたときにどう振舞うべきかについて >>651 には何らの記載がないので、何ら拘束されることがない
言い換えると、入力が Hello, World! 以外の場合には「どうふるまってもいい」と解釈するのが、論理学的に妥当…@だと思います
@:論理式「偽→真」=真、「偽→偽」=真からの類推です
2019/06/29(土) 22:56:34.59ID:SeYudeXv
>>675
>>651>>653で答えが出ちゃったね
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
でした
2019/06/30(日) 01:59:36.72ID:3kywsUGB
>>678
アホかお前
勝手にオリジナルルール作るなよ
682デフォルトの名無しさん
垢版 |
2019/06/30(日) 02:25:30.30ID:8mJPxIjl
>>651 Common Lisp
https://ideone.com/gR5ISR
2019/06/30(日) 08:04:20.61ID:uuDJgtvu
お題
#1234→◆gdyb21LQTc
#abcd→◆4vxxTEcn7p
#あいうえお→◆rXz1zlMT-L

左のトリップキーから右のトリップを返すアルゴリズムを探せ
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

左のトリップキーから右のトリップを返すアルゴリズムを探せ
2019/06/30(日) 09:03:57.63ID:AuhBLaKB
>>683 Java
https://ideone.com/ulBeVb

digestは一回、charsetは二回目で当たった
2019/06/30(日) 09:33:15.89ID:uuDJgtvu
>>685
Magnificent !!
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
2019/06/30(日) 18:49:06.96ID:TQbu+/Q+
>>684
アンカー間違えた >>632 宛だった…Orz
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
2019/07/01(月) 01:17:22.86ID:2xJWXsNl
>>689
最後のstatement
print "@{$e[0][1]} => $e[0][0]\n";
が抜けてた…Orz
691600
垢版 |
2019/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( ", " ) }
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 八
2019/07/03(水) 23:21:16.00ID:S/aBv8fE
お題
直線状の(配列を使った)ライフゲームがある。ルールは、

1. 両隣が生きていれば、暑苦しいので死ぬ
2. 両隣が死んでいれば、寂しいので死ぬ
3. 両隣の内、片方だけが生きていれば、生きる

4. 両端の2つについては、隣が生きていれば生きるし、隣が死んでいれば死ぬ
5. すべてのマスの状態の変更は、同時にすること

下の初期値(1 ターン目)から初めて、状態が変わらなくなるのは、何ターン目か?
nターン目と、( n + 1 )ターン目が同じなら、nターン目を答える

ただし、漏れは検証していないので、100ターンを超えたら、終了してくださいw
* は生、. は死を表す

.*...**.*.***..
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 "
2019/07/04(木) 01:48:41.98ID:3GgPlSpw
>>695
https://ideone.com/Rj3O0W
C++。即死したんだけど、まちがてる?
2019/07/04(木) 02:56:15.33ID:GH7xphp0
プログラムしてないけど、そういう結果になると思う。
2019/07/04(木) 07:37:27.36ID:Ic4+qAXv
増える条件ナインかこれ
2019/07/04(木) 08:19:44.93ID:k4YTb8Ao
LifeGameなら生まれる条件つけないと。
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
}
2019/07/04(木) 09:15:04.08ID:49DxGPOe
プログラム組むまでもなく3ターンで終わりなんだけど解釈間違ってんのかな
2019/07/04(木) 11:47:20.51ID:oZa6FYcv
>>695 Java
https://ideone.com/8cforf

生きるってのが誕生も含める場合13ターン >>696 >>701
生きるってのが生存のみの場合3ターン >>697
ってことだな
704695
垢版 |
2019/07/04(木) 16:13:36.89ID:vGw4d28b
生きるとは、新たに誕生する場合も、含めてください!
2019/07/04(木) 16:51:48.26ID:NOiQUdad
ジョジョくさいセリフ
2019/07/04(木) 17:41:32.68ID:UVclwvu+
居ないときは両隣が生きていれば生まれる
(生きているときは 1. に従い死ぬ)
とかの方がいいんじゃない?
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
2019/07/04(木) 22:15:57.84ID:Otr1Y9/T
お題: コマンド「stack」を実装しなさい

stackの仕様

$ stack push hoge

で文字列hogeをスタックにプッシュする

$ stack pop
hoge

でスタックに積んだ文字列をポップする
スタックが空の場合は何も表示しない
2019/07/04(木) 23:07:41.19ID:3GgPlSpw
ライフゲームだけど、生まれる話は聞いてないなぁ。
主が生まれる条件書いてねー気がする。
2019/07/05(金) 00:22:45.10ID:cLn1h7ts
>>702
手計算したら同じく3手だった
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: ...............
2019/07/05(金) 00:33:12.20ID:4z1quspY
>>711 ゴメン実行結果貼り間違えた
~ $ perl 14_695.pl
生存のみ 3: .....**........
誕生あり 13: ...............
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: ...............
2019/07/05(金) 07:06:17.78ID:8ZiX2Qqp
公式サイトが死んで1ヶ月ぐらい立ったけどUWSC
>>695 http://codepad.org/C46guycm
>>708 http://codepad.org/QU38TKOo
715701
垢版 |
2019/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
}
716695
垢版 |
2019/07/05(金) 12:37:23.14ID:imex3OYJ
>>706
>1. 両隣が生きていれば、暑苦しいので死ぬ
これを変形して、

1a. 自マスが生きている場合、両隣が生きていれば、暑苦しいので死ぬ
1b. 自マスが死んでいる場合、両隣が生きていれば、生きる(新たに誕生する)

1c. ただし、両端の2つのマスについては、1a, 1b を適用せず、ルール4 で良い。
4. 両端の2つについては、隣が生きていれば生きるし、隣が死んでいれば死ぬ

つまり、両端の2つについては、そのマスの両隣の内、
存在しないマスを死んでいるものとして扱うと、常に、1a, 1bには該当しない

興味があれば、この変形ルールでも、やってみてください!
ただし、漏れは、どうなるのか知りませんがw

>>707
確かに、ルール90 と同じです
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
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
}
719695
垢版 |
2019/07/05(金) 17:47:06.08ID:imex3OYJ
>>718
循環しましたか?

循環を発見するには、すべてのターンを記録して照合しないといけないから、大変!
2019/07/05(金) 18:27:24.81ID:XEA++p8t
>>716
3a、3b は?
721695
垢版 |
2019/07/05(金) 19:42:34.54ID:imex3OYJ
>>720
3. 両隣の内、片方だけが生きていれば、生きる

元々、生きるには、誕生する事も含むから、3a, 3b は、必要ない

ただ、
>>706
の提案で、1a, 1b の所だけを変えてみたのが、
>>716
2019/07/05(金) 22:52:47.49ID:aEAVP96+
https://ideone.com/VOwT7u
C++版改。5ターンで止まった。
ライフゲームは、ダブルバッファリング以外で作れる気がしない。
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
}
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) "
2019/07/05(金) 23:58:19.78ID:FwZHoBTZ
>>723
s/>>659なら/>>695なら/
2019/07/06(土) 15:06:03.47ID:LdZDcwTE
>>722だけど間違ってたら、教えて。
今みんな何やってるのか把握してない。
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 => . . . . . . * * . . . . . . .
2019/07/06(土) 16:00:21.54ID:LdZDcwTE
>>727
おぉ、同志。(一方通行
729デフォルトの名無しさん
垢版 |
2019/07/06(土) 16:25:41.58ID:ZIRVHkTq
>>717
問題がわからない。
河内塔って何?
2019/07/06(土) 16:28:50.79ID:GxnR+B/l
もしかしてハノイの塔かな
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
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
2019/07/06(土) 17:31:45.90ID:LdZDcwTE
>>733
えーっと、そのこーどだけど、死んでるセルの隣に生きてるセルがいたら生まれてるんだけどあってる?
2019/07/06(土) 17:52:15.78ID:LdZDcwTE
>>733
示唆してくれてありがとう。言い忘れてた。
2019/07/06(土) 18:01:01.33ID:8vjCWSQ+
>>727

>>716
>確かに、ルール90 と同じです
wikipediaのルール90 を確認してみて
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
2019/07/06(土) 18:21:51.90ID:xBT7e3zK
>>733 ご指摘ありがとう。 >>721

> 3. 両隣の内、片方だけが生きていれば、生きる
> 元々、生きるには、誕生する事も含むから、3a, 3b は、必要ない

を、「3.自マスが死んでいる場合、両隣の何れかでも生きていれば、生まれる。」
と言う意味と捕らえなおして、>>713を書き換えたら、63でloopしたよ。

>>716

>1b. 自マスが死んでいる場合、両隣が生きていれば、生きる(新たに誕生する)

と誕生条件が書いてあったので、3の条件は「生まれる」条件も含むとは考えず、

「3.両隣の内、片方だけが生きていれば、自マスが生きていれば生きる(し、死んでいれば死んだまま)。」
と解釈して >>713 を作ったのが63でloopしなかった原因だと分かった。
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
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: *.*.*.*.*.*.*.*
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, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/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
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
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 :
2019/07/06(土) 19:37:09.81ID:HtNG6e5Z
消えろ
2019/07/06(土) 21:17:45.94ID:Qorx3cLN
ログ汚染が酷い
747695
垢版 |
2019/07/07(日) 08:03:43.59ID:Ts5uCd7M
だから、誕生という概念を作ると、説明が難しいから、「生死」の状態だけにした。
生死だけなら、前の状態に関係ない、前の状態と切れているから

誕生という概念を使うと、
a. 前の状態が死んでいる時と、
b. 前の状態が生きている時で、

処理が変わってくるから複雑になって、勘違いする人も出てくるから
2019/07/07(日) 12:00:48.06ID:K8IqcFVG
>>747
その「だから」は何につながってるのか読めない。
2019/07/07(日) 17:48:05.53ID:Sb2el8tu
>>747
状態が関係ないと実装の工夫のしどころが失われて面白みが半減すると思うよ

最初の何ターンかを例として示せば済むはなしだし
手元で実装を試していればなおさら何の苦もないことかと

細かい事を言うと、本当に実装を試さずに出題しているのならそれはルール違反なんだよね
(チューリングの泥沼問題回避や宿題の丸投げ防止)
2019/07/07(日) 19:42:47.11ID:wvjux210
>>749
出題者が実装をひとつは持っておく、というのは努力目標でいいんじゃないかな?お題が面白ければ私は許容しますね
まあ自分のお題は面白くないので実装をひとつくらいは持つようにしていますが…
2019/07/07(日) 19:55:58.86ID:MQV9uu2h
たしかにくだらないクソ問ばかりだね。
2019/07/07(日) 21:06:25.36ID:JhpdhjN9
お題: 生徒の氏名、身長、体重の3つからなる複数のレコードが与えられる。氏名とBMIを左揃えのテキストの表にせよ。
単位はMKS単位系、テキストはASCIIおよび等幅フォントが使われると仮定してよい。

Tanaka Naoki 15kg 2m
Inoue Ken 280g 32cm
Akai Ryusei 1mg 3km
2019/07/07(日) 21:26:21.37ID:JhpdhjN9
お題: MKS単位系の単位を変換する関数またはクラスを作れ。

1kg:g
→1000g

2m:cm
→200cm
2019/07/07(日) 21:28:22.26ID:JhpdhjN9
名前はテキトーに思いついたのを書いただけです。
2019/07/07(日) 21:28:35.00ID:K8IqcFVG
>>753
C++なら、ユーザー定義リテラルで横着できるんだけど、入力解析が嫌な感じだ。
2019/07/07(日) 21:44:56.12ID:JhpdhjN9
物理シミュレーションが人間の手から離れて自由自在にならなければ、火星への仮想移住もできない。MKS単位系の計算術は重要だ。
2019/07/07(日) 21:50:29.52ID:ngB3G+2v
トリップ付きは大学の教養課程の知識すらない阿呆しかいないのかね
2019/07/07(日) 22:23:37.11ID:0lH1eUtN
常識など切り刻むのみ。
2019/07/07(日) 22:41:27.22ID:+dwSkgWp
死ねや糞コテ
2019/07/07(日) 23:10:54.31ID:K8IqcFVG
https://ideone.com/46Q0vU
物理難しすぎた。
Wikipediaを写経しようと思ったら、わからないことが多すぎる。
2019/07/07(日) 23:19:20.77ID:0lH1eUtN
長さの単位、質量の単位、そして時間の単位の3つがある。これにキロ、ミリ、マイクロなどが前に付く。
変換方法は複数あり、何から何への変換方法はデータとして与えられ、それらは追加可能でなければ不便。
2019/07/07(日) 23:23:22.07ID:wvjux210
先生!質問です!
重さの規準は kg ですか?それとも g ですか?え?kg?おっかしーなー?kg の kって単なる接頭辞 prefix なのでは?
2019/07/07(日) 23:28:12.83ID:6uzWSrE8
全部Jで統一しろハゲ共
764デフォルトの名無しさん
垢版 |
2019/07/08(月) 00:24:27.94ID:YBWHLZTU
長さ1センチの鼻毛を鉛直方向に1ニュートンの力で引っ張り、抜いたときに感じる痛みは1ハナゲ
2019/07/08(月) 00:28:17.48ID:5PNDCGkj
>>763
質量は J に等価交換できても長さや時間は無理なのでは?
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の文字制限と、正規表現の制限で、
置換したい文字の設定がややこしい。あと複数同時にできない。
文字を加工せずできれば便利だなと。
2019/07/08(月) 08:10:59.60ID:cS5GyvAA
>>767
スレ違い
770デフォルトの名無しさん
垢版 |
2019/07/08(月) 11:02:56.96ID:tzeJFuHl
>>767
Perlでも使えば?文字列置換楽だよ。
2019/07/08(月) 11:50:01.31ID:8XvlSCIJ
>>767
perl5 が最高だとおもうよ
もともとそういう分野に特化した言語だ
2019/07/08(月) 18:59:50.46ID:qs7HTSo5
>>766
時間や長さを J で統一することは自然単位系でもできませんね…
2019/07/08(月) 19:00:41.66ID:qs7HTSo5
>>767
仕様を正確に記述してください
2019/07/08(月) 19:25:39.25ID:uJPizAN5
宿題に餌を与えないでください
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"
2019/07/09(火) 00:46:29.33ID:b1/VU+FF
rubyの宣伝とはいえ、宿題に餌やるなら、問われている事柄に応えてやったらどうかと思う。
宣伝意識が前面に出すぎて目的を忘れるなかれ、って感じ。
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
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
780778
垢版 |
2019/07/09(火) 08:48:05.20ID:0VeokVre
和が406 ですよ

1〜405 を確認すれば十分!
2019/07/09(火) 08:52:39.17ID:chrBBqpb
大学の入試問題の大半 8割ぐらいは1000までローラーすればいい
だから経験上1000やっちゃうんだよね
最適化してくなら for y from x
とかも効かすけど
3乗算決めるぐらいまでは問題ない速度が出てる(loop x(loop y(loop z
2019/07/09(火) 09:28:56.09ID:4nn6D6BQ
>>772
完全にアホ
2019/07/09(火) 11:02:44.61ID:lxeGachM
>>781
和なんだから最適化利かすならyは406からx引けよw
2019/07/09(火) 11:18:51.73ID:chrBBqpb
>>783
たしかに
全然見えてなかったw
2019/07/09(火) 18:57:01.98ID:Rbs4mLR8
>>782
煽るだけではねえ…時間や長さを J に統一するために自然単位系がどう使えるのか書けるのですか?
2019/07/09(火) 19:43:25.84ID:ggPtzp0W
壮大な話やなぁ。
その時間系に所属する人の仕事量を全部計算するんかいな??
アホだからこんなこと思うわ。
787デフォルトの名無しさん
垢版 |
2019/07/09(火) 21:57:24.41ID:gdYXIa6p
私は頭は良いのだが知識がないため君らが何を言っているのかがよくわからない。
788778
垢版 |
2019/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 )
2019/07/12(金) 17:09:23.04ID:uwyqXnfJ
お題、聖光学院中学校入試問題

1〜10 の10枚のカードの内、4枚を取り出して、a〜d に入れて、
下の式を満たす置き方は、何通りあるか?

( a + b ) * ( c + d ) = 100

答え、48通り
2019/07/12(金) 17:26:31.50ID:B1Jsh2gD
>>789
C++.
総当たりでも解けるくらいの分量だわ〜〜。

https://ideone.com/bXhZp3
2019/07/12(金) 17:31:38.31ID:B1Jsh2gD
やってから気づいたけど、forで回したほうが早いな。
それと、ネクストコンビネーションがほしいのじゃー。
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
2019/07/12(金) 17:45:09.77ID:N+Dr1mVf
>>789
n := 10
(n / 2 - 1)_P_2 * 2^2 = 4_P_2 * 4 = 48
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
なるほど
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
2019/07/13(土) 02:35:29.76ID:P33eZqk8
>>569
遅レスだが

innerHTML はヤメロ
appendChild にしとけ…今回のケースでは問題にならないっちゃならないが…
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, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/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
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
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)
2019/07/13(土) 17:08:18.94ID:006l8Xk5
まただよ(笑)
2019/07/13(土) 18:59:07.37ID:/5VqfFnz
回答は容易に手繰れるのではっきり言って無用だし迷惑です
どうしてもまとめたいなら
例えば、どんな言語でどのお題に回答しているか整理したものとか付加価値を付けるべきでしょう
2019/07/13(土) 19:58:46.31ID:KfP9prYE
>>802
ご意見ありがとうございます、参考にいたします
2019/07/13(土) 20:04:23.90ID:azuEfQ5t
>>803
前に何度も不要だ、邪魔だと指摘されたはずだが一向に改めなかったのはなぜ?
2019/07/13(土) 22:03:31.87ID:+XrRzYc0
コテハンだからだろ
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
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
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]}
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
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)]
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... あたりが最悪
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
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
>>807
Java
https://paiza.io/projects/PooJUjiQ-5HxS4mEC6lCEA
817デフォルトの名無しさん
垢版 |
2019/07/15(月) 02:14:22.17ID:C2jHumZF
時事通信は中立的でもっとも正確。朝日新聞は若干、旧民主党寄りの予想を出した。産経新聞は若干、自民党寄りの予想を出した。

それでもこの3つの分析には大差がない。東京選挙区はほぼ確定した。

当選者は自民党現職の丸川(台本がないと何を言うかわからないぶっとび女)、

自民党現職の武見(いつものハゲじじいもう5回シコシコ)、

公明党現職の山口公明党代表(誰もやりたがらない創価学会内の仕事を押し付けられているかわいそうな人)、

立憲民主党の塩村(東京で人気のいまでもオカズになるヌける熟女)、

共産党の吉良(共産党の女性アイドル、もう年だがまだまだエロオヤジに人気)、

立憲民主党の山岸(元朝日新聞政治部のメガネ、前頭ハゲ進行中)。

与党側3人当選、野党側3人当選で東京選挙区は与野党引き分け。


落選者で得票数第1位は維新の会の音喜多(東京都北区の区長選で落ちたのは悪口が書かれたせいだとして裁判で争っている最中のクズ、小池百合子都知事の元小間づかい、寄生できそうな政党につく虫)。


以上
2019/07/15(月) 09:18:43.09ID:lV5+33Om
お題
年金AI化をする

設計を考えよ

どの部分を人間にしてどの部分を機械にするか
っていうだけだと思うけど

すごい初級プログラマーでも作れちゃうほど簡単じゃねと気になった
あまりにかんたんで民間年金ですでにありそうだが
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
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")
2019/07/17(水) 19:12:50.17ID:O6R1hJD8
>>807 Pharo Smalltalk

(11 ** (0 to: 4)) rounded asStringWithCr

"=> '1
11
121
1331
14641' "
2019/07/17(水) 21:08:34.80ID:zgAvRboO
お題:y=(1-x)(1+x)のx=-1〜1の区間を数値積分せよ。
2019/07/17(水) 21:47:30.35ID:zgAvRboO
ε=0.01くらいの台形公式でいいや。
2019/07/17(水) 21:48:18.54ID:RL7WDafS
>>824
Integrate[(1-x)(1+x), {x, -1, 1}]
4/3

wolframcloud
ちょっと感動
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)
2019/07/17(水) 23:18:48.71ID:FVhP9md/
typo

> expr = Polynomial.new(1, -1) * Polynomial.new(1, 1)
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) "
2019/07/18(木) 00:59:06.64ID:A0LALR8k
>>829
small talkは何でもあんのな
毎回驚かされるわ ありがとな
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
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 + ..." みたいな機能が
組み込みで用意されている点では、
こういうとき式を書かずに済んで便利ではありますが^^;
2019/07/18(木) 12:47:19.12ID:OgRfjymX
お題: マルバツゲームを作れ。

_1_2_3
1O|_|_
_ー+ー+ー
2_|X|_
_ー+ー+ー
3_|_|_
2019/07/18(木) 12:58:43.13ID:OgRfjymX
(出力例)
プレーヤー1が先攻です。
プレーヤー1は何番に置きますか? 1
プレーヤー2は何番に置きますか? 5
...
プレーヤー2の勝ち。

O|2|3
ー+ー+ー
4|X|6
ー+ー+ー
7|8|9
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
2019/07/19(金) 00:02:13.17ID:52u6jutr
問題側が手加減してあげないと解けないポンコツ言語なんて放っとけば?
838836
垢版 |
2019/07/19(金) 00:20:37.85ID:hngv4enD
>>836
ルールを修正

1. 開始点S(座標、0行0列)から終了点E までの、最小コストを求める。
2. S, E 双方から、双方が出会うように移動する時、最小コストで出会う座標と、その時のコストを求める。
この時の最小コストは、双方のコストを足したものです

1ターンで、縦横1つ隣のマスへ、必ず移動する。
自分が通ったマスは、1回しか通らないが、相手が通ったマスは、通れます

数字が各マスへの移動コストで、_ は、単なる目印で無関係です

この2は、かなり難しいのかな?
最小コストが求まるのかな?
漏れにも、わからない
2019/07/19(金) 00:31:00.88ID:uE+iP71G
>>838
迷惑だからちゃんと整理して解ける問題か確認してから書き込め。説明も下手すぎるからちゃんと推敲しろ。
2019/07/19(金) 00:57:57.34ID:KQ8wFSu5
だから自分で一度書いて動くのを確認してから出題しろと何度言えば…
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 |
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
2019/07/19(金) 02:19:09.79ID:ApXEphk2
2chのレイアウト変更を忘れてた
こうなる
https://i.imgur.com/h2VKHGc.jpg
2019/07/19(金) 02:28:05.00ID:ApXEphk2
深夜だからか貼り付けミスってた
>>841
https://pastebin.com/6ZRajAGz
2019/07/19(金) 08:59:52.92ID:MqWaI42B
「忘れてた」
「ミスってた」
「深夜だから」
2019/07/20(土) 00:17:01.47ID:fiB1nngo
>>836
最小重み経路問題かな?
軽く書いてみたけど、最短経路問題の3倍位難しい。
出直してくるわ。
2019/07/20(土) 02:47:49.06ID:fiB1nngo
>>836
https://ideone.com/PQwu2U
C++。出直してきたよ。
2パスになってる。
一回目は適当に上限値を取りに行って、二回目で本気探索する感じ。
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, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/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
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
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
2019/07/20(土) 08:19:03.91ID:jbjCUWIF
>>833 : 841
>>835 :
>>836 : 847
2019/07/20(土) 10:54:30.31ID:ilSI1heG
迷惑だからやめろ
やるなら言語別集計とか少しでも付加価値を入れろ
2019/07/20(土) 11:03:01.50ID:eNhk7IpQ
留数定理も知らないくせにしゃしゃりでてんじゃねえぞクソコテ白痴クロッチロット野郎が
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
認識したいのならご自由にでも迷惑だからここには貼らないで
2019/07/20(土) 15:04:46.84ID:UpWxMySu
>>848
本当に迷惑だからやめろ
工夫なんか一切しなくていいから金輪際やめろ
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
2019/07/20(土) 18:27:26.16ID:fiB1nngo
あっ。あっ。頭が!爆発!!しちゃうーーーーーーーー!!!
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
うん
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に掛ける

この操作ができなくなる時が来るかどうか判定してください。
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
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
として同じことを繰り返す
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
2019/07/21(日) 03:17:35.19ID:okP8VzSh
>>848
そのまとめ、専ブラ(ChMate)使ったら何も加工せずにより良い結果を表示できる
ってか、あんたの投稿で出題に無関係なレスもピックアップされてしまう
百害あって一利なし、なのでヤメてくれ
2019/07/21(日) 08:20:50.09ID:o8Rw7GgG
◆QZaw55cn4c のまとめ(と称した自己満足)は本当に迷惑だからやめてほしい
2019/07/21(日) 09:52:12.84ID:z5eK/QET
>>867
コテハン付け忘れてんぞw
2019/07/21(日) 12:17:22.63ID:vddupZNY
>>870
その専用ブラウザはアンカーのほかにスレッドURLにも対応していますか?
https://mevius.5ch.net/test/read.cgi/tech/1558168409/833 : 841
https://mevius.5ch.net/test/read.cgi/tech/1558168409/835
https://mevius.5ch.net/test/read.cgi/tech/1558168409/836 : 847
こういう形式であってもピックアップする機能があるのですか?
2019/07/21(日) 12:22:59.36ID:JSHlhL4U
とにかく迷惑だからやめろ
2019/07/21(日) 12:37:24.29ID:m/GaQUZU
>>873
おまえも一応プログラマだろ
本当に自分でそれ書けないのか?
2019/07/21(日) 13:08:23.15ID:vddupZNY
>>875
>>873 は実害報告(>>870) に対する回避策への調査であり、プログラミング可能性とは関係ないでしょう
2019/07/21(日) 13:14:57.26ID:6reBljd1
>>876
回避策も何も、お前が書き込みをやめればすむだけの話だ
2019/07/21(日) 14:00:38.73ID:LwmwcwKU
なんで手間暇かけて他人の嫌がる余計なことするのかね
ろくな回答書けないなら黙ってROMってろって思うわ
2019/07/21(日) 14:03:18.32ID:DBsZJ8x+
これだから朝鮮人は嫌われるんだよ
2019/07/21(日) 14:51:20.84ID:5KK3hTpc
https://ideone.com/37oWvg
質問だけど、>>836 のループ展開版書いてたんだけど、
終了条件わからないんだけど、どうしたらいいと思う?
2019/07/21(日) 15:57:20.08ID:5KK3hTpc
https://ideone.com/lOmm7w
>>836
C++。できた。終了位置がレンジ外だったりした。
ただ、いじりすぎてロックインしてないか心配だ。

概要としては、最小重み経路問題の非再帰関数バージョン。のはず。
2019/07/21(日) 16:07:33.87ID:5KK3hTpc
なんか降ってきたわ。ありがたやー。
883デフォルトの名無しさん
垢版 |
2019/07/21(日) 21:50:34.29ID:WILkXhL9
>>865
問題かよくわからない。a_i/b_iをnに掛けた結果をどうするのか?何かに代入するのか?
2019/07/21(日) 22:55:45.10ID:tHXql6vE
n*a_i/b_iが整数になったらnにそれを代入して、もう一度頭から繰り返すんじゃろ
で、無限にその操作を繰り返せるのか途中で終わるのかを判定する
2019/07/22(月) 04:31:58.44ID:Q+N+yzYS
>>873
スレッドURLにも対応してる、しつこいよあんた
2019/07/22(月) 04:43:22.10ID:wriJoSF9
>>873は百害あって一理なし
2019/07/22(月) 05:57:37.39ID:R4+31Tcv
QZとか言う馬鹿は自分がやっている事がことごとく嫌がらせになっているというのにも
全く気づいてないんだろうなあ
2019/07/22(月) 10:03:01.17ID:xuhhP9lh
おまけにこの糞コテは数学もまともにできない低能
2019/07/22(月) 11:18:34.47ID:wZJ8iqbX
良かれと思ってやったのに迷惑だと言われる
千羽づるみたいだなって思いました
2019/07/22(月) 11:35:03.07ID:sp7+c3NQ
>>889
千羽鶴なら日本の文化だからまだいいよ
QZのは明らかに異国の匂いがする
2019/07/22(月) 11:38:44.03ID:RNJMLfCg
>>889
千羽鶴なら独善ではあっても善意のつもりだというのは分かるが、QZのは他人のためでなく自分がそうしたいというだけの理由だから、より嫌われる
892836
垢版 |
2019/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
2019/07/22(月) 17:05:26.62ID:mrS8zraI
>>892
https://ideone.com/aTBvPq
C++。あってるかはしらねーが、初期値を与えなおしてみたよ。
2019/07/22(月) 17:08:22.90ID:mrS8zraI
>>892
問い2は道順取れてるので頭と尻尾から配列なめてけば一応、かち合う場所が取れるよ。
2019/07/22(月) 17:53:24.27ID:mrS8zraI
https://ideone.com/ymnJMi
C++。バグがあったので直した。
最初の数値が固定値だったので、マスの値に変更した。
2019/07/22(月) 19:52:32.52ID:27NBQOQ4
S66
996
19E

超単純化した↑の場合
問1の場合はコスト18
問2の場合は座標(0,2) コスト19
で良いんだよな?
2019/07/22(月) 20:21:15.73ID:mrS8zraI
ホンダがらったフンだがらったヘンだがらった!フンフン!!

いでよ、主催者!!!
898デフォルトの名無しさん
垢版 |
2019/07/22(月) 20:27:49.31ID:vmYUDJ0J
>>897
ここには特に主催している人は居ないし、そもそも組織になっていない。各個人か勝手にお題を出して解きたい人が解いてるだけ。
おそらく常連は居るだろうが基本的に匿名で誰が誰だかよくわからず、人か入れ替わっていてもわからない。
2019/07/22(月) 22:09:07.24ID:zz8dj3fo
問1ってダイクストラ法まんまでいいの?
900836
垢版 |
2019/07/23(火) 09:29:05.01ID:5GIBUFQK
問2 について考えてみた

最短ターンでは、10ターンで、双方が出会うけど、
その時の双方を足したコストが、最小とは限らない!

だから迂回路の場合、つまり、11ターン以上で出会うマスも、すべて考慮して、
その中から最小コストを選ぶ必要がある

例えば、あるマスが、S・E 双方から12ターンなど

その際、双方からのターン数が異なる場合は、関係ない。
例えば、あるマスが、Sから11ターンで、Eから13ターンなど

>>899
ダイクストラ法で良い。
漏れは、総当たりでやってみる
901836
垢版 |
2019/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回足しているけど、これで良いか
2019/07/23(火) 13:22:20.59ID:QB0eaOex
>>898
あ、それはわかってるよ。
問題の主催者(>>836)を呼びたかった。
やってきたので召喚成功だ。

ふふ。
2019/07/23(火) 16:42:15.95ID:0hlsR1TA
Sは左上、Eは右下、盤面は正方形で良いのか?それともそれ以外のパターンも考慮しなきゃいけないのか
904836
垢版 |
2019/07/23(火) 17:53:12.70ID:5GIBUFQK
>>903
正方形ではなく、長方形だね

マスの座標は、行列の順で、開始点は( 行0, 列0 )

漏れは、盤面の周囲に、番兵を置いて、考えてます
905896
垢版 |
2019/07/23(火) 18:05:44.96ID:GpNXeX+q
>>901
うん、ぼけてた
コスト20やなw

問2で盤面サイズが奇数x偶数とかの場合はゴールはどう考えればいいの? 同時移動だとすれ違っちゃうが
Sが常に先に動く (Eが居るところで合流)
Eが常に先に動く (Sが居るところで合流)
SとE好きな方が先に動く (コストが低いマスの方で合流)
SとEが同時に動く (すれ違って合流できない? 中間点で合流? その場合のコストは?)

たとえば S12E とかの場合
906836
垢版 |
2019/07/23(火) 20:32:34.55ID:5GIBUFQK
盤面のサイズが偶数では、問2 は無理

必ず、奇数×奇数
2019/07/23(火) 21:26:26.55ID:JcFEdZGk
>>885
回答いただき感謝いたします
2019/07/23(火) 22:05:37.82ID:GpNXeX+q
>>906
偶数×偶数も行けるやろ
偶数×奇数、奇数×偶数は無理だが
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)
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)
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
914836
垢版 |
2019/07/26(金) 09:34:26.36ID:54Ib42km
>>908-909
確かに、偶数×偶数は、
同じターンで、同じマスに入れますね!

S1
2E

S12
34E
2019/07/26(金) 09:50:12.39ID:rMhs1i6l
>>910
戻り値がbooleanじゃないのが気持ち悪い
2019/07/26(金) 21:09:58.82ID:D2C6zjmj
>>913
4のとき
isfib 4 = (5,-1)
にならない?
2019/07/26(金) 22:09:57.95ID:wMkqv1Wf
「何番目かを返す」ってのが地味に難しいな
そこまでの全てのフィボナッチ数を求めないと無理じゃね?
2019/07/26(金) 22:53:34.40ID:XK3Q7RTy
>>916 勘違いした
isfib 4 = (4,-1)
になる。合っている。
2019/07/26(金) 23:11:48.79ID:PBeJ5BeU
キャッシュ層込みの問題だな
2019/07/26(金) 23:31:36.17ID:HmAxaouE
お題: 水素原子、酸素原子、炭素原子からなる分子の化学式が与えられる。原子の種類と個数から考えられる分子構造をデータ構造で表現し、コンソール画面に可能なかぎり表示しなさい。

(例)
H2O --> H - O - H
CO2 --> O = C = O
CH4 -->
  H
 |
H- C - H
  |
  H
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)).
2019/07/26(金) 23:40:57.41ID:XK3Q7RTy
>>920
サンプル回答キボンヌ
2019/07/26(金) 23:42:34.11ID:HmAxaouE
>>921
訂正。
CH4 → (C, H, H, H, H), ((0, 1), (0, 2), (0, 3), (0, 4)).
2019/07/26(金) 23:45:02.28ID:PBeJ5BeU
>>920
ベンゼン寒とかシクロヘキサン
3、5つあたりも鬼門か?
2019/07/26(金) 23:47:59.42ID:HmAxaouE
図式化は不可能に近いようだ。データ構造だけでOK.
2019/07/26(金) 23:48:10.95ID:XK3Q7RTy
そいうこと考えてから出題ヨロ
2019/07/27(土) 00:19:22.73ID:P0VdsVRX
備考。

ここでは単純のために「結合の手」を使ったモデルで考える。
原子によって結合の手の個数は決まっている(Cは4個、Oは2個、Hは1個)。
結合の手が余らないような分子構造のみを考える(一酸化炭素COのような構造は除外する)。
2019/07/27(土) 00:22:04.97ID:P0VdsVRX
電荷を持たない分子だけを対象とする。イオンではない。
2019/07/27(土) 00:24:45.04ID:A58wSpEe
ヨーク考えて、出題するレベルに練りあがってから出直したらどうですか
930デフォルトの名無しさん
垢版 |
2019/07/27(土) 03:29:25.97ID:IOXz7NXW
うわーおQZってまだ生きてたのか
昔NG推奨にしてスレ立てたような気がしたんだが
2019/07/27(土) 06:20:15.81ID:vbPXi5Ru
>>930
以下のレスのように、相変わらず身勝手なレスを繰り返してるよ

https://mevius.5ch.net/test/read.cgi/tech/1562581391/575
2019/07/27(土) 06:23:51.65ID:Okexx4cI
>>917
一般項 f(n) = (φ^n - (-φ)^(-n)) / sqrt(5) はnに対して狭義単調増加なので逆写像 fi(n) が存在して当然 fi・f(n) = n が成り立つ。
従って「そこまでの全てのフィボナッチ数を求めないと無理」は偽である。
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) = ?
2019/07/27(土) 10:45:11.97ID:aB6NIKG8
>>910
https://ideone.com/S7V4hf
C++。どや!
2019/07/27(土) 10:56:52.18ID:aB6NIKG8
>>934
https://ideone.com/zaOvTK
C++。2個目がスタックオーバーフローだと思う。
2019/07/27(土) 11:08:11.84ID:tV8GDyIW
>>932
あのさ、簡単に言うけどその逆関数は複素関数になるぞ
そこまで言うなら逆関数を使ってnを求めるプログラムを書いてみろ
ここはム板だ
2019/07/27(土) 11:11:50.71ID:1cAkezH+
>>934
perl5
https://pastebin.com/xxirNWW3

f(4,1) はPCが帰ってこなくなったからやらない
f(2,1) は5だった
2019/07/27(土) 11:57:13.11ID:g91Bo5NE
>>934
C++
http://ideone.com/5Y9XT3
2019/07/27(土) 12:10:03.51ID:aB6NIKG8
え?メモ化したら解けるの??
ガーン。
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, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/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
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
2019/07/27(土) 12:28:33.93ID:aB6NIKG8
https://ideone.com/iEyKYb
C++。constexprでもダメだったよ。
2019/07/27(土) 12:36:01.98ID:1cAkezH+
ああ まただよ(笑)
2019/07/27(土) 12:37:09.52ID:aB6NIKG8
d -_- b
2019/07/27(土) 13:05:36.13ID:hLAGzHLQ
>>941-942
統合失調症患者はどっか逝け
2019/07/27(土) 14:28:16.32ID:eTs80TG9
お題: cpu温度を表示せよ
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(φ)
2019/07/27(土) 15:15:49.31ID:b5LHfPHC
>>948
CやC++で ^ はXOR演算子なんだが
2019/07/27(土) 15:20:43.26ID:aB6NIKG8
ファイが何を指しているか・・・わからない・・・。
その定数5のいみがわからない。


そんな、ホラー。
2019/07/27(土) 15:23:42.00ID:Okexx4cI
動物園かよここは……

黄金比 φ := (1 + sqrt(5)) / 2

>>949
お前は一生クワス算でもやってろ
2019/07/27(土) 15:26:08.80ID:b5LHfPHC
>>951
そんなもん知ってるわアホ
上から目線で偉そうに
2019/07/27(土) 15:28:08.33ID:Okexx4cI
>>952
意味不明すぎてくっそ笑ったwww
自らの頭の悪さにキレててウケる
2019/07/27(土) 15:29:41.45ID:IpJBqisA
おおかた、数学的には反論できなくて悔しくなってc++では〜などという難癖をつけたのだろう
これ以上はスレチだからどっかよそでやれ
2019/07/27(土) 15:31:02.81ID:O5H2zazt
反論とかワロス
数学板でやれ
2019/07/27(土) 15:33:55.84ID:P0VdsVRX
phi
2019/07/27(土) 15:35:44.71ID:d+qHn5lK
数学(?)の話してんのにCやC++で ^ はXOR演算子なんだがとかいうやつ初めて見たわ
無能アピールだとしたらこれ以上ないくらいに効果出てるな
2019/07/27(土) 15:40:02.09ID:z4Poa3yK
数学の話は数学板で
2019/07/27(土) 15:40:49.84ID:7QbyGuYU
>そこまで言うなら逆関数を使ってnを求めるプログラムを書いてみろ!
どうせ無理だと思ってタンカを切ったら相手にあっさり答えを書かれてしまう(ついでに自分の間違いまで指摘されてしまう)
もし俺がこいつだったら、恥ずかしくなりすぎてXOR演算子云々で話をうやむやにする気持ちもわかるぞ
2019/07/27(土) 15:48:04.56ID:aB6NIKG8
>>951
https://ideone.com/PMTi9h
C++。コードに落としてみたけど、数学解らないから教えて。
フォークしてもいいよ。
2019/07/27(土) 15:51:41.66ID:aB6NIKG8
作ってて思ったのはね。
片方の関数は、フィボナッチ数知らないと動作しないのじゃないかということ。
片方の関数は、フィボナッチ数もとめにいくんだけど。

んで、鳥と卵の問題に見えるので、どういう風に使えばよいのかわからない。
2019/07/27(土) 15:52:21.85ID:3aZcsmVe
答え:カモノハシ
2019/07/27(土) 15:57:38.07ID:Okexx4cI
>>960
Fiの分子が微妙に違ったので訂正しておいたよ
https://ideone.com/SNN3mV
2019/07/27(土) 16:04:37.22ID:f7WK2xYd
炎上学習法か
例の頭のおかしな人かな?
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.
2019/07/27(土) 16:07:23.94ID:1cAkezH+
() [] に上の式を正しくなおしたがやはりだめだ
967デフォルトの名無しさん
垢版 |
2019/07/27(土) 16:08:06.87ID:7aZqje0Z
>>964
お前もまだいたの
2019/07/27(土) 16:08:36.42ID:aB6NIKG8
>>963
https://ideone.com/qN8CCx
幾つかNANになったのはコンピュータの問題かなぁ??
あんまり詳しくないんだけど。

中央値がきれいに取れてるので、境界線系のエラーもあり得る。
2019/07/27(土) 16:13:46.18ID:aB6NIKG8
しかしまー、数式で可逆式まで考えられるモノなのだねぇ。感心するわ。。。
2019/07/27(土) 16:27:26.01ID:aB6NIKG8
>>910 の題意からすると、こんな感じ?
https://ideone.com/WLv6dA

>>932の「有効」でエンド。
2019/07/27(土) 16:30:29.90ID:aB6NIKG8
いや、「技あり」か。
2019/07/27(土) 16:48:31.50ID:Okexx4cI
>>968
それのstd::pow(-1, 〜) が問題なので書き換えた
多少の誤差はあれどn = 2 を除いて右側の数字は0, 1, ..., 127と並んでいるよね
https://ideone.com/X7WSxR
2019/07/27(土) 16:51:51.51ID:aB6NIKG8
>>972
大体、求まってるね。

あなたつよいわ〜。
ここまで出来たら、あとは見せ方。
2019/07/27(土) 16:54:46.18ID:aB6NIKG8
念のため言っておくと、ideonは実行後コードと同じページにstdoutを表示する。
2019/07/27(土) 16:59:41.70ID:aB6NIKG8
>>972
三項演算子は、返す型が同じじゃないとエラーを吐く。
doubleとchar[]になってる。
2019/07/27(土) 17:02:12.84ID:aB6NIKG8
お、動いたか。

とりあえず、この辺で抜けるわ。
まったねー。
2019/07/27(土) 20:21:38.01ID:BeYdmmLD
>>934
アッカーマン関数であることにやっと気がつきました…
2019/07/27(土) 20:47:31.60ID:POROMEeh
>>977
どうてもいいけどお前は荒らすな
2019/07/27(土) 22:43:52.75ID:JtBf7oRg
>>972
誤差ないプログラム書けよ
2019/07/27(土) 23:00:24.26ID:JtBf7oRg
>>948
その式自分で考えた?
あと、>>934 の回答としてnが小さいときだけとか制約がある?
2019/07/28(日) 01:17:00.04ID:+ByOW8ha
お題
括弧のネストの深さの最大値を求めよ
括弧の対応が取れていない場合は-1を出力せよ


"{}" => 1
"}{" => -1
"" => 0
"{{{}{}}}{}" => 3
2019/07/28(日) 02:35:31.10ID:/N9EqgUo
>>981
python3
http://ideone.com/Nuqjvc
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
2019/07/28(日) 12:26:21.14ID:/N9EqgUo
>>981
perl5
http://ideone.com/HOpSCt

言語変えたらより見やすくなった
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
2019/07/28(日) 16:06:00.72ID:T1A0+dDM
>>979-980
もともと提示されてたのは式だけだし、式自体に誤差はないじゃん。アホなの?
てかさ、(-1)^((x+1)%3)で場合分けを吸収してるところは素直に上手いなぁとは思うけど元のフィボナッチ数列の式からの変形自体は高校生レベルじゃんこれ
「自分で考えたの?」てお前アホなの?
誰が解いても上の部分以外は同じになるっつーの

「2次方程式の解の公式で解きました!」
「その公式って自分で考えたの?」
くらい間抜けでアホ馬鹿丸出し生きる価値無し短小包茎白癬菌
2019/07/28(日) 17:09:34.39ID:a6lmPEp9
むきになって長文書くなよ
迷惑行為だぜ
2019/07/28(日) 17:23:37.85ID:6a78I9O8
基地外だから仕方ないね
2019/07/28(日) 18:48:49.76ID:38YML8XX
そろそろ次のスレ
2019/07/28(日) 18:51:08.82ID:vDw8KJqW
まだ早い
2019/07/28(日) 19:41:08.34ID:832c/ukY
次スレ
http://mevius.5ch.net/test/read.cgi/tech/1564310397/
2019/07/28(日) 19:42:06.95ID:bnGezINl
>>992
おつ
2019/07/28(日) 23:35:47.94ID:GPK25ks7
>>992
お疲れさまです…
2019/07/28(日) 23:40:41.46ID:/N9EqgUo
>>994
書き込み禁止
2019/07/28(日) 23:50:56.98ID:GPK25ks7
>>995
はいはい&hearts;
2019/07/29(月) 20:09:26.82ID:p0mLxaof
お題: このスレッドのアンカーの数を出力せよ
2019/07/29(月) 20:11:57.84ID:VkmvAKd6
w3m https://mevius.5ch.net/test/read.cgi/tech/1558168409/| grep -o ">>[0-9]" | wc -l
909

あれのせいだな
2019/07/30(火) 05:43:03.94ID:RYwsY7rK
>>164
あまり他の言語にない redo を使う perl5
http://ideone.com/46mcQl
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
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 72日 13時間 39分 10秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況