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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/02/03(日) 11:21:53.20ID:72eosYJ+
プログラミングのお題スレです。

【出題と回答例】
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.2ch.net/test/read.cgi/tech/1538096947/
2019/02/09(土) 10:33:40.76ID:O4yJeWlE
javascript
[...new Set(function*(){for(let i=0;i<256;i++)yield i*i%256}())].sort((a,b)=>a-b)
55デフォルトの名無しさん
垢版 |
2019/02/09(土) 14:20:17.67ID:BaccQTUO
お題:ハノイの塔の最少手数は一種類しかないのか
2019/02/09(土) 14:22:34.94ID:VrkeVQvn
>>50 その44種(mod256)の中に x%256 が一致するか
python

mod256=sorted({(i**2)%256 for i in range(256)})
x=123*123
print(x%256 in mod256)
# True

これでmod の話が理解できた。 要は完全な平方数じゃないのは平方根の計算をしないと言う話ね。
2019/02/09(土) 15:28:05.40ID:1XyVHoA8
>>50 Perl5

%a = map{$_=>1} map{$_*$_%256} 0..256;
@a = keys %a;
print "@a\n";


実行結果
~ $ perl 13_50.pl | wc -w
44
$ perl 13_50.pl
137 89 161 57 1 4 100 17 36 49 121 64 68 144 201 177 65 185 16 9 193 169 129
105 196 132 25 73 249 209 33 233 225 97 41 81 241 164 145 228 217 0 153 113
2019/02/09(土) 17:42:33.15ID:1XyVHoA8
>>50 Perl5 その2

use List::MoreUtils 'uniq';
@a = uniq map{$_*$_%256} 0..255;
print "@a\n";
2019/02/09(土) 18:17:43.26ID:HLblHrgV
>>49 有難う。
python だが、
# 256, 9, 5, 7, 13, 17 97
のmodであらかじめカットしたら、5倍くらい早くなった。

因みに >>50 のお題で
mod256=sorted({(i**2)%256 for i in range(256)})

modn = lambda n:set((i**2)%n for i in range(n))
mod256 = modn(256)

では下のsetを使った方が3割くらいスピードが速かった。
2019/02/09(土) 18:57:59.38ID:luPnpF49
>>59
# 256, 9, 5, 7, 13, 17 97
なんて順番ははおかしいんじゃねと思って、
大きい順にカットしたら、更に2割以上早くなった。
61デフォルトの名無しさん
垢版 |
2019/02/10(日) 06:54:30.87ID:qszHu1wC
>>50 J
64個の平方数を調べれば44種類のパターンはそろうようだ。
/:~ ~. 256| *: i. 64
2019/02/10(日) 12:16:48.56ID:8pY6FeJB
お題
ある数 n とする。
下位から24bit区切りの数を足し合わせてからmod 2^24-1 した数が、元の数nのmod 2^24-1 と一致することを確認しなさい。
2019/02/10(日) 12:27:09.74ID:Mq5me4ef
>>62

任意の n に対してある自然数 N, 自然数列{a_k} が存在して
n = Σ_{k = 0}^{N} a_k * 2^(24 * k) と書けるので mod 2^24 - 1 として
n = Σ_{k = 0}^{N} a_k * 1^k
= Σ_{k = 0}^{N} a_k ■
2019/02/10(日) 14:27:03.54ID:H2rtpzeI
>>59,60
256はmodじゃなくて&255を取る
確率的には大きい順じゃなくて9,97,17,13,7,5が良いのでは?
9,97,17,13,7,5でmodを取る場合、大きい数からそのままmodを取るのではなく2^48-1でmodを取った数値に対してmod
これで速度どうなる?
2019/02/10(日) 14:33:21.22ID:JrJlQQ/Q
>>63 それなんと言うプログラム?
2019/02/10(日) 14:41:11.23ID:fWGYOSi7
またこの流れ?
2019/02/10(日) 14:49:22.42ID:NRo2aHHT
mod 255にしたら遅くなるんじゃねーの
0 < n mod 255 < 254
だぞ
2019/02/10(日) 14:49:43.12ID:NRo2aHHT
0 <= n mod 255 <= 254 だった
2019/02/10(日) 15:12:41.36ID:95x0uvij
>>62 python

# n%(2**24-1) を求める
def mod224get(n):
 bn=(n.bit_length()+7)//8 #byte長
 bb=n.to_bytes(bn,'little')
 s= sum([int.from_bytes(bb[i:i+3],'little')
  for i in range(0,bn,3) ]) #24bit毎の合計
 return s%(2**24-1)

v0=12345678901234567890
#v0=0
n=v0**2
loop = 100000
print('テスト範囲は ',n,'〜',n+loop-1,'loop回数=',loop)
start =time.process_time()
for i in range(n,n+loop):
 if mod224get(n) != n%(2**24-1) :print('間違い見っけ',n)
end =time.process_time()
print('全問正解 かかった時間は、',end-start,'秒')
#
―― 結果
テスト範囲は 152415787532388367501905199875019052100 〜 152415787532388367501905199875019152099 loop回数= 100000
全問正解 かかった時間は、 0.2963889999999765 秒
2019/02/10(日) 16:02:45.96ID:8pY6FeJB
>>64 アドバイスありがとう。 それは思ったんだけど、現代の言語がそんなところで手抜きはしていないだろうと信じてテストしていなかった。

今、&255 に変えてテストしてみたけど、スピードの差はなかった。 そう言う発想は昔は非常に重要だったけど、今は言語の中で吸収してるみたいだね。

その下のアドバイスに対しては、何故ご自分では試されないのですか?

あまりやるつもりはないのは、mod 2**24-1 と言うのが理解できていないからです。 これで早くなるのなら色々試してみたいんですが、このリストを作るだけでもかなりの時間がかかりめげてます。
2019/02/10(日) 16:33:26.08ID:H2rtpzeI
>>70
剰余の順番に関しては確率がこんなんだからやで
3 / 5 = 0.600000
4 / 7 = 0.571429
4 / 9 = 0.444444
7 / 13 = 0.538462
9 / 17 = 0.529412
49 / 97 = 0.505155

テーブルは9, 97, 17, 13, 7, 5の物で良いんやで?
多倍長整数の剰余より32bit整数/64bit整数の剰余のほうが計算量が少ないから、
(32bitの場合) 2^24-1で剰余を取ったものに対して9, 17, 13, 7, 5の剰余で平方数かどうかを調べる
(64bitの場合) 2^48-1で剰余を取ったものに対して9, 97, 17, 13, 7, 5の剰余で平方数かどうかを調べる

なしてこんなことができるかってーと、
2^24-1(=16777215)の因数に5, 7, 9, 13, 17が、2^48-1(=281474976710655)の因数に5, 7, 9, 13, 17, 97含まれているからやで
2019/02/10(日) 16:55:58.44ID:8pY6FeJB
>>71 あまり深入りするつもりはないけど、mod 2**24-1 でチェックしたら、
mod 9, 97, 17, 13, 7, 5 でチェックする必要はないと言う事?

ま、数学を解いてるつもりは全くなく、プログラムの練習だからいかに沢山の人が素晴らしいプログラムを見せてくれるかにしか興味はない。
プログラムを書かない人は自分にとってはなんの意味もない。
2019/02/10(日) 17:11:01.79ID:H2rtpzeI
>>72
ちゃうねん
mod 2**24-1をした数値に対してmod 9, 17, 13, 7, 5 でチェックするねん
もしくはmod 2**48-1をした数値に対してmod 9, 97, 17, 13, 7, 5 でチェックするねん
2019/02/10(日) 19:32:43.48ID:/XsfFvRM
>> 73
2重に剰余を取るのはGMPみたく多倍長なら意味があるけど, 32/64bit固定長ならあまり意味はない
複数回剰余を確認する必要があるから多倍長から固定長(32/64bit)にしていて, 更に因数を使えば剰余を求めるための除算の代わりに乗算が使えるから因数の多い2^24 - 1や2^48 - 1を採用してる
2019/02/11(月) 00:35:41.13ID:8Hdd2FlG
>>62
ガウス少年が見出したように
Σ1,2,…,n-2,n-1=n *(n +1) /2
なので、
n の mod 2^24-1

Σ1,2,…,n-2,n-1 =n *(n +1) /2 の mod 2^24-1
が等しいのは自明だと思うけど、
そういう、ちょっとした数学を使わず
Σ1,2,…,n-2,n-1
をloopで和を算出し mod 2^24-1 して比較する
n の mod 2^24-1 と比較する
プログラムを作れという題なんだろうか…
2019/02/11(月) 00:37:45.16ID:8Hdd2FlG
>>75
「比較する」を二度書いちゃった、訂正

Σ1,2,…,n-2,n-1
の和をloopで算出し mod 2^24-1 して
n の mod 2^24-1 と比較する
2019/02/11(月) 00:57:54.78ID:HnU/OI7o
>>75 お題をよく読んだら? 24bit = 3バイト毎に取り出してその合計に対して 2**24-1 をしなさいと言う問題だよ。

数学なんて関係ない。 ただ出されたお題をプログラムで解いてくれ。
2019/02/11(月) 01:10:25.11ID:8Hdd2FlG
>>75 ごめん
Σ1,2,…,n-2,n-1=n *(n +1) /2
は間違えた。こうだ
Σ1,2,…,n-2,n-1=n *(n -1) /2
2019/02/11(月) 01:12:22.73ID:8Hdd2FlG
>>77
ゴメンなんか誤解したかも、よく読む
2019/02/11(月) 01:15:22.84ID:f+GXhEiR
ある数nのビット表記方法によって一致する/しないを答えればいいのかな
2019/02/11(月) 01:42:54.29ID:8Hdd2FlG
>>62 Perl5

use bignum (l=>GMP);
use feature say;

sub sum24 {
my $v = $_[0];
if ($v > 0) {
my $d = int($v / 2**24);
my $m = $v % 2**24; # $v - $d * $f6;
$m + sum24($d);
} else {
0;
}
}

$n = 12345678901234567890;
say $n % (2**24 -1);
say sum24($n) % (2**24 -1);


実行結果
~ $ perl 13_62.pl
13189905
13189905
2019/02/11(月) 01:47:30.91ID:8Hdd2FlG
>>81
8行目後半の#から右
# $v - $d * $f6;
は削除し忘れたcommentです スマソ
2019/02/11(月) 01:53:44.12ID:C0KPLnD/
どうみても自明なんだから確認も糞もないけどな
2019/02/11(月) 01:57:28.89ID:8Hdd2FlG
お題を作ることの難しさだよな…
2019/02/11(月) 02:15:34.48ID:HnU/OI7o
>>83 自明もへったくれもない。 プログラムが正しいかどうかの確認だよ。
プログラムも書かないで能書きだけ垂れてもなんの足しにもならない。 ここはプログラムのお題スレだよ。

>>62 のお題は前スレのGMP の整数平方根の説明の文章の中から取り出したもの。
つまり、ここまでできると、次は n**2%(2**24-1) のリストを作れと言うお題になるんだろうけど、時間がかかりすぎるからお題にするのはやめた。
このリストができないと実際の平方数の高速チェックが出来ないじゃん。
2019/02/11(月) 02:26:56.38ID:8Hdd2FlG
そんな怒るなよ。
暖かくしてぐっすりお休みよ
2019/02/11(月) 02:31:44.77ID:HnU/OI7o
しかしここまで複雑な処理をして本当に早くなるのかどうか疑問だけどな。 mod 2**24-1 って結構時間がかかりそうな気がする。
2019/02/11(月) 02:35:42.19ID:ucqIUq+7
>>85
一番能書き垂れてんのお前だろ
クソみたいな御託並べる前に自分のことを考えろっつったろうが

GMPが一体どこで
> n**2%(2**24-1) のリスト
なんか使ってんだ?91で割った場合のテーブルでさえ12byte必要だってのにどうやってそんな巨大なテーブル用意するんだ?
GMPの中身なんか数学の成果の塊だぞ?お前が数学したくないだか出来ないだか知らんがアルゴリズム考えるようなスレでクソみたいなこと喋ってんじゃねぇよ
お前はコードを書いても価値がない
2019/02/11(月) 02:35:55.83ID:8Hdd2FlG
単なるbitmaskで済まない様な場合
あるいは除算して剰余を求めるなら
さんざ研究されていると思うから自力で1から考える前に
先人の業績を知れってことだろ
アバヨ ノシ
2019/02/11(月) 02:36:00.30ID:IhaR3BEX
お題:ポーカーダイス

通常のサイコロを5個振って出た目をポーカーの役になぞってそれぞれの出現確率を求める。
役は、5カード、4カード、ストレート、フルハウス、3カード、2ペア、1ペア、ブタ(ノーペア)
例えば出た目が 1,1,3,1,4 ならスリーカード。2,5,4,6,3 ならストレート。
5カードは6/(6^5)、4カードは(5*5*6)/(6^5)というように数学的に
求めても難しくはないのですが、ここはプログラミングのスレなので
全通り力技でチェックして求めてみてください。

解答例:C言語 https://ideone.com/4X62Am
2019/02/11(月) 03:04:24.50ID:8Hdd2FlG
6^5総当りせよってか…
native compiler系言語で力技か
2019/02/11(月) 03:20:03.89ID:K/18SmCD
Jニキはよ
2019/02/11(月) 03:29:32.98ID:ucqIUq+7
大した数じゃないからズルいことが出来る
https://ideone.com/yEcdPV
2019/02/11(月) 04:00:05.29ID:8Hdd2FlG
お なかなか
2019/02/11(月) 08:16:46.17ID:b3B7Bg4u
python3
https://ideone.com/k6Ea4j

最後の出力部分はpython 3.6以降だと
for k,v in hand.items(): print("{} :\n {} / 7776 ({} %)".format(k,v, round(100*v/7776,2)))
でいけるけど実行環境が3.5なのでやむなく
2019/02/11(月) 16:44:30.42ID:xTuBWJbc
なんか数学でもできる力技お題増えてきたな
もっとプログラミングじゃないとできないような良いお題無いんだろうか
2019/02/11(月) 17:22:02.16ID:7gZS39yo
>>96
そんなの存在しないんじゃない?
2019/02/11(月) 17:28:00.80ID:6aFdKLEP
確率の問題でも特定の疑似乱数と種を使った偏りを求めるとかは数学では難しい
2019/02/11(月) 17:37:44.75ID:adj8EvAq
お題: 日本語文字とカッコ { } とスラッシュ(/)で構成された入力文字列Sが与えられる。{ }で囲まれ、かつ
スラッシュで区切られた部分文字列について、それぞれ場合分けを行って、複数の文字列のリストに展開して改行区切りで出力せよ。
カッコの対応が間違っている場合はERRORを出力せよ。

(例1) {ひまわり/あさがお}は{植物/花}です。
(出力結果)
ひまわりは植物です。
あさがおは植物です。
ひまわりは花です。
あさがおは花です。
2019/02/11(月) 17:59:47.38ID:BEdrdhIs
なお、展開の順序については問わない。カッコがなくなるまで繰り返し展開せよ。
2019/02/11(月) 18:20:25.29ID:BEdrdhIs
(1) {あ{いう/え}/お{か/き}/く}け{こ}
(2) さ{し/す}せそ{{た/ち}つ/て}と
2019/02/11(月) 19:00:31.50ID:MkFOBvt9
ネストありかよ、ちょっと面倒だな
2019/02/11(月) 19:03:55.20ID:BEdrdhIs
ヒント: まず、適当な場所でブツ切りにしてノードに分ける。
2019/02/11(月) 19:20:26.84ID:Q78+FEDq
>>101 で、どう言う結果を正解とするの?
2019/02/11(月) 19:32:34.31ID:BEdrdhIs
(1)の答え(※ソート済み)
あいうけこ
あいうけこ
あえけこ
あえけこ
おかけこ
おかけこ
おきけこ
おきけこ
くけこ
くけこ
くけこ
くけこ
2019/02/11(月) 19:33:13.25ID:BEdrdhIs
(2)の答え(※ソート済み)
さしせそたつと
さしせそちつと
さしせそてと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
さすせそてと
2019/02/11(月) 19:36:37.18ID:MkFOBvt9
これでいいのか?

> (1) {あ{いう/え}/お{か/き}/く}け{こ}
あ いう け こ
あ え け こ
お か け こ
お き け こ
く け こ

> (2) さ{し/す}せそ{{た/ち}つ/て}と
さ し せそ た つ と
さ す せそ た つ と
さ し せそ ち つ と
さ す せそ ち つ と
さ し せそ て と
さ す せそ て と
2019/02/11(月) 19:37:56.93ID:MkFOBvt9
あれ?
変化しないケースも出力するの?
2019/02/11(月) 19:40:50.96ID:BEdrdhIs
>>107
間違い。
2019/02/11(月) 19:46:19.44ID:adj8EvAq
ごめんなさい。間違えました。重複は単一化して下さい。
2019/02/11(月) 19:52:58.89ID:adj8EvAq
>>105-106 >>109 間違い。
2019/02/11(月) 20:21:24.27ID:BEdrdhIs
単純に場所分けを樹木図で考えると重複ができるようだ。すみません。
113デフォルトの名無しさん
垢版 |
2019/02/11(月) 20:48:49.82ID:uHNor3GB
お題:Aが真であるならばBが真である ことをプログラムしなさい。
2019/02/11(月) 21:04:41.39ID:BEdrdhIs
アホちゃいまんねん、パーでんねん。
2019/02/12(火) 00:09:52.31ID:VqanzRzk
バカなのか?AとBに因果関係があるわけじゃないし、この世の全てがプログラム言語でマッピングできるわけじゃない、数学徒は帰れ
2019/02/12(火) 00:29:24.58ID:xM7yD0R2
const A = true;
const B = A === true ? true : false;
console.log(B);
2019/02/12(火) 01:58:51.98ID:ww6cDCbZ
>>113
If A = True Then
B = True
End if
2019/02/12(火) 01:59:52.12ID:/350tEey
>>113
!A&&B
2019/02/12(火) 02:31:32.61ID:qK/pLy4w
>>118 python
B = A
2019/02/12(火) 02:31:55.89ID:qK/pLy4w
>>113 の間違い
2019/02/12(火) 02:52:28.28ID:jwrsqhME
{あ{いう/え}/お{か/き}/く}けこ
 あいうけこ
 あえけこ
 おかけこ
 おきけこ
 くけこ

さ{し/す}せそ{{た/ち}つ/て}と
 さしせそたつと
 さしせそちつと
 さしせそてと
 さすせそたつと
 さすせそちつと
 さすせそてと
2019/02/12(火) 07:13:30.28ID:WW36R8Qd
>>113
> Bが真である
をどう解釈するかによる
文字通りの解釈なら
If A Then Assert(B)
かな
Bを真にすると解釈するなら>>117が正解かな
>>116>>119はAが偽の時にBを偽にしちゃうので誤りやね
2019/02/12(火) 09:01:25.53ID:eC1lEXzI
>>117も間違い。偽のときは未定義なんだからエラー吐かなきゃ
2019/02/12(火) 10:15:35.66ID:EWuoyvxz
未定義じゃねえだろアホ
2019/02/12(火) 10:18:36.24ID:eC1lEXzI
>>124
>>113
2019/02/12(火) 10:38:38.54ID:/lUdPPCt
Aが偽の時はエラー吐かなきゃいけないとかBを偽にしてはいけない
とかいうのは勝手な拡大解釈でしかない
2019/02/12(火) 10:45:59.39ID:dUnMTtNo
真面目に考えるだけ時間の無駄
2019/02/12(火) 11:03:54.75ID:8L309PqZ
>>125
アホかお前
AならばBでAが偽ならばそれは真だっつーの
義務教育からやり直せよ
2019/02/12(火) 11:18:15.32ID:eC1lEXzI
>>128
> AならばBでAが偽ならばそれは真だっつーの

えっ、どういうことなの?
それは
AならばB
のとき
AでないならばB
ということ?
BはAに関わらず真ということ?

> AならばBでAが偽ならばそれは真だっつーの

の意味がよくわからん…
2019/02/12(火) 11:29:33.12ID:dUnMTtNo
>>129
論理としては A => B (AならばB)は対偶論理 ¬B => ¬A (BでないならばAでない)を成り立たせるために通常 ¬A∨B (AでないかまたはBである) で定義される
つまり A => B という論理式は A が偽であれば B の真偽に依らず真になる

だから何だという話ではある
2019/02/12(火) 11:30:20.12ID:7Ldk0kbC
>>129
そう決まってるじゃん
前提が偽ならどんな推論でも導けるし真になる
論理学の初歩
2019/02/12(火) 11:36:13.30ID:puzbyhsI
AならばBと
Aが真ならばBが真
とは違うだろ
2019/02/12(火) 11:43:29.03ID:puzbyhsI
「AならばB」
と言う命題は
「Aが真でBが真である
Aが偽であればBは真である」という命題の
上の文の3行目のはじめの部分をプログラムしろということだぞ
2019/02/12(火) 11:45:33.01ID:puzbyhsI
4行目間違えた
2019/02/12(火) 12:10:48.64ID:2r3VUiS2
A: 自然数 : 1,2,3,・・・・・
B: 整数  : ・・・・・ , -2,-1,0,1,2,3,・・・・・

AならばBである
AでなければBでもない
BでなければAでもない
136デフォルトの名無しさん
垢版 |
2019/02/12(火) 12:11:50.75ID:/o8EBvgR
>>99 Bash
https://ideone.com/rMrZEf
2019/02/12(火) 12:12:39.52ID:2r3VUiS2
>>135 間違い
A: 自然数 : 1,2,3,・・・・・
B: 整数  : ・・・・・ , -2,-1,0,1,2,3,・・・・・

AならばBである
Aでなければ不定
BでなければAでもない
2019/02/12(火) 12:31:09.58ID:eC1lEXzI
>>130
ありがとうこれは分かりやすい。
高校出てないけど義務教育は真面目にやったんだがなぁ…こんなのあったっけ?
2019/02/12(火) 12:36:07.27ID:puzbyhsI
そういうことは日本の教育問題になるからな
2019/02/12(火) 12:42:53.41ID:YxhBMJOC
>>99
2019/02/12(火) 12:43:36.37ID:YxhBMJOC
送信しちゃった
https://paiza.io/projects/33hywoLmd5aRCzkTicwRUQ
2019/02/12(火) 12:47:20.67ID:cy1s3mXO
>>136
よくできました。

お題: ひらがなで与えられた五段活用動詞の五段活用を表示しなさい。
明らかに五段活用動詞でない場合は、ERRORと表示しなさい。
2019/02/12(火) 13:39:39.30ID:dUnMTtNo
>>138
義務教育ではやらない
というか高校数学でも明示的に教えはしない(証明ではしばしば暗に使う)
そして大学の数学科では何をおいてもまず最初に学ぶ
2019/02/12(火) 14:05:55.07ID:/4hrfCEw
ゆとり以降は知らんが高校で習ったぞ
2019/02/12(火) 14:14:27.12ID:eC1lEXzI
高校が義務教育なら俺も高校行けたのに
2019/02/12(火) 16:12:20.21ID:MCXQbCzx
>>145
必要な感じがするのであれば高認受けて高卒と同等にでもなりなさい。昔の大検と違ってそれだけでも高卒扱いになる。
その後大学行くかどうかはご自由に。金と時間があまりないなら通信制ってのもあるよ。
この頃はネットの大学もあるな。よく知らんけど。

まあしかし既に社会人になって何十年も稼いできてしまった人の場合はもはやどうでも良い話かな。
2019/02/12(火) 17:14:44.20ID:AqcDbyue
>>138 理解したいと思った気持ちが大事。深入りの必要はない。

プログラムの世界というのは、客のニーズを知らなくてもなんでも解決しないといけないから、その時々で勉強するしかない。 実践の世界。
素地がある方が理解は早いとは思うが、気にすることは無い。

その時に必要なものを勉強すれば(理解できれば)良い。 全ての学問を習得するなんて不可能なんだから、学問なんてあまり気にしない方が良い。

ただ、論理的な思考訓練はやった方が良いとは思うが、大学でできるとは思わない方が良い。 ひたすらプログラムを続けた方が思考訓練になると思うぞ。
2019/02/12(火) 17:34:27.64ID:AqcDbyue
>>113 しかしさ、この日本語は日本語として成り立っていないんじゃないの?
日本語としても論理学としても
日本語の曖昧さを残したまま、お題にする方がおかしい。

これを自分の顧客に提示して見なさい。 バカじゃないのと言われるよ。 理解力がないと思われるだろうな。
2019/02/12(火) 18:50:16.09ID:zaXjz+ge
説教厨あらわる
2019/02/12(火) 19:11:01.53ID:Rw1aIHZT
>>132
その2つの意味後違うって言うならそうなるセマンティクスを提示してみせろや
「普通は」同等に扱うだろ
2019/02/12(火) 19:12:14.58ID:Rw1aIHZT
>>150
意味後違う → 意味が違う
152デフォルトの名無しさん
垢版 |
2019/02/12(火) 19:59:08.96ID:mxj4fC0D
チコ 「A->Bの意味も知らずにボーっとコードかいているんじゃねよ!」
2019/02/12(火) 21:33:58.92ID:4uAoJeXz
>>99 Ruby
def hoge(str)
  return str if str.match?(/\A[^{}\/]*\z/)
  raise 'ERROR' if str.match?(/\A[^{]*}|{[^}]*\z/)
  a, *b = str.scan(/(?<={|\A)[^{}]*(?=}|\z)/).map{|s| s.empty? ? [''] : s.split(?/)}
  s = str.gsub(/(?:{|\A)[^{}]*(?:}|\z)/, '%s')
  a.product(*b).flat_map{|e| hoge(s % e)}.uniq.sort
end

%w[
  {あ{いう/え}/お{か/き}/く}け{こ}
  さ{し/す}せそ{{た/ち}つ/て}と]
].each{|s| puts hoge(s), $/}
# =>
あいうけこ
あえけこ
おかけこ
おきけこ
くけこ

さしせそたつと
さしせそちつと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
2019/02/12(火) 22:11:55.07ID:afakhEje
>>133
>「Aが真でBが真である
>Aが偽であればBは真である」

完璧に間違っていますね…Aが偽であってBが偽であってもいいのです
あなた、もう馬鹿としかいいようがないですね、論理学の教科書が読めなかったの?いや、日本語が読めなかったの?
生きていること自体が罪悪といわずして何といえばいいのか…

死ね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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